graph

package
v0.0.0-...-eccc266 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

func NewGraphHandler

func NewGraphHandler(conf *conf.Config, dbQuerier *dao.DAO, authService *auth.Service) http.Handler

Types

type ComplexityRoot

type ComplexityRoot struct {
	Expense struct {
		Amount      func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		WalletID    func(childComplexity int) int
	}

	Mutation struct {
		AdminCreate     func(childComplexity int, newAdmin model.NewUser) int
		CreateWallet    func(childComplexity int, input model.CreateWalletInput) int
		SelfCheck       func(childComplexity int) int
		UserAssignRoles func(childComplexity int, email string, newRoles []auth.RoleID) int
		UserCreate      func(childComplexity int, newUser model.NewUser) int
		UserSetPassword func(childComplexity int, userID string, newPassword string) int
	}

	Query struct {
		GetUser              func(childComplexity int, email string) int
		GetUserRoles         func(childComplexity int, userID string) int
		ListExpenses         func(childComplexity int, walletID string) int
		ListExpensesByUserID func(childComplexity int, userID string, walletID string) int
		ListUsers            func(childComplexity int) int
		ListWallets          func(childComplexity int) int
		ListWalletsByUserID  func(childComplexity int, userID string) int
		Login                func(childComplexity int, email string, pass string) int
		Ping                 func(childComplexity int) int
	}

	Role struct {
		Role   func(childComplexity int) int
		UserID func(childComplexity int) int
	}

	User struct {
		DisplayName func(childComplexity int) int
		Email       func(childComplexity int) int
		ID          func(childComplexity int) int
	}

	Wallet struct {
		CreatedAt func(childComplexity int) int
		Currency  func(childComplexity int) int
		ID        func(childComplexity int) int
		UserID    func(childComplexity int) int
	}
}

type Config

type Config struct {
	Schema     *ast.Schema
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type DirectiveRoot

type DirectiveRoot struct {
	HasRole func(ctx context.Context, obj interface{}, next graphql.Resolver, role auth.RoleID) (res interface{}, err error)
}

type ExpenseResolver

type ExpenseResolver interface {
	Description(ctx context.Context, obj *dao.Expense) (*string, error)
}

type MutationResolver

type MutationResolver interface {
	SelfCheck(ctx context.Context) (bool, error)
	UserSetPassword(ctx context.Context, userID string, newPassword string) (*auth.User, error)
	UserCreate(ctx context.Context, newUser model.NewUser) (*auth.User, error)
	AdminCreate(ctx context.Context, newAdmin model.NewUser) (*auth.User, error)
	UserAssignRoles(ctx context.Context, email string, newRoles []auth.RoleID) ([]auth.RoleID, error)
	CreateWallet(ctx context.Context, input model.CreateWalletInput) ([]*dao.Wallet, error)
}

type QueryResolver

type QueryResolver interface {
	Ping(ctx context.Context) (string, error)
	Login(ctx context.Context, email string, pass string) (*string, error)
	GetUserRoles(ctx context.Context, userID string) ([]auth.RoleID, error)
	ListUsers(ctx context.Context) ([]*auth.User, error)
	GetUser(ctx context.Context, email string) (*auth.User, error)
	ListWallets(ctx context.Context) ([]*dao.Wallet, error)
	ListWalletsByUserID(ctx context.Context, userID string) ([]*dao.Wallet, error)
	ListExpenses(ctx context.Context, walletID string) ([]*dao.Expense, error)
	ListExpensesByUserID(ctx context.Context, userID string, walletID string) ([]*dao.Expense, error)
}

type Resolver

type Resolver struct {
	Conf        *conf.Config
	Dao         *dao.DAO
	AuthService *auth.Service
}

func (*Resolver) Expense

func (r *Resolver) Expense() ExpenseResolver

Expense returns ExpenseResolver implementation.

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

Mutation returns MutationResolver implementation.

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

Query returns QueryResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Expense() ExpenseResolver
	Mutation() MutationResolver
	Query() QueryResolver
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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