Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthMiddleware ¶
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.
type ResolverRoot ¶
type ResolverRoot interface { Mutation() MutationResolver Query() QueryResolver }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.