File tree Expand file tree Collapse file tree 9 files changed +88
-16
lines changed
Expand file tree Collapse file tree 9 files changed +88
-16
lines changed Original file line number Diff line number Diff line change 66
77var (
88 ErrInvalidInstance = errors .New ("invalid instance provided to create a reader" )
9+ ErrNilBody = errors .New ("body cannot be nil" )
10+ ErrNilReader = errors .New ("reader cannot be nil" )
11+ ErrNilDestination = errors .New ("destination cannot be nil" )
12+ ErrNilDecoder = errors .New ("decoder is nil" )
913)
Original file line number Diff line number Diff line change @@ -35,6 +35,11 @@ func (d Decoder) Decode(
3535 body interface {},
3636 dest interface {},
3737) error {
38+ // Check the body
39+ if body == nil {
40+ return gojsondecoder .ErrNilBody
41+ }
42+
3843 // Check the body type
3944 reader , err := gojsondecoder .ToReader (body )
4045 if err != nil {
@@ -57,9 +62,14 @@ func (d Decoder) DecodeReader(
5762 reader io.Reader ,
5863 dest interface {},
5964) (err error ) {
65+ // Check the reader
66+ if reader == nil {
67+ return gojsondecoder .ErrNilReader
68+ }
69+
6070 // Check the decoder destination
6171 if dest == nil {
62- return ErrNilDestination
72+ return gojsondecoder . ErrNilDestination
6373 }
6474
6575 // Get the body of the request
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -35,6 +35,11 @@ func (s StreamDecoder) Decode(
3535 body interface {},
3636 dest interface {},
3737) error {
38+ // Check the body
39+ if body == nil {
40+ return gojsondecoder .ErrNilBody
41+ }
42+
3843 // Check the body type
3944 reader , err := gojsondecoder .ToReader (body )
4045 if err != nil {
@@ -57,9 +62,14 @@ func (s StreamDecoder) DecodeReader(
5762 reader io.Reader ,
5863 dest interface {},
5964) error {
65+ // Check the reader
66+ if reader == nil {
67+ return gojsondecoder .ErrNilReader
68+ }
69+
6070 // Check the decoder destination
6171 if dest == nil {
62- return ErrNilDestination
72+ return gojsondecoder . ErrNilDestination
6373 }
6474
6575 // Create the stream decoder
Original file line number Diff line number Diff line change @@ -44,6 +44,11 @@ func (d Decoder) Decode(
4444 body interface {},
4545 dest interface {},
4646) error {
47+ // Check the body
48+ if body == nil {
49+ return gojsondecoder .ErrNilBody
50+ }
51+
4752 // Check the body type
4853 reader , err := gojsondecoder .ToReader (body )
4954 if err != nil {
@@ -66,6 +71,16 @@ func (d Decoder) DecodeReader(
6671 reader io.Reader ,
6772 dest interface {},
6873) error {
74+ // Check the reader
75+ if reader == nil {
76+ return gojsondecoder .ErrNilReader
77+ }
78+
79+ // Check the decoder destination
80+ if dest == nil {
81+ return gojsondecoder .ErrNilDestination
82+ }
83+
6984 return UnmarshalByReflection (
7085 reader ,
7186 dest ,
Original file line number Diff line number Diff line change 1+ package encoder
2+
3+ import (
4+ "errors"
5+ )
6+
7+ var (
8+ ErrNilWriter = errors .New ("writer is nil" )
9+ ErrNilBody = errors .New ("body cannot be nil" )
10+ ErrNilEncoder = errors .New ("encoder is nil" )
11+ )
Original file line number Diff line number Diff line change @@ -3,6 +3,8 @@ package json
33import (
44 "encoding/json"
55 "io"
6+
7+ gojsonencoder "github.com/ralvarezdev/go-json/encoder"
68)
79
810type (
@@ -32,6 +34,12 @@ func NewEncoder() *Encoder {
3234func (e Encoder ) Encode (
3335 body interface {},
3436) ([]byte , error ) {
37+ // Check if body is nil
38+ if body == nil {
39+ return nil , gojsonencoder .ErrNilBody
40+ }
41+
42+ // Marshal the body into JSON
3543 jsonBody , err := json .Marshal (body )
3644 if err != nil {
3745 return nil , err
@@ -55,6 +63,11 @@ func (e Encoder) EncodeAndWrite(
5563 beforeWriteFn func () error ,
5664 body interface {},
5765) error {
66+ // Check if the writer is nil
67+ if writer == nil {
68+ return gojsonencoder .ErrNilWriter
69+ }
70+
5871 // Encode the body into JSON
5972 jsonBody , err := e .Encode (body )
6073 if err != nil {
Original file line number Diff line number Diff line change 55 "bytes"
66 "encoding/json"
77 "io"
8+
9+ gojsonencoder "github.com/ralvarezdev/go-json/encoder"
810)
911
1012type (
@@ -34,6 +36,11 @@ func NewStreamEncoder() *StreamEncoder {
3436func (s StreamEncoder ) Encode (
3537 body interface {},
3638) ([]byte , error ) {
39+ // Check if body is nil
40+ if body == nil {
41+ return nil , gojsonencoder .ErrNilBody
42+ }
43+
3744 // Create a buffer to write to
3845 buffer := new (bytes.Buffer )
3946
@@ -69,6 +76,11 @@ func (s StreamEncoder) EncodeAndWrite(
6976 beforeWriteFn func () error ,
7077 body interface {},
7178) (err error ) {
79+ // Check if the writer is nil
80+ if writer == nil {
81+ return gojsonencoder .ErrNilWriter
82+ }
83+
7284 // Call the before write function if provided
7385 if beforeWriteFn != nil {
7486 if err = beforeWriteFn (); err != nil {
Original file line number Diff line number Diff line change 44 "io"
55 "reflect"
66
7+ gojsonencoder "github.com/ralvarezdev/go-json/encoder"
78 gojsonencoderjson "github.com/ralvarezdev/go-json/encoder/json"
89 "google.golang.org/protobuf/encoding/protojson"
910)
@@ -74,6 +75,11 @@ func (e Encoder) PrecomputeMarshal(
7475func (e Encoder ) Encode (
7576 body interface {},
7677) ([]byte , error ) {
78+ // Check if body is nil
79+ if body == nil {
80+ return nil , gojsonencoder .ErrNilBody
81+ }
82+
7783 // Marshal the instance to get the precomputed body
7884 precomputedMarshal , err := e .PrecomputeMarshal (body )
7985 if err != nil {
@@ -98,6 +104,11 @@ func (e Encoder) EncodeAndWrite(
98104 beforeWriteFn func () error ,
99105 body interface {},
100106) error {
107+ // Check if the writer is nil
108+ if writer == nil {
109+ return gojsonencoder .ErrNilWriter
110+ }
111+
101112 // Marshal the instance to get the precomputed body
102113 precomputedMarshal , err := e .PrecomputeMarshal (body )
103114 if err != nil {
You can’t perform that action at this time.
0 commit comments