graph

package
v0.0.0-...-7e18203 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2024 License: MIT Imports: 22 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.

Types

type AnswerResolver

type AnswerResolver interface {
	Points(ctx context.Context, obj *models.Answer) (int, error)
}

type ApplicationResolver

type ApplicationResolver interface {
	Score(ctx context.Context, obj *models.Application) (int, error)

	Responses(ctx context.Context, obj *models.Application) ([]*model.QuestionAnswersPair, error)
}

type BuildingResolver

type BuildingResolver interface {
	ZoomLevel(ctx context.Context, obj *models.Building) (int, error)
}

type ComplexityRoot

type ComplexityRoot struct {
	Answer struct {
		ID     func(childComplexity int) int
		Points func(childComplexity int) int
		Title  func(childComplexity int) int
	}

	AnswerValuePair struct {
		Answer func(childComplexity int) int
		Value  func(childComplexity int) int
	}

	Application struct {
		Accepted  func(childComplexity int) int
		Event     func(childComplexity int) int
		Form      func(childComplexity int) int
		Responses func(childComplexity int) int
		Score     func(childComplexity int) int
		Student   func(childComplexity int) int
	}

	AuthPayload struct {
		SessionID func(childComplexity int) int
		User      func(childComplexity int) int
	}

	Building struct {
		City      func(childComplexity int) int
		ID        func(childComplexity int) int
		Latitude  func(childComplexity int) int
		Longitude func(childComplexity int) int
		Name      func(childComplexity int) int
		Number    func(childComplexity int) int
		Rooms     func(childComplexity int) int
		Street    func(childComplexity int) int
		Zip       func(childComplexity int) int
		ZoomLevel func(childComplexity int) int
	}

	Event struct {
		Description      func(childComplexity int) int
		From             func(childComplexity int) int
		ID               func(childComplexity int) int
		NeedsTutors      func(childComplexity int) int
		RegistrationForm func(childComplexity int) int
		RoomsAvailable   func(childComplexity int) int
		Title            func(childComplexity int) int
		To               func(childComplexity int) int
		Topic            func(childComplexity int) int
		TutorsAssigned   func(childComplexity int) int
		TutorsAvailable  func(childComplexity int) int
		Type             func(childComplexity int) int
		Umbrella         func(childComplexity int) int
	}

	EventRegistration struct {
		Event func(childComplexity int) int
		Room  func(childComplexity int) int
	}

	EventTutorRoomPair struct {
		Registrations func(childComplexity int) int
		Room          func(childComplexity int) int
		Tutors        func(childComplexity int) int
	}

	Form struct {
		Description func(childComplexity int) int
		EventID     func(childComplexity int) int
		Questions   func(childComplexity int) int
		Title       func(childComplexity int) int
	}

	Label struct {
		Color func(childComplexity int) int
		Name  func(childComplexity int) int
	}

	Mutation struct {
		AddBuilding                       func(childComplexity int, building models.Building) int
		AddEvent                          func(childComplexity int, event models.Event) int
		AddEventAssignmentForTutor        func(childComplexity int, assignment models.EventToUserAssignment) int
		AddForm                           func(childComplexity int, form models.Form) int
		AddLabel                          func(childComplexity int, label models.Label) int
		AddRoom                           func(childComplexity int, room models.Room) int
		AddRoomAvailabilityForEvent       func(childComplexity int, availability models.RoomToEventAvailability) int
		AddSetting                        func(childComplexity int, setting models.Setting) int
		AddStudent                        func(childComplexity int, student models.User, application model.NewUserToEventApplication) int
		AddStudentApplicationForEvent     func(childComplexity int, application model.NewUserToEventApplication) int
		AddStudentRegistrationForEvent    func(childComplexity int, registration models.UserToEventRegistration) int
		AddTutor                          func(childComplexity int, tutor models.User, availability model.NewUserToEventAvailability) int
		AddTutorAvailabilityForEvent      func(childComplexity int, availability model.NewUserToEventAvailability) int
		AddUser                           func(childComplexity int, user models.User) int
		DeleteBuilding                    func(childComplexity int, id []int) int
		DeleteEvent                       func(childComplexity int, id []int) int
		DeleteEventAssignmentForTutor     func(childComplexity int, assignment models.EventToUserAssignment) int
		DeleteForm                        func(childComplexity int, id []int) int
		DeleteLabel                       func(childComplexity int, name []string) int
		DeleteRoom                        func(childComplexity int, number []string, buildingID int) int
		DeleteRoomAvailabilityForEvent    func(childComplexity int, availability models.RoomToEventAvailability) int
		DeleteSetting                     func(childComplexity int, key []string) int
		DeleteStudentApplicationForEvent  func(childComplexity int, mail string, eventID int) int
		DeleteStudentRegistrationForEvent func(childComplexity int, registration models.UserToEventRegistration) int
		DeleteTutorAvailabilityForEvent   func(childComplexity int, availability model.NewUserToEventAvailability) int
		DeleteUser                        func(childComplexity int, mail []string) int
		UpdateBuilding                    func(childComplexity int, id int, building models.Building) int
		UpdateEvent                       func(childComplexity int, id int, event models.Event) int
		UpdateForm                        func(childComplexity int, id int, form models.Form) int
		UpdateLabel                       func(childComplexity int, label models.Label) int
		UpdateRoom                        func(childComplexity int, room models.Room) int
		UpdateRoomForTutorial             func(childComplexity int, newRoomNumber string, newBuildingID int, eventID int, oldRoomNumber string, oldBuildingID int) int
		UpdateSetting                     func(childComplexity int, setting models.Setting) int
		UpdateUser                        func(childComplexity int, user models.User) int
	}

	Query struct {
		Applications  func(childComplexity int, eventID *int, studentMail []string) int
		Buildings     func(childComplexity int, id []int) int
		Events        func(childComplexity int, id []int, umbrellaID []int, topic []string, typeArg []string, needsTutors *bool, onlyFuture *bool, userMail []string) int
		Forms         func(childComplexity int, id []int) int
		Labels        func(childComplexity int, name []string, kind []model.LabelKind, umbrellaID []int) int
		Login         func(childComplexity int, credentials *model.EmailPassword, sessionID *string) int
		Registrations func(childComplexity int, studentMail string) int
		Rooms         func(childComplexity int, number []string, buildingID int) int
		Settings      func(childComplexity int, key []string, typeArg []model.ScalarType) int
		Umbrellas     func(childComplexity int, id []int, onlyFuture *bool) int
		Users         func(childComplexity int, mail []string, sessionID []string) int
	}

	Question struct {
		Answers  func(childComplexity int) int
		ID       func(childComplexity int) int
		Required func(childComplexity int) int
		Title    func(childComplexity int) int
		Type     func(childComplexity int) int
	}

	QuestionAnswersPair struct {
		Answers  func(childComplexity int) int
		Question func(childComplexity int) int
	}

	Room struct {
		Building func(childComplexity int) int
		Capacity func(childComplexity int) int
		Floor    func(childComplexity int) int
		Name     func(childComplexity int) int
		Number   func(childComplexity int) int
	}

	Setting struct {
		Key   func(childComplexity int) int
		Type  func(childComplexity int) int
		Value func(childComplexity int) int
	}

	User struct {
		Applications     func(childComplexity int) int
		Confirmed        func(childComplexity int) int
		EventsAssigned   func(childComplexity int) int
		EventsAvailable  func(childComplexity int) int
		EventsRegistered func(childComplexity int) int
		Fn               func(childComplexity int) int
		Mail             func(childComplexity int) int
		Sn               func(childComplexity int) int
	}
}

