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: 21 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 AudienceResolver

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

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

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

type CampaignResolver

type CampaignResolver interface {
	ID(ctx context.Context, obj *model.Campaign) (string, error)
	Audience(ctx context.Context, obj *model.Campaign) (*model.Audience, error)

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

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

type ComplexityRoot

type ComplexityRoot struct {
	Audience struct {
		Created     func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Metadata    func(childComplexity int) int
		Name        func(childComplexity int) int
		Segments    func(childComplexity int) int
		Status      func(childComplexity int) int
		Updated     func(childComplexity int) int
	}

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

	Campaign struct {
		Audience func(childComplexity int) int
		Created  func(childComplexity int) int
		ID       func(childComplexity int) int
		Metadata func(childComplexity int) int
		Name     func(childComplexity int) int
		Status   func(childComplexity int) int
		Type     func(childComplexity int) int
		UID      func(childComplexity int) int
		Updated  func(childComplexity int) int
	}

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

	Comment struct {
		ID func(childComplexity int) int
	}

	Entity struct {
		FindCampaignByID func(childComplexity int, id string) int
		FindLinkByID     func(childComplexity int, id string) int
		FindUserByID     func(childComplexity int, id string) int
	}

	Link struct {
		Code        func(childComplexity int) int
		Created     func(childComplexity int) int
		Domain      func(childComplexity int) int
		Engagements func(childComplexity int) int
		ID          func(childComplexity int) int
		Metadata    func(childComplexity int) int
		Status      func(childComplexity int) int
		Tags        func(childComplexity int) int
		Title       func(childComplexity int) int
		UID         func(childComplexity int) int
		URL         func(childComplexity int) int
		Updated     func(childComplexity int) int
	}

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

	Mutation struct {
		CreateAudience  func(childComplexity int, input model.NewAudience) int
		CreateCampaign  func(childComplexity int, input model.NewCampaign) int
		CreateLink      func(childComplexity int, input model.NewLink) int
		CreateSegment   func(childComplexity int, input model.SegmentInput) int
		DeleteAudience  func(childComplexity int, id string) int
		DeleteAudiences func(childComplexity int, ids []string) int
		DeleteCampaign  func(childComplexity int, id string) int
		DeleteCampaigns func(childComplexity int, ids []string) int
		DeleteLink      func(childComplexity int, id string) int
		DeleteLinks     func(childComplexity int, ids []string) int
		DeleteSegment   func(childComplexity int, id string) int
		DeleteSegments  func(childComplexity int, ids []string) int
		UpdateAudience  func(childComplexity int, id string, input model.UpdateAudience) int
		UpdateCampaign  func(childComplexity int, id string, input model.UpdateCampaign) int
		UpdateLink      func(childComplexity int, id string, input model.UpdateLink) int
		UpdateSegment   func(childComplexity int, id string, input model.SegmentInput) int
	}

	Query struct {
		Audience  func(childComplexity int, id string) int
		Audiences func(childComplexity int, stages map[string]interface{}) int
		Campaign  func(childComplexity int, id string) int
		Campaigns func(childComplexity int, stages map[string]interface{}) int
		Link      func(childComplexity int, id string) int
		Links     func(childComplexity int, stages map[string]interface{}) int
		Segment   func(childComplexity int, id string) int
		Segments  func(childComplexity int, stages map[string]interface{}) int
		// contains filtered or unexported fields
	}

	Schedule struct {
		Campaign  func(childComplexity int) int
		Created   func(childComplexity int) int
		Days      func(childComplexity int) int
		End       func(childComplexity int) int
		Frequency func(childComplexity int) int
		ID        func(childComplexity int) int
		Interval  func(childComplexity int) int
		Metadata  func(childComplexity int) int
		Recurring func(childComplexity int) int
		Start     func(childComplexity int) int
		Time      func(childComplexity int) int
		Timezone  func(childComplexity int) int
		Updated   func(childComplexity int) int
	}

	Segment struct {
		Created     func(childComplexity int) int
		CreatedBy   func(childComplexity int) int
		Criteria    func(childComplexity int) int
		Description func(childComplexity int) int
		ID          func(childComplexity int) int
		Name        func(childComplexity int) int
		Updated     func(childComplexity int) int
		UpdatedBy   func(childComplexity int) int
	}

	SegmentCriteria struct {
		Field    func(childComplexity int) int
		Operator func(childComplexity int) int
		Value    func(childComplexity int) int
	}

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

	Share struct {
		ID func(childComplexity int) int
	}

	Term struct {
		ID func(childComplexity int) int
	}

	User struct {
		Campaigns func(childComplexity int) int
		ID        func(childComplexity int) int
		Links     func(childComplexity int) int
	}
	// contains filtered or unexported fields
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

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 {
	FindCampaignByID(ctx context.Context, id string) (*model.Campaign, error)
	FindLinkByID(ctx context.Context, id string) (*model.Link, error)
	FindUserByID(ctx context.Context, id string) (*model.User, error)
}

type LinkResolver

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

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

	Created(ctx context.Context, obj *model.Link) (string, error)
	Updated(ctx context.Context, obj *model.Link) (string, error)
	UID(ctx context.Context, obj *model.Link) (string, error)
	Tags(ctx context.Context, obj *model.Link) ([]*string, error)
}

type MutationResolver

type MutationResolver interface {
	CreateAudience(ctx context.Context, input model.NewAudience) (*model.Audience, error)
	UpdateAudience(ctx context.Context, id string, input model.UpdateAudience) (*model.Audience, error)
	DeleteAudience(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteAudiences(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateCampaign(ctx context.Context, input model.NewCampaign) (*model.Campaign, error)
	UpdateCampaign(ctx context.Context, id string, input model.UpdateCampaign) (*model.Campaign, error)
	DeleteCampaign(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteCampaigns(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateLink(ctx context.Context, input model.NewLink) (*model.Link, error)
	UpdateLink(ctx context.Context, id string, input model.UpdateLink) (*model.Link, error)
	DeleteLink(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteLinks(ctx context.Context, ids []string) (map[string]interface{}, error)
	CreateSegment(ctx context.Context, input model.SegmentInput) (*model.Segment, error)
	UpdateSegment(ctx context.Context, id string, input model.SegmentInput) (*model.Segment, error)
	DeleteSegment(ctx context.Context, id string) (map[string]interface{}, error)
	DeleteSegments(ctx context.Context, ids []string) (map[string]interface{}, error)
}

type QueryResolver

type QueryResolver interface {
	Audience(ctx context.Context, id string) (*model.Audience, error)
	Audiences(ctx context.Context, stages map[string]interface{}) ([]*model.Audience, error)
	Campaigns(ctx context.Context, stages map[string]interface{}) ([]*model.Campaign, error)
	Campaign(ctx context.Context, id string) (*model.Campaign, error)
	Links(ctx context.Context, stages map[string]interface{}) (*model.Links, error)
	Link(ctx context.Context, id string) (*model.Link, error)
	Segment(ctx context.Context, id string) (*model.Segment, error)
	Segments(ctx context.Context, stages map[string]interface{}) (*model.Segments, 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) Audience

func (r *Resolver) Audience() AudienceResolver

Audience returns AudienceResolver implementation.

func (*Resolver) Campaign

func (r *Resolver) Campaign() CampaignResolver

Campaign returns CampaignResolver implementation.

func (*Resolver) Entity

func (r *Resolver) Entity() EntityResolver

Entity returns EntityResolver implementation.

func (r *Resolver) Link() LinkResolver

Link returns LinkResolver 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.

func (*Resolver) User

func (r *Resolver) User() UserResolver

User returns UserResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Audience() AudienceResolver
	Campaign() CampaignResolver
	Entity() EntityResolver
	Link() LinkResolver
	Mutation() MutationResolver
	Query() QueryResolver
	User() UserResolver
}

type UserResolver

type UserResolver interface {
	Campaigns(ctx context.Context, obj *model.User) ([]*model.Campaign, error)
	Links(ctx context.Context, obj *model.User) ([]*model.Link, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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