graphql

package
v0.0.0-...-4d895cd Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2024 License: GPL-3.0 Imports: 31 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 NewServer

func NewServer(addr string, shutdownTimeout time.Duration, resolver *Resolver) *service.HTTPServer

Types

type AccountResolver

type AccountResolver interface {
	Type(ctx context.Context, obj *entities.Account) (model.AccountType, error)
	Balance(ctx context.Context, obj *entities.Account) (model.Amount, error)
	DeletedAt(ctx context.Context, obj *entities.Account) (*gql.DateTime, error)
	CreatedAt(ctx context.Context, obj *entities.Account) (gql.DateTime, error)
	UpdatedAt(ctx context.Context, obj *entities.Account) (gql.DateTime, error)
}

type ComplexityRoot

type ComplexityRoot struct {
	Account struct {
		Balance     func(childComplexity int) int
		CreatedAt   func(childComplexity int) int
		DeletedAt   func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Name        func(childComplexity int) int
		Type        func(childComplexity int) int
		UpdatedAt   func(childComplexity int) int
	}

	Amount struct {
		Amount   func(childComplexity int) int
		Currency func(childComplexity int) int
	}

	App struct {
		ActivePeriod func(childComplexity int) int
		Initialized  func(childComplexity int) int
		Version      func(childComplexity int) int
	}

	Contact struct {
		CreatedAt func(childComplexity int) int
		DeletedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		Name      func(childComplexity int) int
		QRCodes   func(childComplexity int) int
		Text      func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
	}

	Invoice struct {
		Amount       func(childComplexity int) int
		Contact      func(childComplexity int) int
		CreatedAt    func(childComplexity int) int
		Date         func(childComplexity int) int
		Desc         func(childComplexity int) int
		ID           func(childComplexity int) int
		Name         func(childComplexity int) int
		Status       func(childComplexity int) int
		Template     func(childComplexity int) int
		Transactions func(childComplexity int) int
		Type         func(childComplexity int) int
		UpdatedAt    func(childComplexity int) int
	}

	InvoiceTemplate struct {
		Amount        func(childComplexity int) int
		Contact       func(childComplexity int) int
		CreatedAt     func(childComplexity int) int
		Date          func(childComplexity int) int
		DeletedAt     func(childComplexity int) int
		Desc          func(childComplexity int) int
		ID            func(childComplexity int) int
		Name          func(childComplexity int) int
		RepeatPlanner func(childComplexity int) int
		Type          func(childComplexity int) int
		UpdatedAt     func(childComplexity int) int
	}

	Mutation struct {
		AddAccount              func(childComplexity int, account model.CreateAccountInput) int
		AddContact              func(childComplexity int, contact model.AddContactInput, qrCode *model.QRCodeInput) int
		AddInvoice              func(childComplexity int, invoice model.CreateInvoiceInput) int
		DeleteAccount           func(childComplexity int, id uint64) int
		Initialize              func(childComplexity int, startDate gql.Date) int
		RemoveContact           func(childComplexity int, contactID uint64) int
		RemoveQRCodeFromContact func(childComplexity int, contactID uint64, bankName string) int
		SetQRCodeToContact      func(childComplexity int, contactID uint64, qrCode model.QRCodeInput) int
		UpdateAccount           func(childComplexity int, account model.UpdateAccountInput) int
		UpdateContact           func(childComplexity int, name string, text string) int
		UpdateInvoice           func(childComplexity int, invoice model.UpdateInvoiceInput) int
	}

	Period struct {
		ClosedAt       func(childComplexity int) int
		CreatedAt      func(childComplexity int) int
		ID             func(childComplexity int) int
		SequenceOfYear func(childComplexity int) int
	}

	Query struct {
		Accounts         func(childComplexity int, withDeleted *bool) int
		App              func(childComplexity int) int
		Contacts         func(childComplexity int, withDeleted *bool) int
		InvoicesByPeriod func(childComplexity int, params model.FindInvoiceByPeriod) int
		Periods          func(childComplexity int, limit *uint64, offset *uint64) int
	}

	RepeatPlanner struct {
		DaysOfWeek    func(childComplexity int) int
		EndCount      func(childComplexity int) int
		EndDate       func(childComplexity int) int
		Interval      func(childComplexity int) int
		IntervalCount func(childComplexity int) int
	}

	Transaction struct {
		Amount    func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		From      func(childComplexity int) int
		ID        func(childComplexity int) int
		To        func(childComplexity int) int
	}
}