type Config

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

type DirectiveRoot

type DirectiveRoot struct {
}

type EventResolver

type EventResolver interface {
	TutorsAssigned(ctx context.Context, obj *models.Event) ([]*model.EventTutorRoomPair, error)

	From(ctx context.Context, obj *models.Event) (string, error)
	To(ctx context.Context, obj *models.Event) (string, error)
}

type MutationResolver

type MutationResolver interface {
	AddUser(ctx context.Context, user models.User) (*models.User, error)
	UpdateUser(ctx context.Context, user models.User) (*models.User, error)
	DeleteUser(ctx context.Context, mail []string) (int, error)
	AddTutor(ctx context.Context, tutor models.User, availability model.NewUserToEventAvailability) (*models.User, error)
	AddStudent(ctx context.Context, student models.User, application model.NewUserToEventApplication) (*models.User, error)
	AddEvent(ctx context.Context, event models.Event) (*models.Event, error)
	UpdateEvent(ctx context.Context, id int, event models.Event) (*models.Event, error)
	DeleteEvent(ctx context.Context, id []int) (int, error)
	AddBuilding(ctx context.Context, building models.Building) (*models.Building, error)
	UpdateBuilding(ctx context.Context, id int, building models.Building) (*models.Building, error)
	DeleteBuilding(ctx context.Context, id []int) (int, error)
	AddRoom(ctx context.Context, room models.Room) (*models.Room, error)
	UpdateRoom(ctx context.Context, room models.Room) (*models.Room, error)
	DeleteRoom(ctx context.Context, number []string, buildingID int) (int, error)
	AddLabel(ctx context.Context, label models.Label) (*models.Label, error)
	UpdateLabel(ctx context.Context, label models.Label) (*models.Label, error)
	DeleteLabel(ctx context.Context, name []string) (int, error)
	AddSetting(ctx context.Context, setting models.Setting) (*models.Setting, error)
	UpdateSetting(ctx context.Context, setting models.Setting) (*models.Setting, error)
	DeleteSetting(ctx context.Context, key []string) (int, error)
	AddForm(ctx context.Context, form models.Form) (*models.Form, error)
	UpdateForm(ctx context.Context, id int, form models.Form) (*models.Form, error)
	DeleteForm(ctx context.Context, id []int) (int, error)
	AddEventAssignmentForTutor(ctx context.Context, assignment models.EventToUserAssignment) (*models.Event, error)
	DeleteEventAssignmentForTutor(ctx context.Context, assignment models.EventToUserAssignment) (*models.Event, error)
	AddTutorAvailabilityForEvent(ctx context.Context, availability model.NewUserToEventAvailability) (*models.User, error)
	DeleteTutorAvailabilityForEvent(ctx context.Context, availability model.NewUserToEventAvailability) (*models.User, error)
	AddRoomAvailabilityForEvent(ctx context.Context, availability models.RoomToEventAvailability) (*models.Room, error)
	UpdateRoomForTutorial(ctx context.Context, newRoomNumber string, newBuildingID int, eventID int, oldRoomNumber string, oldBuildingID int) (*models.Event, error)
	DeleteRoomAvailabilityForEvent(ctx context.Context, availability models.RoomToEventAvailability) (*models.Room, error)
	AddStudentRegistrationForEvent(ctx context.Context, registration models.UserToEventRegistration) (*models.UserToEventRegistration, error)
	DeleteStudentRegistrationForEvent(ctx context.Context, registration models.UserToEventRegistration) (*models.User, error)
	AddStudentApplicationForEvent(ctx context.Context, application model.NewUserToEventApplication) (*models.User, error)
	DeleteStudentApplicationForEvent(ctx context.Context, mail string, eventID int) (*models.User, error)
}

