github.com/Files-com/files-sdk-go/v2@v2.1.2/formfield.go (about)

     1  package files_sdk
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	lib "github.com/Files-com/files-sdk-go/v2/lib"
     7  )
     8  
     9  type FormField struct {
    10  	Id               int64    `json:"id,omitempty" path:"id,omitempty" url:"id,omitempty"`
    11  	Label            string   `json:"label,omitempty" path:"label,omitempty" url:"label,omitempty"`
    12  	Required         *bool    `json:"required,omitempty" path:"required,omitempty" url:"required,omitempty"`
    13  	HelpText         string   `json:"help_text,omitempty" path:"help_text,omitempty" url:"help_text,omitempty"`
    14  	FieldType        string   `json:"field_type,omitempty" path:"field_type,omitempty" url:"field_type,omitempty"`
    15  	OptionsForSelect []string `json:"options_for_select,omitempty" path:"options_for_select,omitempty" url:"options_for_select,omitempty"`
    16  	DefaultOption    string   `json:"default_option,omitempty" path:"default_option,omitempty" url:"default_option,omitempty"`
    17  	FormFieldSetId   int64    `json:"form_field_set_id,omitempty" path:"form_field_set_id,omitempty" url:"form_field_set_id,omitempty"`
    18  }
    19  
    20  func (f FormField) Identifier() interface{} {
    21  	return f.Id
    22  }
    23  
    24  type FormFieldCollection []FormField
    25  
    26  func (f *FormField) UnmarshalJSON(data []byte) error {
    27  	type formField FormField
    28  	var v formField
    29  	if err := json.Unmarshal(data, &v); err != nil {
    30  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    31  	}
    32  
    33  	*f = FormField(v)
    34  	return nil
    35  }
    36  
    37  func (f *FormFieldCollection) UnmarshalJSON(data []byte) error {
    38  	type formFields FormFieldCollection
    39  	var v formFields
    40  	if err := json.Unmarshal(data, &v); err != nil {
    41  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    42  	}
    43  
    44  	*f = FormFieldCollection(v)
    45  	return nil
    46  }
    47  
    48  func (f *FormFieldCollection) ToSlice() *[]interface{} {
    49  	ret := make([]interface{}, len(*f))
    50  	for i, v := range *f {
    51  		ret[i] = v
    52  	}
    53  
    54  	return &ret
    55  }