graph

package
v0.0.0-...-3eb5a89 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2019 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidParameter = errors.New("invalid parameter")
)

Functions

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

Types

type Account

type Account struct {
	ID            string     `json:"id"`
	Name          string     `json:"name"`
	Orders        []Order    `json:"orders"`
	Email         string     `json:"email"`
	PhotoURL      string     `json:"photoURL"`
	MobilePhone   string     `json:"mobilePhone"`
	Type          string     `json:"type"`
	Locations     []Location `json:"locations"`
	EmailVerified bool       `json:"emailVerified"`
	IsActive      bool       `json:"isActive"`
	CreatedAt     time.Time  `json:"createdAt"`
}

type AccountInput

type AccountInput struct {
	Name        string  `json:"name"`
	Email       string  `json:"email"`
	MobilePhone *string `json:"mobilePhone"`
}

type AccountResolver

type AccountResolver interface {
	Orders(ctx context.Context, obj *Account) ([]*Order, error)
}

type Category

type Category struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

type ComplexityRoot

type ComplexityRoot struct {
	Account struct {
		CreatedAt     func(childComplexity int) int
		Email         func(childComplexity int) int
		EmailVerified func(childComplexity int) int
		ID            func(childComplexity int) int
		IsActive      func(childComplexity int) int
		Locations     func(childComplexity int) int
		MobilePhone   func(childComplexity int) int
		Name          func(childComplexity int) int
		Orders        func(childComplexity int) int
		PhotoURL      func(childComplexity int) int
		Type          func(childComplexity int) int
	}

	Category struct {
		ID   func(childComplexity int) int
		Name func(childComplexity int) int
	}

	Location struct {
		Address          func(childComplexity int) int
		BusinessAccount  func(childComplexity int) int
		Category         func(childComplexity int) int
		Coordinates      func(childComplexity int) int
		Description      func(childComplexity int) int
		GoogleAccountID  func(childComplexity int) int
		GoogleLocationID func(childComplexity int) int
		ID               func(childComplexity int) int
		IsActive         func(childComplexity int) int
		IsPublished      func(childComplexity int) int
		IsVerified       func(childComplexity int) int
		Name             func(childComplexity int) int
		Phone            func(childComplexity int) int
		PhotoURL         func(childComplexity int) int
		PlaceID          func(childComplexity int) int
		StoreCode        func(childComplexity int) int
		WebsiteURL       func(childComplexity int) int
		ZipCode          func(childComplexity int) int
	}

	Mutation struct {
		CreateAccount func(childComplexity int, account AccountInput) int
		CreateOrder   func(childComplexity int, order OrderInput) int
		CreateProduct func(childComplexity int, product ProductInput) int
	}

	Order struct {
		CreatedAt  func(childComplexity int) int
		ID         func(childComplexity int) int
		Products   func(childComplexity int) int
		TotalPrice func(childComplexity int) int
	}

	OrderedProduct struct {
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Name        func(childComplexity int) int
		Price       func(childComplexity int) int
		Quantity    func(childComplexity int) int
	}

	Product struct {
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Name        func(childComplexity int) int
		Price       func(childComplexity int) int
	}

	Query struct {
		Accounts func(childComplexity int, pagination *PaginationInput, id *string) int
		Products func(childComplexity int, pagination *PaginationInput, query *string, id *string) int
	}
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type DirectiveRoot

type DirectiveRoot struct {
}

type Location

type Location struct {
	ID               string      `json:"id"`
	Name             string      `json:"name"`
	GoogleAccountID  *string     `json:"googleAccountId"`
	GoogleLocationID *string     `json:"googleLocationId"`
	PlaceID          *string     `json:"placeId"`
	StoreCode        *string     `json:"storeCode"`
	Description      *string     `json:"description"`
	Address          *string     `json:"address"`
	ZipCode          *string     `json:"zipCode"`
	Phone            *string     `json:"phone"`
	WebsiteURL       *string     `json:"websiteURL"`
	PhotoURL         *string     `json:"photoURL"`
	Category         []*Category `json:"category"`
	Coordinates      []float64   `json:"coordinates"`
	BusinessAccount  *string     `json:"businessAccount"`
	IsVerified       *bool       `json:"isVerified"`
	IsPublished      *bool       `json:"isPublished"`
	IsActive         *bool       `json:"isActive"`
}

type MutationResolver

type MutationResolver interface {
	CreateAccount(ctx context.Context, account AccountInput) (*Account, error)
	CreateProduct(ctx context.Context, product ProductInput) (*Product, error)
	CreateOrder(ctx context.Context, order OrderInput) (*Order, error)
}

type Order

type Order struct {
	ID         string           `json:"id"`
	CreatedAt  time.Time        `json:"createdAt"`
	TotalPrice float64          `json:"totalPrice"`
	Products   []OrderedProduct `json:"products"`
}

type OrderInput

type OrderInput struct {
	AccountID string               `json:"accountId"`
	Products  []*OrderProductInput `json:"products"`
}

type OrderProductInput

type OrderProductInput struct {
	ID       string `json:"id"`
	Quantity int    `json:"quantity"`
}

type OrderedProduct

type OrderedProduct struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	Description string  `json:"description"`
	Price       float64 `json:"price"`
	Quantity    int     `json:"quantity"`
}

type PaginationInput

type PaginationInput struct {
	Skip *int `json:"skip"`
	Take *int `json:"take"`
}

type Product

type Product struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	Description string  `json:"description"`
	Price       float64 `json:"price"`
}

type ProductInput

type ProductInput struct {
	Name        string  `json:"name"`
	Description string  `json:"description"`
	Price       float64 `json:"price"`
}

type QueryResolver

type QueryResolver interface {
	Accounts(ctx context.Context, pagination *PaginationInput, id *string) ([]*Account, error)
	Products(ctx context.Context, pagination *PaginationInput, query *string, id *string) ([]*Product, error)
}

type ResolverRoot

type ResolverRoot interface {
	Account() AccountResolver
	Mutation() MutationResolver
	Query() QueryResolver
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewGraphQLServer

func NewGraphQLServer(accountUrl, catalogURL, orderURL string) (*Server, error)

func (*Server) Account

func (s *Server) Account() AccountResolver

func (*Server) Mutation

func (s *Server) Mutation() MutationResolver

func (*Server) Query

func (s *Server) Query() QueryResolver

func (*Server) ToExecutableSchema

func (s *Server) ToExecutableSchema() graphql.ExecutableSchema

Jump to

Keyboard shortcuts

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