github.com/Desuuuu/genqlient@v0.5.3/generate/testdata/snapshots/TestGenerate-CustomMarshalSlice.graphql-CustomMarshalSlice.graphql.go (about) 1 // Code generated by github.com/Desuuuu/genqlient, DO NOT EDIT. 2 3 package test 4 5 import ( 6 "encoding/json" 7 "fmt" 8 "time" 9 10 "github.com/Desuuuu/genqlient/graphql" 11 "github.com/Desuuuu/genqlient/internal/testutil" 12 ) 13 14 // CustomMarshalSliceResponse is returned by CustomMarshalSlice on success. 15 type CustomMarshalSliceResponse struct { 16 AcceptsListOfListOfListsOfDates bool `json:"acceptsListOfListOfListsOfDates"` 17 WithPointer bool `json:"withPointer"` 18 } 19 20 // GetAcceptsListOfListOfListsOfDates returns CustomMarshalSliceResponse.AcceptsListOfListOfListsOfDates, and is useful for accessing the field via an interface. 21 func (v *CustomMarshalSliceResponse) GetAcceptsListOfListOfListsOfDates() bool { 22 return v.AcceptsListOfListOfListsOfDates 23 } 24 25 // GetWithPointer returns CustomMarshalSliceResponse.WithPointer, and is useful for accessing the field via an interface. 26 func (v *CustomMarshalSliceResponse) GetWithPointer() bool { return v.WithPointer } 27 28 // __CustomMarshalSliceInput is used internally by genqlient 29 type __CustomMarshalSliceInput struct { 30 Datesss [][][]time.Time `json:"-"` 31 Datesssp [][][]*time.Time `json:"-"` 32 } 33 34 // GetDatesss returns __CustomMarshalSliceInput.Datesss, and is useful for accessing the field via an interface. 35 func (v *__CustomMarshalSliceInput) GetDatesss() [][][]time.Time { return v.Datesss } 36 37 // GetDatesssp returns __CustomMarshalSliceInput.Datesssp, and is useful for accessing the field via an interface. 38 func (v *__CustomMarshalSliceInput) GetDatesssp() [][][]*time.Time { return v.Datesssp } 39 40 func (v *__CustomMarshalSliceInput) UnmarshalJSON(b []byte) error { 41 42 if string(b) == "null" { 43 return nil 44 } 45 46 var firstPass struct { 47 *__CustomMarshalSliceInput 48 Datesss [][][]json.RawMessage `json:"datesss"` 49 Datesssp [][][]json.RawMessage `json:"datesssp"` 50 graphql.NoUnmarshalJSON 51 } 52 firstPass.__CustomMarshalSliceInput = v 53 54 err := json.Unmarshal(b, &firstPass) 55 if err != nil { 56 return err 57 } 58 59 { 60 dst := &v.Datesss 61 src := firstPass.Datesss 62 *dst = make( 63 [][][]time.Time, 64 len(src)) 65 for i, src := range src { 66 dst := &(*dst)[i] 67 *dst = make( 68 [][]time.Time, 69 len(src)) 70 for i, src := range src { 71 dst := &(*dst)[i] 72 *dst = make( 73 []time.Time, 74 len(src)) 75 for i, src := range src { 76 dst := &(*dst)[i] 77 if len(src) != 0 && string(src) != "null" { 78 err = testutil.UnmarshalDate( 79 src, dst) 80 if err != nil { 81 return fmt.Errorf( 82 "Unable to unmarshal __CustomMarshalSliceInput.Datesss: %w", err) 83 } 84 } 85 } 86 } 87 } 88 } 89 90 { 91 dst := &v.Datesssp 92 src := firstPass.Datesssp 93 *dst = make( 94 [][][]*time.Time, 95 len(src)) 96 for i, src := range src { 97 dst := &(*dst)[i] 98 *dst = make( 99 [][]*time.Time, 100 len(src)) 101 for i, src := range src { 102 dst := &(*dst)[i] 103 *dst = make( 104 []*time.Time, 105 len(src)) 106 for i, src := range src { 107 dst := &(*dst)[i] 108 if len(src) != 0 && string(src) != "null" { 109 *dst = new(time.Time) 110 err = testutil.UnmarshalDate( 111 src, *dst) 112 if err != nil { 113 return fmt.Errorf( 114 "Unable to unmarshal __CustomMarshalSliceInput.Datesssp: %w", err) 115 } 116 } 117 } 118 } 119 } 120 } 121 return nil 122 } 123 124 type __premarshal__CustomMarshalSliceInput struct { 125 Datesss [][][]json.RawMessage `json:"datesss"` 126 127 Datesssp [][][]json.RawMessage `json:"datesssp"` 128 } 129 130 func (v *__CustomMarshalSliceInput) MarshalJSON() ([]byte, error) { 131 premarshaled, err := v.__premarshalJSON() 132 if err != nil { 133 return nil, err 134 } 135 return json.Marshal(premarshaled) 136 } 137 138 func (v *__CustomMarshalSliceInput) __premarshalJSON() (*__premarshal__CustomMarshalSliceInput, error) { 139 var retval __premarshal__CustomMarshalSliceInput 140 141 { 142 143 dst := &retval.Datesss 144 src := v.Datesss 145 *dst = make( 146 [][][]json.RawMessage, 147 len(src)) 148 for i, src := range src { 149 dst := &(*dst)[i] 150 *dst = make( 151 [][]json.RawMessage, 152 len(src)) 153 for i, src := range src { 154 dst := &(*dst)[i] 155 *dst = make( 156 []json.RawMessage, 157 len(src)) 158 for i, src := range src { 159 dst := &(*dst)[i] 160 var err error 161 *dst, err = testutil.MarshalDate( 162 &src) 163 if err != nil { 164 return nil, fmt.Errorf( 165 "Unable to marshal __CustomMarshalSliceInput.Datesss: %w", err) 166 } 167 } 168 } 169 } 170 } 171 { 172 173 dst := &retval.Datesssp 174 src := v.Datesssp 175 *dst = make( 176 [][][]json.RawMessage, 177 len(src)) 178 for i, src := range src { 179 dst := &(*dst)[i] 180 *dst = make( 181 [][]json.RawMessage, 182 len(src)) 183 for i, src := range src { 184 dst := &(*dst)[i] 185 *dst = make( 186 []json.RawMessage, 187 len(src)) 188 for i, src := range src { 189 dst := &(*dst)[i] 190 if src != nil { 191 var err error 192 *dst, err = testutil.MarshalDate( 193 src) 194 if err != nil { 195 return nil, fmt.Errorf( 196 "Unable to marshal __CustomMarshalSliceInput.Datesssp: %w", err) 197 } 198 } 199 } 200 } 201 } 202 } 203 return &retval, nil 204 } 205 206 func CustomMarshalSlice( 207 client graphql.Client, 208 datesss [][][]time.Time, 209 datesssp [][][]*time.Time, 210 ) (*CustomMarshalSliceResponse, error) { 211 req := &graphql.Request{ 212 OpName: "CustomMarshalSlice", 213 Query: ` 214 query CustomMarshalSlice ($datesss: [[[Date!]!]!]!, $datesssp: [[[Date!]!]!]!) { 215 acceptsListOfListOfListsOfDates(datesss: $datesss) 216 withPointer: acceptsListOfListOfListsOfDates(datesss: $datesssp) 217 } 218 `, 219 Variables: &__CustomMarshalSliceInput{ 220 Datesss: datesss, 221 Datesssp: datesssp, 222 }, 223 } 224 var err error 225 226 var data CustomMarshalSliceResponse 227 resp := &graphql.Response{Data: &data} 228 229 err = client.MakeRequest( 230 nil, 231 req, 232 resp, 233 ) 234 235 return &data, err 236 } 237