type Config

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

type ContactResolver

type ContactResolver interface {
	QRCodes(ctx context.Context, obj *entities.Contact) ([]string, error)
	DeletedAt(ctx context.Context, obj *entities.Contact) (*gql.DateTime, error)
	CreatedAt(ctx context.Context, obj *entities.Contact) (gql.DateTime, error)
	UpdatedAt(ctx context.Context, obj *entities.Contact) (gql.DateTime, error)
}

type DirectiveRoot

type DirectiveRoot struct {
}

type InvoiceResolver

type InvoiceResolver interface {
	Status(ctx context.Context, obj *entities.Invoice) (model.InvoiceStatus, error)
	Type(ctx context.Context, obj *entities.Invoice) (model.InvoiceType, error)

	Amount(ctx context.Context, obj *entities.Invoice) (model.Amount, error)
	Date(ctx context.Context, obj *entities.Invoice) (gql.DateTime, error)
	CreatedAt(ctx context.Context, obj *entities.Invoice) (gql.DateTime, error)
	UpdatedAt(ctx context.Context, obj *entities.Invoice) (gql.DateTime, error)
}

type MutationResolver

type MutationResolver interface {
	Initialize(ctx context.Context, startDate gql.Date) (bool, error)
	AddInvoice(ctx context.Context, invoice model.CreateInvoiceInput) (bool, error)
	AddAccount(ctx context.Context, account model.CreateAccountInput) (bool, error)
	AddContact(ctx context.Context, contact model.AddContactInput, qrCode *model.QRCodeInput) (bool, error)
	UpdateContact(ctx context.Context, name string, text string) (bool, error)
	UpdateAccount(ctx context.Context, account model.UpdateAccountInput) (bool, error)
	UpdateInvoice(ctx context.Context, invoice model.UpdateInvoiceInput) (bool, error)
	DeleteAccount(ctx context.Context, id uint64) (bool, error)
	RemoveContact(ctx context.Context, contactID uint64) (bool, error)
	SetQRCodeToContact(ctx context.Context, contactID uint64, qrCode model.QRCodeInput) (bool, error)
	RemoveQRCodeFromContact(ctx context.Context, contactID uint64, bankName string) (bool, error)
}

type PeriodResolver

type PeriodResolver interface {
	SequenceOfYear(ctx context.Context, obj *entities.Period) (uint32, error)
	CreatedAt(ctx context.Context, obj *entities.Period) (gql.DateTime, error)
	ClosedAt(ctx context.Context, obj *entities.Period) (*gql.DateTime, error)
}

type QueryResolver

type QueryResolver interface {
	App(ctx context.Context) (model.App, error)
	Accounts(ctx context.Context, withDeleted *bool) ([]entities.Account, error)
	Contacts(ctx context.Context, withDeleted *bool) ([]entities.Contact, error)
	InvoicesByPeriod(ctx context.Context, params model.FindInvoiceByPeriod) ([]entities.Invoice, error)
	Periods(ctx context.Context, limit *uint64, offset *uint64) ([]entities.Period, error)
}

type Reader

type Reader struct {
	Contacts interface {
		GetAll(ctx context.Context, withDeleted *bool) ([]entities.Contact, error)
	}
	App interface {
		GetInfo(ctx context.Context) (*serviceport.AppInfo, error)
	}
	Periods interface {
		GetAll(ctx context.Context, limit *uint64, offset *uint64) ([]entities.Period, error)
		GetByID(ctx context.Context, ID uint64) (*entities.Period, error)
	}
	Accounts interface {
		GetAll(ctx context.Context, withDeleted *bool) ([]entities.Account, error)
	}
	Invoices interface {
		FindByDates(ctx context.Context, req repoport.FindByDatesRequest) ([]entities.Invoice, error)
	}
}

type RepeatPlannerResolver

type RepeatPlannerResolver interface {
	Interval(ctx context.Context, obj *entities.RepeatPlanner) (model.PlanRepeatInterval, error)
	DaysOfWeek(ctx context.Context, obj *entities.RepeatPlanner) ([]uint32, error)
	EndDate(ctx context.Context, obj *entities.RepeatPlanner) (*gql.Date, error)
}

type Resolver

type Resolver struct {
	UseCases UseCases
	Reader   Reader
	Services Services
}

func (*Resolver) Account

func (r *Resolver) Account() AccountResolver

Account returns AccountResolver implementation.

func (*Resolver) Contact

func (r *Resolver) Contact() ContactResolver

Contact returns ContactResolver implementation.

func (*Resolver) Invoice

func (r *Resolver) Invoice() InvoiceResolver

Invoice returns InvoiceResolver implementation.

func (*Resolver) InvoiceTemplate

func (r *Resolver) InvoiceTemplate() InvoiceTemplateResolver

InvoiceTemplate returns InvoiceTemplateResolver implementation.

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

Mutation returns MutationResolver implementation.

func (*Resolver) Period

func (r *Resolver) Period() PeriodResolver

Period returns PeriodResolver implementation.

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

Query returns QueryResolver implementation.

func (*Resolver) RepeatPlanner

func (r *Resolver) RepeatPlanner() RepeatPlannerResolver

RepeatPlanner returns RepeatPlannerResolver implementation.

func (*Resolver) Transaction

func (r *Resolver) Transaction() TransactionResolver

Transaction returns TransactionResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Account() AccountResolver
	Contact() ContactResolver
	Invoice() InvoiceResolver
	InvoiceTemplate() InvoiceTemplateResolver
	Mutation() MutationResolver
	Period() PeriodResolver
	Query() QueryResolver
	RepeatPlanner() RepeatPlannerResolver
	Transaction() TransactionResolver
}

type Services

type Services struct {
	Periods interface {
		GetEstimatedEndDate(ctx context.Context) (datetime.DateTime, error)
	}
}

type TransactionResolver

type TransactionResolver interface {
	Amount(ctx context.Context, obj *entities.Transaction) (model.Amount, error)

	CreatedAt(ctx context.Context, obj *entities.Transaction) (gql.DateTime, error)
}

type UseCases

type UseCases struct {
	Initialize interface {
		Execute(ctx context.Context, startDate datetime.Date) error
	}
	CreateAccount interface {
		Execute(ctx context.Context, params port.CreateAccountParams) (bool, error)
	}
	CreateContact interface {
		Execute(ctx context.Context, request port.CreateContactRequest) error
	}
	SetQRCodeToContact interface {
		Execute(ctx context.Context, contactID uint64, file port.ContactQRCode) error
	}
	RemoveQRCodeFromContact interface {
		Execute(ctx context.Context, contactID uint64, bankName string) error
	}
	DeleteContact interface {
		Execute(ctx context.Context, contactID uint64) error
	}
	UpdateContact interface {
		Execute(ctx context.Context, req port.UpdateContactRequest) error
	}
	UpdateAccount interface {
		Execute(ctx context.Context, ID uint64, name string, description *string, balance currency.Amount) (bool, error)
	}
	DeleteAccount interface {
		Execute(ctx context.Context, ID uint64) (bool, error)
	}
	CreateInvoice interface {
		Execute(ctx context.Context, request port.CreateInvoiceRequest) error
	}
	UpdateInvoice interface {
		Execute(ctx context.Context, request port.UpdateInvoiceRequest) error
	}
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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