memberships

package module
v0.0.0-...-98b08d7 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2020 License: MIT Imports: 17 Imported by: 2

README

memberships

Membership service for managing role access with GraphQL API

Documentation

Index

Constants

View Source
const (
	DBContextKey key    = iota
	SchemaDSL    string = `` /* 1286-byte string literal not displayed */

)

Variables

This section is empty.

Functions

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

Types

type ComplexityRoot

type ComplexityRoot struct {
	Member struct {
		Email       func(childComplexity int) int
		FamilyName  func(childComplexity int) int
		GivenName   func(childComplexity int) int
		ID          func(childComplexity int) int
		Memberships func(childComplexity int) int
		MiddleName  func(childComplexity int) int
	}

	Membership struct {
		Entity   func(childComplexity int) int
		EntityID func(childComplexity int) int
		ID       func(childComplexity int) int
		Member   func(childComplexity int) int
		Role     func(childComplexity int) int
	}

	Mutation struct {
		CreateMembership func(childComplexity int, input MembershipInput) int
		DeleteMembership func(childComplexity int, id string) int
		InviteMember     func(childComplexity int, input *MembershipInvitationInput) int
	}

	Query struct {
		Member      func(childComplexity int, id string) int
		Members     func(childComplexity int, q *string) int
		Membership  func(childComplexity int, id string) int
		Memberships func(childComplexity int, memberID *string, entityID *string, entity *string, role *string) int
		// contains filtered or unexported fields
	}
	// contains filtered or unexported fields
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type DirectiveRoot

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

	External func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error)

	Key func(ctx context.Context, obj interface{}, next graphql.Resolver, fields string) (res interface{}, err error)

	Provides func(ctx context.Context, obj interface{}, next graphql.Resolver, fields string) (res interface{}, err error)

	Requires func(ctx context.Context, obj interface{}, next graphql.Resolver, fields string) (res interface{}, err error)
}

type Member

type Member struct {
	ID                  string       `json:"id" gorm:"primary_key"`
	Name                string       `json:"name"`
	Email               string       `json:"email"`
	GivenName           string       `json:"given_name"`
	FamilyName          string       `json:"family_name"`
	MiddleName          string       `json:"middle_name"`
	MembershipsEntities []Membership `json:"memberships" gorm:"foreignkey:MemberEntityID"`
}

func (*Member) Is_Entity

func (m *Member) Is_Entity()

func (*Member) Memberships

func (m *Member) Memberships(ctx context.Context) (memberships []Membership)

type MemberProviderFetchResponse

type MemberProviderFetchResponse struct {
	Result *Member
}

type MemberProviderInviteResponse

type MemberProviderInviteResponse struct {
	Result Member
}

type Membership

type Membership struct {
	ID             string  `json:"id" gorm:"primary_key"`
	EntityID       string  `json:"entityID" gorm:"unique_index:memberentity"`
	Entity         *string `json:"entity"`
	Role           *string `json:"role"`
	MemberEntity   Member  `json:"member"`
	MemberEntityID string  `gorm:"unique_index:memberentity"`
}

func (*Membership) Is_Entity

func (m *Membership) Is_Entity()

func (*Membership) Member

func (m *Membership) Member(ctx context.Context) (member Member)

type MembershipInput

type MembershipInput struct {
	MemberID string  `json:"memberID"`
	EntityID string  `json:"entityID"`
	Entity   *string `json:"entity"`
	Role     *string `json:"role"`
}

type MembershipInvitationInput

type MembershipInvitationInput struct {
	Email    string  `json:"email"`
	EntityID string  `json:"entityID"`
	Entity   *string `json:"entity"`
	Role     *string `json:"role"`
}

type MutationResolver

type MutationResolver interface {
	InviteMember(ctx context.Context, input *MembershipInvitationInput) (*Membership, error)
	CreateMembership(ctx context.Context, input MembershipInput) (*Membership, error)
	DeleteMembership(ctx context.Context, id string) (*Membership, error)
}

type QueryResolver

type QueryResolver interface {
	Member(ctx context.Context, id string) (*Member, error)
	Members(ctx context.Context, q *string) ([]*Member, error)
	Membership(ctx context.Context, id string) (*Membership, error)
	Memberships(ctx context.Context, memberID *string, entityID *string, entity *string, role *string) ([]*Membership, error)
	// contains filtered or unexported methods
}

type Resolver

type Resolver struct {
	DB *database.DB
}

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

type ResolverRoot

type ResolverRoot interface {
	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