graph

package
v0.0.0-...-769062f Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2024 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthMiddleware

func AuthMiddleware(authRepo auth.Repository) func(next http.Handler) http.Handler

AuthMiddleware ensures the the correct and valid auth token is provided in this request.

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

Types

type ComplexityRoot

type ComplexityRoot struct {
	AuthenticatedAdmin struct {
		AuthToken func(childComplexity int) int
		ID        func(childComplexity int) int
		Username  func(childComplexity int) int
	}

	Class struct {
		CreatedAt     func(childComplexity int) int
		ID            func(childComplexity int) int
		LastUpdatedAt func(childComplexity int) int
		Name          func(childComplexity int) int
		Report        func(childComplexity int) int
	}

	ClassReport struct {
		GeneratedAt                     func(childComplexity int) int
		HighestStudentScore             func(childComplexity int) int
		HighestStudentScoreAsPercentage func(childComplexity int) int
		LowestStudentScore              func(childComplexity int) int
		LowestStudentScoreAsPercentage  func(childComplexity int) int
		TotalStudents                   func(childComplexity int) int
	}

	CompleteClassInfo struct {
		Class    func(childComplexity int) int
		Students func(childComplexity int) int
	}

	Mutation struct {
		AddStudentRecord   func(childComplexity int, classID string, studentName string, subjectScores []*student.SubjectScore) int
		ComputeClassReport func(childComplexity int, classID string) int
		CreateAdminAccount func(childComplexity int, username string, password string) int
		CreateClass        func(childComplexity int, className string, subjects []*class.Subject) int
		Login              func(childComplexity int, username string, password string) int
	}

	Query struct {
		ClassInfo func(childComplexity int, classID string) int
		Classes   func(childComplexity int, hasReport *bool) int
		Student   func(childComplexity int, classID string, studentID string) int
		Students  func(childComplexity int, classID string) int
	}

	Report struct {
		Class    func(childComplexity int) int
		Subjects func(childComplexity int) int
	}

	Student struct {
		ClassID   func(childComplexity int) int
		CreatedAt func(childComplexity int) int
		ID        func(childComplexity int) int
		Name      func(childComplexity int) int
		Report    func(childComplexity int) int
	}

	StudentClassReport struct {
		Grade                func(childComplexity int) int
		Position             func(childComplexity int) int
		TotalScore           func(childComplexity int) int
		TotalScorePercentage func(childComplexity int) int
	}

	SubjectReport struct {
		Grade    func(childComplexity int) int
		Name     func(childComplexity int) int
		Position func(childComplexity int) int
		Score    func(childComplexity int) int
	}
}

type Config

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

type DirectiveRoot

type DirectiveRoot struct {
}

type MutationResolver

type MutationResolver interface {
	CreateAdminAccount(ctx context.Context, username string, password string) (string, error)
	Login(ctx context.Context, username string, password string) (*model.AuthenticatedAdmin, error)
	CreateClass(ctx context.Context, className string, subjects []*class.Subject) (string, error)
	AddStudentRecord(ctx context.Context, classID string, studentName string, subjectScores []*student.SubjectScore) (string, error)
	ComputeClassReport(ctx context.Context, classID string) (string, error)
}

type QueryResolver

type QueryResolver interface {
	ClassInfo(ctx context.Context, classID string) (*model.CompleteClassInfo, error)
	Classes(ctx context.Context, hasReport *bool) ([]*model.CompleteClassInfo, error)
	Student(ctx context.Context, classID string, studentID string) (*student.Student, error)
	Students(ctx context.Context, classID string) ([]*student.Student, error)
}

type Resolver

type Resolver struct {
	AdminRepository          admin.Repository
	ClassRepository          class.Repository
	StudentRepository        student.Repository
	AuthenticationRepository auth.Repository
	// contains filtered or unexported fields
}

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) Wait

func (r *Resolver) Wait()

Wait waits for all pending asynchronous activities to finish.

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