graph

package
v0.0.0-...-0406d23 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2023 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnknownType  = errors.New("unknown type")
	ErrTypeNotFound = errors.New("type not found")
)

Functions

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

Types

type CommentResolver

type CommentResolver interface {
	ID(ctx context.Context, obj *model.Comment) (string, error)
	UID(ctx context.Context, obj *model.Comment) (*string, error)

	Body(ctx context.Context, obj *model.Comment) (string, error)

	Metadata(ctx context.Context, obj *model.Comment) (map[string]interface{}, error)
	Parent(ctx context.Context, obj *model.Comment) (*model.Comment, error)
	Children(ctx context.Context, obj *model.Comment) ([]*model.Comment, error)
	Object(ctx context.Context, obj *model.Comment) (map[string]interface{}, error)
	Reactions(ctx context.Context, obj *model.Comment) ([]*model.Reaction, error)
	Created(ctx context.Context, obj *model.Comment) (string, error)
	Updated(ctx context.Context, obj *model.Comment) (string, error)
	Responded(ctx context.Context, obj *model.Comment) (*string, error)
}

type ComplexityRoot

type ComplexityRoot struct {
	Board struct {
		ID func(childComplexity int) int
	}

	Comment struct {
		Body       func(childComplexity int) int
		Children   func(childComplexity int) int
		Created    func(childComplexity int) int
		ID         func(childComplexity int) int
		Locale     func(childComplexity int) int
		Metadata   func(childComplexity int) int
		Object     func(childComplexity int) int
		Parent     func(childComplexity int) int
		Rating     func(childComplexity int) int
		Reactions  func(childComplexity int) int
		Recommends func(childComplexity int) int
		Responded  func(childComplexity int) int
		Response   func(childComplexity int) int
		Status     func(childComplexity int) int
		Subject    func(childComplexity int) int
		UID        func(childComplexity int) int
		Updated    func(childComplexity int) int
	}

	Comments struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Contact struct {
		Comments func(childComplexity int) int
		ID       func(childComplexity int) int
	}

	Conversation struct {
		Comments    func(childComplexity int) int
		Created     func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Labels      func(childComplexity int) int
		Message     func(childComplexity int) int
		Messages    func(childComplexity int) int
		Metadata    func(childComplexity int) int
		Name        func(childComplexity int) int
		Shares      func(childComplexity int) int
		Status      func(childComplexity int) int
		Type        func(childComplexity int) int
		Updated     func(childComplexity int) int
	}

	Conversations struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Entity struct {
		FindCommentByID  func(childComplexity int, id string) int
		FindContactByID  func(childComplexity int, id string) int
		FindExpenseByID  func(childComplexity int, id string) int
		FindFileByID     func(childComplexity int, id string) int
		FindPlaceByID    func(childComplexity int, id string) int
		FindPostByID     func(childComplexity int, id string) int
		FindQuoteByID    func(childComplexity int, id string) int
		FindReactionByID func(childComplexity int, id string) int
		FindShareByID    func(childComplexity int, id string) int
		FindTaskByID     func(childComplexity int, id string) int
		FindUserByID     func(childComplexity int, id string) int
	}

	Expense struct {
		Comments func(childComplexity int) int
		ID       func(childComplexity int) int
	}

	File struct {
		Comments func(childComplexity int) int
		ID       func(childComplexity int) int
	}

	Message struct {
		Body         func(childComplexity int) int
		Conversation func(childComplexity int) int
		ID           func(childComplexity int) int
		Recipients   func(childComplexity int) int
		Status       func(childComplexity int) int
		Subject      func(childComplexity int) int
		Timestamp    func(childComplexity int) int
	}

	Messages struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Mutation struct {
		CreateComment       func(childComplexity int, input model.NewComment) int
		CreateConversation  func(childComplexity int, input model.NewConversation) int
		CreateMessage       func(childComplexity int, input model.NewMessage) int
		CreateReaction      func(childComplexity int, input model.NewReaction) int
		CreateRecipient     func(childComplexity int, input model.NewRecipient) int
		CreateShare         func(childComplexity int, input model.ShareInput) int
		CreateTemplate      func(childComplexity int, input model.NewTemplate) int
		DeleteComment       func(childComplexity int, id string) int
		DeleteComments      func(childComplexity int, ids []string) int
		DeleteConversation  func(childComplexity int, id string) int
		DeleteConversations func(childComplexity int, ids []string) int
		DeleteMessage       func(childComplexity int, id string) int
		DeleteMessages      func(childComplexity int, ids []string) int
		DeleteNotification  func(childComplexity int, id string) int
		DeleteNotifications func(childComplexity int, ids []string) int
		DeleteRecipient     func(childComplexity int, id string) int
		DeleteRecipients    func(childComplexity int, ids []string) int
		DeleteShare         func(childComplexity int, id string) int
		DeleteShares        func(childComplexity int, ids []string) int
		DeleteTemplate      func(childComplexity int, id string) int
		DeleteTemplates     func(childComplexity int, ids []*string) int
		LeaveConversation   func(childComplexity int, id string) int
		UpdateComment       func(childComplexity int, id string, input model.UpdateComment) int
		UpdateConversation  func(childComplexity int, id string, input model.UpdateConversation) int
		UpdateMessage       func(childComplexity int, id string, input model.UpdateMessage) int
		UpdateNotification  func(childComplexity int, id string) int
		UpdateReaction      func(childComplexity int, id string, input model.UpdateReaction) int
		UpdateRecipient     func(childComplexity int, id string, input model.UpdateRecipient) int
		UpdateShare         func(childComplexity int, id string, input model.ShareUpdateInput) int
		UpdateTemplate      func(childComplexity int, id string, input model.UpdateTemplate) int
	}

	Notification struct {
		Created    func(childComplexity int) int
		ID         func(childComplexity int) int
		Locale     func(childComplexity int) int
		Metadata   func(childComplexity int) int
		Notifiable func(childComplexity int) int
		Read       func(childComplexity int) int
		Type       func(childComplexity int) int
		UID        func(childComplexity int) int
		Updated    func(childComplexity int) int
	}

	Notifications struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Place struct {
		ID      func(childComplexity int) int
		Reviews func(childComplexity int) int
	}

	Post struct {
		Comments func(childComplexity int) int
		ID       func(childComplexity int) int
	}

	Query struct {
		Comment       func(childComplexity int, id string) int
		Comments      func(childComplexity int, stages map[string]interface{}) int
		Conversation  func(childComplexity int, id string) int
		Conversations func(childComplexity int, stages map[string]interface{}) int
		Message       func(childComplexity int, id string) int
		Messages      func(childComplexity int, stages map[string]interface{}) int
		Notification  func(childComplexity int, id string) int
		Notifications func(childComplexity int, stages map[string]interface{}) int
		Reaction      func(childComplexity int, object map[string]interface{}) int
		Reactions     func(childComplexity int, stages map[string]interface{}) int
		Recipient     func(childComplexity int, id string) int
		Recipients    func(childComplexity int, stages map[string]interface{}) int
		Share         func(childComplexity int, id string) int
		Shares        func(childComplexity int, stages map[string]interface{}) int
		Template      func(childComplexity int, name string) int
		Templates     func(childComplexity int, stages map[string]interface{}) int
		// contains filtered or unexported fields
	}

	Quote struct {
		Comments func(childComplexity int) int
		ID       func(childComplexity int) int
	}

	Reaction struct {
		Action  func(childComplexity int) int
		Created func(childComplexity int) int
		ID      func(childComplexity int) int
		Object  func(childComplexity int) int
		UID     func(childComplexity int) int
		Updated func(childComplexity int) int
	}

	Reactions struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Recipient struct {
		ID      func(childComplexity int) int
		Message func(childComplexity int) int
		Read    func(childComplexity int) int
		UID     func(childComplexity int) int
	}

	Recipients struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Share struct {
		Created    func(childComplexity int) int
		ID         func(childComplexity int) int
		Metadata   func(childComplexity int) int
		Object     func(childComplexity int) int
		Permission func(childComplexity int) int
		Status     func(childComplexity int) int
		UID        func(childComplexity int) int
		Updated    func(childComplexity int) int
	}

	Shares struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	Task struct {
		Comments func(childComplexity int) int
		ID       func(childComplexity int) int
	}

	Template struct {
		Body     func(childComplexity int) int
		Created  func(childComplexity int) int
		ID       func(childComplexity int) int
		Locale   func(childComplexity int) int
		Metadata func(childComplexity int) int
		Name     func(childComplexity int) int
		Status   func(childComplexity int) int
		Subject  func(childComplexity int) int
		Updated  func(childComplexity int) int
	}

	Templates struct {
		Count func(childComplexity int) int
		Data  func(childComplexity int) int
	}

	User struct {
		Comments      func(childComplexity int) int
		Conversations func(childComplexity int) int
		ID            func(childComplexity int) int
		Notifications func(childComplexity int) int
		Reactions     func(childComplexity int) int
	}
	// contains filtered or unexported fields
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type ConversationResolver

type ConversationResolver interface {
	ID(ctx context.Context, obj *model.Conversation) (string, error)

	Metadata(ctx context.Context, obj *model.Conversation) (map[string]interface{}, error)
	Message(ctx context.Context, obj *model.Conversation) (*model.Message, error)
	Messages(ctx context.Context, obj *model.Conversation) ([]*model.Message, error)
	Created(ctx context.Context, obj *model.Conversation) (string, error)
	Updated(ctx context.Context, obj *model.Conversation) (string, error)
	Shares(ctx context.Context, obj *model.Conversation) ([]*model.Share, error)
	Comments(ctx context.Context, obj *model.Conversation) ([]*model.Comment, error)
}

type DirectiveRoot

type DirectiveRoot struct {
	Api              func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error)
	Auth             func(ctx context.Context, obj interface{}, next graphql.Resolver, roles []string) (res interface{}, err error)
	ComposeDirective func(ctx context.Context, obj interface{}, next graphql.Resolver, name string) (res interface{}, err error)
	HasScope         func(ctx context.Context, obj interface{}, next graphql.Resolver, scope []string) (res interface{}, err error)
	InterfaceObject  func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error)
}