type NewAnswerResolver

type NewAnswerResolver interface {
	Points(ctx context.Context, obj *models.Answer, data int) error
}

type NewBuildingResolver

type NewBuildingResolver interface {
	ZoomLevel(ctx context.Context, obj *models.Building, data *int) error
}

type NewEventResolver

type NewEventResolver interface {
	From(ctx context.Context, obj *models.Event, data string) error
	To(ctx context.Context, obj *models.Event, data string) error
}

type NewLabelResolver

type NewLabelResolver interface {
	Kind(ctx context.Context, obj *models.Label, data model.LabelKind) error
}

type NewQuestionResolver

type NewQuestionResolver interface {
	Type(ctx context.Context, obj *models.Question, data model.QuestionType) error
}

type NewRoomResolver

type NewRoomResolver interface {
	Capacity(ctx context.Context, obj *models.Room, data int) error
	Floor(ctx context.Context, obj *models.Room, data *int) error
}

type NewSettingResolver

type NewSettingResolver interface {
	Type(ctx context.Context, obj *models.Setting, data *model.ScalarType) error
}

type QueryResolver

type QueryResolver interface {
	Events(ctx context.Context, id []int, umbrellaID []int, topic []string, typeArg []string, needsTutors *bool, onlyFuture *bool, userMail []string) ([]*models.Event, error)
	Umbrellas(ctx context.Context, id []int, onlyFuture *bool) ([]*models.Event, error)
	Buildings(ctx context.Context, id []int) ([]*models.Building, error)
	Rooms(ctx context.Context, number []string, buildingID int) ([]*models.Room, error)
	Labels(ctx context.Context, name []string, kind []model.LabelKind, umbrellaID []int) ([]*models.Label, error)
	Settings(ctx context.Context, key []string, typeArg []model.ScalarType) ([]*models.Setting, error)
	Users(ctx context.Context, mail []string, sessionID []string) ([]*models.User, error)
	Forms(ctx context.Context, id []int) ([]*models.Form, error)
	Applications(ctx context.Context, eventID *int, studentMail []string) ([]*models.Application, error)
	Registrations(ctx context.Context, studentMail string) ([]*models.UserToEventRegistration, error)
	Login(ctx context.Context, credentials *model.EmailPassword, sessionID *string) (*model.AuthPayload, error)
}

