model

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2018 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 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

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 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
	IsBanned Banned    // aliased primitive
	Address  Address
	Tier     Tier
}

Jump to

Keyboard shortcuts

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