type EntityResolver

type EntityResolver interface {
	FindCommentByID(ctx context.Context, id string) (*model.Comment, error)
	FindContactByID(ctx context.Context, id string) (*model.Contact, error)
	FindExpenseByID(ctx context.Context, id string) (*model.Expense, error)
	FindFileByID(ctx context.Context, id string) (*model.File, error)
	FindPlaceByID(ctx context.Context, id string) (*model.Place, error)
	FindPostByID(ctx context.Context, id string) (*model.Post, error)
	FindQuoteByID(ctx context.Context, id string) (*model.Quote, error)
	FindReactionByID(ctx context.Context, id string) (*model.Reaction, error)
	FindShareByID(ctx context.Context, id string) (*model.Share, error)
	FindTaskByID(ctx context.Context, id string) (*model.Task, error)
	FindUserByID(ctx context.Context, id string) (*model.User, error)
}

type MessageResolver

type MessageResolver interface {
	ID(ctx context.Context, obj *model.Message) (string, error)
	Conversation(ctx context.Context, obj *model.Message) (*model.Conversation, error)

	Timestamp(ctx context.Context, obj *model.Message) (string, error)
	Recipients(ctx context.Context, obj *model.Message) ([]*model.Recipient, error)
}

type MutationResolver

type MutationResolver interface {
	CreateComment(ctx context.Context, input model.NewComment) (*model.Comment, error)
	UpdateComment(ctx context.Context, id string, input model.UpdateComment) (*model.Comment, error)
	DeleteComment(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteComments(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateConversation(ctx context.Context, input model.NewConversation) (*model.Conversation, error)
	UpdateConversation(ctx context.Context, id string, input model.UpdateConversation) (*model.Conversation, error)
	LeaveConversation(ctx context.Context, id string) (*model.Conversation, error)
	DeleteConversation(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteConversations(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateMessage(ctx context.Context, input model.NewMessage) (*model.Message, error)
	UpdateMessage(ctx context.Context, id string, input model.UpdateMessage) (*model.Message, error)
	DeleteMessage(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteMessages(ctx context.Context, ids []string) (map[string]interface{}, error)
	UpdateNotification(ctx context.Context, id string) (*model.Notification, error)
	DeleteNotification(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteNotifications(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateReaction(ctx context.Context, input model.NewReaction) (*model.Reaction, error)
	UpdateReaction(ctx context.Context, id string, input model.UpdateReaction) (*model.Reaction, error)
	CreateRecipient(ctx context.Context, input model.NewRecipient) (*model.Recipient, error)
	UpdateRecipient(ctx context.Context, id string, input model.UpdateRecipient) (*model.Recipient, error)
	DeleteRecipient(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteRecipients(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateShare(ctx context.Context, input model.ShareInput) (*model.Share, error)
	UpdateShare(ctx context.Context, id string, input model.ShareUpdateInput) (*model.Share, error)
	DeleteShare(ctx context.Context, id string) (bool, error)
	DeleteShares(ctx context.Context, ids []string) (bool, error)
	CreateTemplate(ctx context.Context, input model.NewTemplate) (*model.Template, error)
	UpdateTemplate(ctx context.Context, id string, input model.UpdateTemplate) (*model.Template, error)
	DeleteTemplate(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteTemplates(ctx context.Context, ids []*string) (map[string]interface{}, error)
}

type NotificationResolver

type NotificationResolver interface {
	ID(ctx context.Context, obj *model.Notification) (string, error)
	UID(ctx context.Context, obj *model.Notification) (string, error)

	Read(ctx context.Context, obj *model.Notification) (*string, error)
	Notifiable(ctx context.Context, obj *model.Notification) (map[string]interface{}, error)
	Metadata(ctx context.Context, obj *model.Notification) (map[string]interface{}, error)
	Created(ctx context.Context, obj *model.Notification) (string, error)
	Updated(ctx context.Context, obj *model.Notification) (string, error)
}

type PostResolver

type PostResolver interface {
	Comments(ctx context.Context, obj *model.Post) ([]*model.Comment, error)
}

type QueryResolver

type QueryResolver interface {
	Comments(ctx context.Context, stages map[string]interface{}) (*model.Comments, error)
	Comment(ctx context.Context, id string) (*model.Comment, error)
	Conversation(ctx context.Context, id string) (*model.Conversation, error)
	Conversations(ctx context.Context, stages map[string]interface{}) (*model.Conversations, error)
	Message(ctx context.Context, id string) (*model.Message, error)
	Messages(ctx context.Context, stages map[string]interface{}) (*model.Messages, error)
	Notifications(ctx context.Context, stages map[string]interface{}) (*model.Notifications, error)
	Notification(ctx context.Context, id string) (*model.Notification, error)
	Reaction(ctx context.Context, object map[string]interface{}) (*model.Reaction, error)
	Reactions(ctx context.Context, stages map[string]interface{}) (*model.Reactions, error)
	Recipient(ctx context.Context, id string) (*model.Recipient, error)
	Recipients(ctx context.Context, stages map[string]interface{}) (*model.Recipients, error)
	Share(ctx context.Context, id string) (*model.Share, error)
	Shares(ctx context.Context, stages map[string]interface{}) (*model.Shares, error)
	Template(ctx context.Context, name string) (*model.Template, error)
	Templates(ctx context.Context, stages map[string]interface{}) (*model.Templates, error)
}

type ReactionResolver

type ReactionResolver interface {
	ID(ctx context.Context, obj *model.Reaction) (string, error)
	UID(ctx context.Context, obj *model.Reaction) (string, error)
	Object(ctx context.Context, obj *model.Reaction) (map[string]interface{}, error)

	Created(ctx context.Context, obj *model.Reaction) (string, error)
	Updated(ctx context.Context, obj *model.Reaction) (string, error)
}

type RecipientResolver

type RecipientResolver interface {
	ID(ctx context.Context, obj *model.Recipient) (string, error)
	UID(ctx context.Context, obj *model.Recipient) (string, error)
	Message(ctx context.Context, obj *model.Recipient) (*model.Message, error)
	Read(ctx context.Context, obj *model.Recipient) (*string, error)
}

type Resolver

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

func NewResolver

func NewResolver(db *mongo.Database, rdb *redis.Client, ts *typesense.Client) *Resolver

func (*Resolver) Comment

func (r *Resolver) Comment() CommentResolver

Comment returns CommentResolver implementation.

func (*Resolver) Conversation

func (r *Resolver) Conversation() ConversationResolver

Conversation returns ConversationResolver implementation.

func (*Resolver) Entity

func (r *Resolver) Entity() EntityResolver

Entity returns EntityResolver implementation.

func (*Resolver) Message

func (r *Resolver) Message() MessageResolver

Message returns MessageResolver implementation.

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

Mutation returns MutationResolver implementation.

func (*Resolver) Notification

func (r *Resolver) Notification() NotificationResolver

Notification returns NotificationResolver implementation.

func (*Resolver) Post

func (r *Resolver) Post() PostResolver

Post returns PostResolver implementation.

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

Query returns QueryResolver implementation.

func (*Resolver) Reaction

func (r *Resolver) Reaction() ReactionResolver

Reaction returns ReactionResolver implementation.

func (*Resolver) Recipient

func (r *Resolver) Recipient() RecipientResolver

Recipient returns RecipientResolver implementation.

func (*Resolver) Share

func (r *Resolver) Share() ShareResolver

Share returns ShareResolver implementation.

func (*Resolver) Task

func (r *Resolver) Task() TaskResolver

Task returns TaskResolver implementation.

func (*Resolver) Template

func (r *Resolver) Template() TemplateResolver

Template returns TemplateResolver implementation.

func (*Resolver) User

func (r *Resolver) User() UserResolver

User returns UserResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Comment() CommentResolver
	Conversation() ConversationResolver
	Entity() EntityResolver
	Message() MessageResolver
	Mutation() MutationResolver
	Notification() NotificationResolver
	Post() PostResolver
	Query() QueryResolver
	Reaction() ReactionResolver
	Recipient() RecipientResolver
	Share() ShareResolver
	Task() TaskResolver
	Template() TemplateResolver
	User() UserResolver
}

type ShareResolver

type ShareResolver interface {
	ID(ctx context.Context, obj *model.Share) (string, error)
	UID(ctx context.Context, obj *model.Share) (string, error)
	Object(ctx context.Context, obj *model.Share) (map[string]interface{}, error)

	Metadata(ctx context.Context, obj *model.Share) (map[string]interface{}, error)

	Created(ctx context.Context, obj *model.Share) (string, error)
	Updated(ctx context.Context, obj *model.Share) (string, error)
}

type TaskResolver

type TaskResolver interface {
	Comments(ctx context.Context, obj *model.Task) ([]*model.Comment, error)
}

type TemplateResolver

type TemplateResolver interface {
	ID(ctx context.Context, obj *model.Template) (string, error)

	Subject(ctx context.Context, obj *model.Template) (string, error)
	Body(ctx context.Context, obj *model.Template) (string, error)
	Metadata(ctx context.Context, obj *model.Template) (map[string]interface{}, error)

	Created(ctx context.Context, obj *model.Template) (string, error)
	Updated(ctx context.Context, obj *model.Template) (string, error)
}

type UserResolver

type UserResolver interface {
	Notifications(ctx context.Context, obj *model.User) ([]*model.Notification, error)
	Conversations(ctx context.Context, obj *model.User) ([]*model.Conversation, error)
	Comments(ctx context.Context, obj *model.User) ([]*model.Comment, error)
	Reactions(ctx context.Context, obj *model.User) ([]*model.Reaction, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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