type QuestionResolver

type QuestionResolver interface {
	Type(ctx context.Context, obj *models.Question) (model.QuestionType, error)
}

type Resolver

type Resolver struct {
	DB         *bun.DB
	MailConfig *email.Config
	Settings   map[string]string
}

func (*Resolver) Answer

func (r *Resolver) Answer() AnswerResolver

Answer returns AnswerResolver implementation.

func (*Resolver) Application

func (r *Resolver) Application() ApplicationResolver

Application returns ApplicationResolver implementation.

func (*Resolver) Building

func (r *Resolver) Building() BuildingResolver

Building returns BuildingResolver implementation.

func (*Resolver) Event

func (r *Resolver) Event() EventResolver

Event returns EventResolver implementation.

func (*Resolver) FetchSettings

func (r *Resolver) FetchSettings(ctx context.Context) error

func (*Resolver) Mutation

func (r *Resolver) Mutation() MutationResolver

Mutation returns MutationResolver implementation.

func (*Resolver) NewAnswer

func (r *Resolver) NewAnswer() NewAnswerResolver

NewAnswer returns NewAnswerResolver implementation.

func (*Resolver) NewBuilding

func (r *Resolver) NewBuilding() NewBuildingResolver

NewBuilding returns NewBuildingResolver implementation.

func (*Resolver) NewEvent

func (r *Resolver) NewEvent() NewEventResolver

NewEvent returns NewEventResolver implementation.

func (*Resolver) NewLabel

func (r *Resolver) NewLabel() NewLabelResolver

NewLabel returns NewLabelResolver implementation.

func (*Resolver) NewQuestion

func (r *Resolver) NewQuestion() NewQuestionResolver

NewQuestion returns NewQuestionResolver implementation.

func (*Resolver) NewRoom

func (r *Resolver) NewRoom() NewRoomResolver

NewRoom returns NewRoomResolver implementation.

func (*Resolver) NewSetting

func (r *Resolver) NewSetting() NewSettingResolver

NewSetting returns NewSettingResolver implementation.

func (*Resolver) Query

func (r *Resolver) Query() QueryResolver

Query returns QueryResolver implementation.

func (*Resolver) Question

func (r *Resolver) Question() QuestionResolver

Question returns QuestionResolver implementation.

func (*Resolver) Room

func (r *Resolver) Room() RoomResolver

Room returns RoomResolver implementation.

func (*Resolver) Setting

func (r *Resolver) Setting() SettingResolver

Setting returns SettingResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Answer() AnswerResolver
	Application() ApplicationResolver
	Building() BuildingResolver
	Event() EventResolver
	Mutation() MutationResolver
	Query() QueryResolver
	Question() QuestionResolver
	Room() RoomResolver
	Setting() SettingResolver
	NewAnswer() NewAnswerResolver
	NewBuilding() NewBuildingResolver
	NewEvent() NewEventResolver
	NewLabel() NewLabelResolver
	NewQuestion() NewQuestionResolver
	NewRoom() NewRoomResolver
	NewSetting() NewSettingResolver
}

type RoomResolver

type RoomResolver interface {
	Capacity(ctx context.Context, obj *models.Room) (*int, error)
	Floor(ctx context.Context, obj *models.Room) (*int, error)
}

type SettingResolver

type SettingResolver interface {
	Type(ctx context.Context, obj *models.Setting) (model.ScalarType, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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