model

package
v0.15.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MarshalID

func MarshalID(id external.ObjectID) graphql.Marshaler

Lets redefine the base ID type to use an id from an external library

func MarshalPreferences added in v0.14.1

func MarshalPreferences(p *Prefs) graphql.Marshaler

func MarshalTimestamp

func MarshalTimestamp(t time.Time) graphql.Marshaler

if the type referenced in .gqlgen.yml is a function that returns a marshaller we can use it to encode and decode onto any existing go type.

func UnmarshalID

func UnmarshalID(v interface{}) (external.ObjectID, error)

And the same for the unmarshaler

func UnmarshalTimestamp

func UnmarshalTimestamp(v interface{}) (time.Time, error)

Unmarshal{Typename} is only required if the scalar appears as an input. The raw values have already been decoded from json into int/float64/bool/nil/map[string]interface/[]interface

Types

type Address

type Address struct {
	ID       external.ObjectID `json:"id"`
	Location *Point            `json:"location"`
}

type Banned

type Banned bool

func (Banned) MarshalGQL added in v0.14.1

func (b Banned) MarshalGQL(w io.Writer)

func (*Banned) UnmarshalGQL added in v0.14.1

func (b *Banned) UnmarshalGQL(v interface{}) error

type Point

type Point struct {
	X int
	Y int
}

Point is serialized as a simple array, eg [1, 2]

func (Point) MarshalGQL

func (p Point) MarshalGQL(w io.Writer)

MarshalGQL implements the graphql.Marshaler interface

func (*Point) UnmarshalGQL

func (p *Point) UnmarshalGQL(v interface{}) error

type Prefs added in v0.14.1

type Prefs struct {
	DarkMode bool
}

func UnmarshalPreferences added in v0.14.1

func UnmarshalPreferences(v interface{}) (*Prefs, error)

type SearchArgs

type SearchArgs struct {
	Location     *Point
	CreatedAfter *time.Time
	IsBanned     Banned
}

type Tier

type Tier uint

A custom enum that uses integers to represent the values in memory but serialize as string for graphql

const (
	TierA Tier = iota
	TierB Tier = iota
	TierC Tier = iota
)

func TierForStr

func TierForStr(str string) (Tier, error)

func (Tier) IsValid

func (e Tier) IsValid() bool

func (Tier) MarshalGQL

func (e Tier) MarshalGQL(w io.Writer)

func (Tier) String

func (e Tier) String() string

func (*Tier) UnmarshalGQL

func (e *Tier) UnmarshalGQL(v interface{}) error

type User

type User struct {
	ID       external.ObjectID
	Name     string
	Created  time.Time  // direct binding to builtin types with external Marshal/Unmarshal methods
	Modified *time.Time // direct binding to builtin types with external Marshal/Unmarshal methods
	ValPrefs Prefs      // external un/marshal that act on pointers
	PtrPrefs *Prefs
	IsBanned Banned
	Address  Address
	Tier     Tier
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL