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