qf

package
v0.0.0-...-4a58531 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InfoRepo          = "info"
	AssignmentsRepo   = "assignments"
	TestsRepo         = "tests"
	StudentRepoSuffix = "-labs"
)

Default repository names.

View Source
const (
	TimeLayout = "2006-01-02T15:04:05"
)

Variables

View Source
var (
	SubmissionRequest_SubmissionType_name = map[int32]string{
		0: "ALL",
		1: "USER",
		2: "GROUP",
	}
	SubmissionRequest_SubmissionType_value = map[string]int32{
		"ALL":   0,
		"USER":  1,
		"GROUP": 2,
	}
)

Enum value maps for SubmissionRequest_SubmissionType.

View Source
var (
	Group_GroupStatus_name = map[int32]string{
		0: "PENDING",
		1: "APPROVED",
	}
	Group_GroupStatus_value = map[string]int32{
		"PENDING":  0,
		"APPROVED": 1,
	}
)

Enum value maps for Group_GroupStatus.

View Source
var (
	Repository_Type_name = map[int32]string{
		0: "NONE",
		1: "INFO",
		2: "ASSIGNMENTS",
		3: "TESTS",
		4: "USER",
		5: "GROUP",
	}
	Repository_Type_value = map[string]int32{
		"NONE":        0,
		"INFO":        1,
		"ASSIGNMENTS": 2,
		"TESTS":       3,
		"USER":        4,
		"GROUP":       5,
	}
)

Enum value maps for Repository_Type.

View Source
var (
	Enrollment_UserStatus_name = map[int32]string{
		0: "NONE",
		1: "PENDING",
		2: "STUDENT",
		3: "TEACHER",
	}
	Enrollment_UserStatus_value = map[string]int32{
		"NONE":    0,
		"PENDING": 1,
		"STUDENT": 2,
		"TEACHER": 3,
	}
)

Enum value maps for Enrollment_UserStatus.

View Source
var (
	Enrollment_DisplayState_name = map[int32]string{
		0: "UNSET",
		1: "HIDDEN",
		2: "VISIBLE",
		3: "FAVORITE",
	}
	Enrollment_DisplayState_value = map[string]int32{
		"UNSET":    0,
		"HIDDEN":   1,
		"VISIBLE":  2,
		"FAVORITE": 3,
	}
)

Enum value maps for Enrollment_DisplayState.

View Source
var (
	PullRequest_Stage_name = map[int32]string{
		0: "NONE",
		1: "DRAFT",
		2: "REVIEW",
		3: "APPROVED",
	}
	PullRequest_Stage_value = map[string]int32{
		"NONE":     0,
		"DRAFT":    1,
		"REVIEW":   2,
		"APPROVED": 3,
	}
)

Enum value maps for PullRequest_Stage.

View Source
var (
	Submission_Status_name = map[int32]string{
		0: "NONE",
		1: "APPROVED",
		2: "REJECTED",
		3: "REVISION",
	}
	Submission_Status_value = map[string]int32{
		"NONE":     0,
		"APPROVED": 1,
		"REJECTED": 2,
		"REVISION": 3,
	}
)

Enum value maps for Submission_Status.

View Source
var (
	GradingCriterion_Grade_name = map[int32]string{
		0: "NONE",
		1: "FAILED",
		2: "PASSED",
	}
	GradingCriterion_Grade_value = map[string]int32{
		"NONE":   0,
		"FAILED": 1,
		"PASSED": 2,
	}
)

Enum value maps for GradingCriterion_Grade.

View Source
var File_qf_quickfeed_proto protoreflect.FileDescriptor
View Source
var File_qf_requests_proto protoreflect.FileDescriptor
View Source
var File_qf_types_proto protoreflect.FileDescriptor

Functions

func StudentRepoName

func StudentRepoName(userName string) string

StudentRepoName returns the name of the given student's repository.

Types

type Assignment

type Assignment struct {
	ID                uint64                 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseID          uint64                 `protobuf:"varint,2,opt,name=CourseID,proto3" json:"CourseID,omitempty"` // foreign key
	Name              string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Deadline          *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deadline,proto3" json:"deadline,omitempty" gorm:"serializer:timestamp;type:datetime"`
	AutoApprove       bool                   `protobuf:"varint,5,opt,name=autoApprove,proto3" json:"autoApprove,omitempty"`
	Order             uint32                 `protobuf:"varint,6,opt,name=order,proto3" json:"order,omitempty"`
	IsGroupLab        bool                   `protobuf:"varint,7,opt,name=isGroupLab,proto3" json:"isGroupLab,omitempty"`
	ScoreLimit        uint32                 `protobuf:"varint,8,opt,name=scoreLimit,proto3" json:"scoreLimit,omitempty"`               // minimal score limit for auto approval
	Reviewers         uint32                 `protobuf:"varint,9,opt,name=reviewers,proto3" json:"reviewers,omitempty"`                 // number of reviewers that will review submissions for this assignment
	ContainerTimeout  uint32                 `protobuf:"varint,10,opt,name=containerTimeout,proto3" json:"containerTimeout,omitempty"`  // container timeout for this assignment
	Submissions       []*Submission          `protobuf:"bytes,11,rep,name=submissions,proto3" json:"submissions,omitempty"`             // submissions produced for this assignment
	Tasks             []*Task                `protobuf:"bytes,12,rep,name=tasks,proto3" json:"tasks,omitempty"`                         // tasks associated with this assignment
	GradingBenchmarks []*GradingBenchmark    `protobuf:"bytes,13,rep,name=gradingBenchmarks,proto3" json:"gradingBenchmarks,omitempty"` // grading benchmarks for this assignment
	// contains filtered or unexported fields
}

func (*Assignment) CloneWithoutSubmissions

func (a *Assignment) CloneWithoutSubmissions() *Assignment

CloneWithoutSubmissions returns a deep copy of the assignment without submissions.

func (*Assignment) Descriptor deprecated

func (*Assignment) Descriptor() ([]byte, []int)

Deprecated: Use Assignment.ProtoReflect.Descriptor instead.

func (*Assignment) GetAutoApprove

func (x *Assignment) GetAutoApprove() bool

func (*Assignment) GetContainerTimeout

func (x *Assignment) GetContainerTimeout() uint32

func (*Assignment) GetCourseID

func (x *Assignment) GetCourseID() uint64

func (*Assignment) GetDeadline

func (x *Assignment) GetDeadline() *timestamppb.Timestamp

func (*Assignment) GetGradingBenchmarks

func (x *Assignment) GetGradingBenchmarks() []*GradingBenchmark

func (*Assignment) GetID

func (x *Assignment) GetID() uint64

func (*Assignment) GetIsGroupLab

func (x *Assignment) GetIsGroupLab() bool

func (*Assignment) GetName

func (x *Assignment) GetName() string

func (*Assignment) GetOrder

func (x *Assignment) GetOrder() uint32

func (*Assignment) GetReviewers

func (x *Assignment) GetReviewers() uint32

func (*Assignment) GetScoreLimit

func (x *Assignment) GetScoreLimit() uint32

func (*Assignment) GetSubmissions

func (x *Assignment) GetSubmissions() []*Submission

func (*Assignment) GetTasks

func (x *Assignment) GetTasks() []*Task

func (*Assignment) GradedManually

func (a *Assignment) GradedManually() bool

GradedManually returns true if the assignment will be graded manually.

func (*Assignment) IsApproved

func (a *Assignment) IsApproved(latest *Submission, score uint32) Submission_Status

IsApproved returns an approved submission status if this assignment is already approved for the latest submission, or if the score of the latest submission is sufficient to autoapprove the assignment.

func (*Assignment) ProtoMessage

func (*Assignment) ProtoMessage()

func (*Assignment) ProtoReflect

func (x *Assignment) ProtoReflect() protoreflect.Message

func (*Assignment) Reset

func (x *Assignment) Reset()

func (*Assignment) SinceDeadline

func (a *Assignment) SinceDeadline(now time.Time) time.Duration

SinceDeadline returns the duration since the deadline. A positive duration means the deadline has passed, whereas a negative duration means the deadline has not yet passed.

func (*Assignment) String

func (x *Assignment) String() string

func (*Assignment) WithTimeout

func (a *Assignment) WithTimeout(timeout time.Duration) (context.Context, context.CancelFunc)

WithTimeout returns a context with an execution timeout set to the assignment's specified container timeout. If the assignment has no container timeout, the provided timeout value is used instead.

type Assignments

type Assignments struct {
	Assignments []*Assignment `protobuf:"bytes,1,rep,name=assignments,proto3" json:"assignments,omitempty"`
	// contains filtered or unexported fields
}

func (*Assignments) Descriptor deprecated

func (*Assignments) Descriptor() ([]byte, []int)

Deprecated: Use Assignments.ProtoReflect.Descriptor instead.

func (*Assignments) GetAssignments

func (x *Assignments) GetAssignments() []*Assignment

func (*Assignments) ProtoMessage

func (*Assignments) ProtoMessage()

func (*Assignments) ProtoReflect

func (x *Assignments) ProtoReflect() protoreflect.Message

func (*Assignments) Reset

func (x *Assignments) Reset()

func (*Assignments) String

func (x *Assignments) String() string

type Benchmarks

type Benchmarks struct {
	Benchmarks []*GradingBenchmark `protobuf:"bytes,1,rep,name=benchmarks,proto3" json:"benchmarks,omitempty"`
	// contains filtered or unexported fields
}

func (*Benchmarks) Descriptor deprecated

func (*Benchmarks) Descriptor() ([]byte, []int)

Deprecated: Use Benchmarks.ProtoReflect.Descriptor instead.

func (*Benchmarks) GetBenchmarks

func (x *Benchmarks) GetBenchmarks() []*GradingBenchmark

func (*Benchmarks) ProtoMessage

func (*Benchmarks) ProtoMessage()

func (*Benchmarks) ProtoReflect

func (x *Benchmarks) ProtoReflect() protoreflect.Message

func (*Benchmarks) Reset

func (x *Benchmarks) Reset()

func (*Benchmarks) String

func (x *Benchmarks) String() string

type Course

type Course struct {
	ID                  uint64                `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseCreatorID     uint64                `protobuf:"varint,2,opt,name=courseCreatorID,proto3" json:"courseCreatorID,omitempty"`
	Name                string                `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Code                string                `protobuf:"bytes,4,opt,name=code,proto3" json:"code,omitempty" gorm:"uniqueIndex:course"`
	Year                uint32                `protobuf:"varint,5,opt,name=year,proto3" json:"year,omitempty" gorm:"uniqueIndex:course"`
	Tag                 string                `protobuf:"bytes,6,opt,name=tag,proto3" json:"tag,omitempty"`
	ScmOrganizationID   uint64                `protobuf:"varint,8,opt,name=ScmOrganizationID,proto3" json:"ScmOrganizationID,omitempty"`
	ScmOrganizationName string                `protobuf:"bytes,9,opt,name=ScmOrganizationName,proto3" json:"ScmOrganizationName,omitempty"` // The organization's SCM name, e.g., dat520-2020.
	SlipDays            uint32                `protobuf:"varint,10,opt,name=slipDays,proto3" json:"slipDays,omitempty"`
	DockerfileDigest    string                `protobuf:"bytes,11,opt,name=DockerfileDigest,proto3" json:"DockerfileDigest,omitempty"` // Digest of the dockerfile used to build the course's docker image.
	Enrolled            Enrollment_UserStatus `protobuf:"varint,12,opt,name=enrolled,proto3,enum=qf.Enrollment_UserStatus" json:"enrolled,omitempty" gorm:"-"`
	Enrollments         []*Enrollment         `protobuf:"bytes,13,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	Assignments         []*Assignment         `protobuf:"bytes,14,rep,name=assignments,proto3" json:"assignments,omitempty"`
	Groups              []*Group              `protobuf:"bytes,15,rep,name=groups,proto3" json:"groups,omitempty"`
	// contains filtered or unexported fields
}

func (*Course) CloneDir

func (course *Course) CloneDir() string

func (*Course) Descriptor deprecated

func (*Course) Descriptor() ([]byte, []int)

Deprecated: Use Course.ProtoReflect.Descriptor instead.

func (*Course) DockerImage

func (course *Course) DockerImage() string

func (*Course) GetAssignments

func (x *Course) GetAssignments() []*Assignment

func (*Course) GetCode

func (x *Course) GetCode() string

func (*Course) GetCourseCreatorID

func (x *Course) GetCourseCreatorID() uint64

func (*Course) GetDockerfile

func (course *Course) GetDockerfile() string

func (*Course) GetDockerfileDigest

func (x *Course) GetDockerfileDigest() string

func (*Course) GetEnrolled

func (x *Course) GetEnrolled() Enrollment_UserStatus

func (*Course) GetEnrollments

func (x *Course) GetEnrollments() []*Enrollment

func (*Course) GetGroups

func (x *Course) GetGroups() []*Group

func (*Course) GetID

func (x *Course) GetID() uint64

func (*Course) GetName

func (x *Course) GetName() string

func (*Course) GetScmOrganizationID

func (x *Course) GetScmOrganizationID() uint64

func (*Course) GetScmOrganizationName

func (x *Course) GetScmOrganizationName() string

func (*Course) GetSlipDays

func (x *Course) GetSlipDays() uint32

func (*Course) GetTag

func (x *Course) GetTag() string

func (*Course) GetYear

func (x *Course) GetYear() uint32

func (*Course) IDFor

func (r *Course) IDFor(_ string) uint64

IDFor returns course ID.

func (*Course) IsValid

func (c *Course) IsValid() bool

IsValid checks required fields of a course request

func (*Course) JobName

func (course *Course) JobName() string

func (*Course) ProtoMessage

func (*Course) ProtoMessage()

func (*Course) ProtoReflect

func (x *Course) ProtoReflect() protoreflect.Message

func (*Course) RemoveRemoteID

func (c *Course) RemoveRemoteID()

RemoveRemoteID removes remote identities for all course groups and enrollments

func (*Course) Reset

func (x *Course) Reset()

func (*Course) String

func (x *Course) String() string

func (*Course) TeacherEnrollments

func (course *Course) TeacherEnrollments() []*Enrollment

func (*Course) UpdateDockerfile

func (course *Course) UpdateDockerfile(dockerfile string) bool

UpdateDockerfile updates the course's dockerfile cache and returns true if the given dockerfile was different from the course's previous Dockerfile. This method will also update the course's DigestDockerfile field so that changes to the dockerfile is reflected in the database.

func (*Course) UserIDs

func (*Course) UserIDs() []uint64

Dummy implementation of the interceptor.userIDs interface. Marks this message type to be evaluated for token refresh.

type CourseRequest

type CourseRequest struct {
	CourseID uint64 `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

func (*CourseRequest) Descriptor deprecated

func (*CourseRequest) Descriptor() ([]byte, []int)

Deprecated: Use CourseRequest.ProtoReflect.Descriptor instead.

func (*CourseRequest) GetCourseID

func (x *CourseRequest) GetCourseID() uint64

func (*CourseRequest) IDFor

func (r *CourseRequest) IDFor(_ string) uint64

IDFor returns course ID.

func (*CourseRequest) IsValid

func (req *CourseRequest) IsValid() bool

IsValid ensures that course ID is set

func (*CourseRequest) ProtoMessage

func (*CourseRequest) ProtoMessage()

func (*CourseRequest) ProtoReflect

func (x *CourseRequest) ProtoReflect() protoreflect.Message

func (*CourseRequest) Reset

func (x *CourseRequest) Reset()

func (*CourseRequest) String

func (x *CourseRequest) String() string

type CourseSubmissions

type CourseSubmissions struct {
	Submissions map[uint64]*Submissions `` /* 164-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*CourseSubmissions) Descriptor deprecated

func (*CourseSubmissions) Descriptor() ([]byte, []int)

Deprecated: Use CourseSubmissions.ProtoReflect.Descriptor instead.

func (*CourseSubmissions) For

func (cs *CourseSubmissions) For(id uint64) []*Submission

func (*CourseSubmissions) GetSubmissions

func (x *CourseSubmissions) GetSubmissions() map[uint64]*Submissions

func (*CourseSubmissions) ProtoMessage

func (*CourseSubmissions) ProtoMessage()

func (*CourseSubmissions) ProtoReflect

func (x *CourseSubmissions) ProtoReflect() protoreflect.Message

func (*CourseSubmissions) Reset

func (x *CourseSubmissions) Reset()

func (*CourseSubmissions) String

func (x *CourseSubmissions) String() string

type Courses

type Courses struct {
	Courses []*Course `protobuf:"bytes,1,rep,name=courses,proto3" json:"courses,omitempty"`
	// contains filtered or unexported fields
}

func (*Courses) Descriptor deprecated

func (*Courses) Descriptor() ([]byte, []int)

Deprecated: Use Courses.ProtoReflect.Descriptor instead.

func (*Courses) GetCourses

func (x *Courses) GetCourses() []*Course

func (*Courses) ProtoMessage

func (*Courses) ProtoMessage()

func (*Courses) ProtoReflect

func (x *Courses) ProtoReflect() protoreflect.Message

func (*Courses) RemoveRemoteID

func (c *Courses) RemoveRemoteID()

RemoveRemoteID removes remote identities for groups and enrollments in every course

func (*Courses) Reset

func (x *Courses) Reset()

func (*Courses) String

func (x *Courses) String() string

type Enrollment

type Enrollment struct {
	ID                uint64                  `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseID          uint64                  `protobuf:"varint,2,opt,name=courseID,proto3" json:"courseID,omitempty" gorm:"uniqueIndex:enrollment"`
	UserID            uint64                  `protobuf:"varint,3,opt,name=userID,proto3" json:"userID,omitempty" gorm:"uniqueIndex:enrollment"`
	GroupID           uint64                  `protobuf:"varint,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	User              *User                   `protobuf:"bytes,5,opt,name=user,proto3" json:"user,omitempty"`
	Course            *Course                 `protobuf:"bytes,6,opt,name=course,proto3" json:"course,omitempty"`
	Group             *Group                  `protobuf:"bytes,7,opt,name=group,proto3" json:"group,omitempty"`
	Status            Enrollment_UserStatus   `protobuf:"varint,8,opt,name=status,proto3,enum=qf.Enrollment_UserStatus" json:"status,omitempty"`
	State             Enrollment_DisplayState `protobuf:"varint,9,opt,name=state,proto3,enum=qf.Enrollment_DisplayState" json:"state,omitempty"`
	SlipDaysRemaining uint32                  `protobuf:"varint,10,opt,name=slipDaysRemaining,proto3" json:"slipDaysRemaining,omitempty" gorm:"-"`
	LastActivityDate  *timestamppb.Timestamp  `` /* 128-byte string literal not displayed */
	TotalApproved     uint64                  `protobuf:"varint,12,opt,name=totalApproved,proto3" json:"totalApproved,omitempty"`
	UsedSlipDays      []*UsedSlipDays         `protobuf:"bytes,13,rep,name=usedSlipDays,proto3" json:"usedSlipDays,omitempty"`
	// contains filtered or unexported fields
}

func (*Enrollment) Descriptor deprecated

func (*Enrollment) Descriptor() ([]byte, []int)

Deprecated: Use Enrollment.ProtoReflect.Descriptor instead.

func (*Enrollment) GetCourse

func (x *Enrollment) GetCourse() *Course

func (*Enrollment) GetCourseID

func (x *Enrollment) GetCourseID() uint64

func (*Enrollment) GetGroup

func (x *Enrollment) GetGroup() *Group

func (*Enrollment) GetGroupID

func (x *Enrollment) GetGroupID() uint64

func (*Enrollment) GetID

func (x *Enrollment) GetID() uint64

func (*Enrollment) GetLastActivityDate

func (x *Enrollment) GetLastActivityDate() *timestamppb.Timestamp

func (*Enrollment) GetSlipDaysRemaining

func (x *Enrollment) GetSlipDaysRemaining() uint32

func (*Enrollment) GetState

func (x *Enrollment) GetState() Enrollment_DisplayState

func (*Enrollment) GetStatus

func (x *Enrollment) GetStatus() Enrollment_UserStatus

func (*Enrollment) GetTotalApproved

func (x *Enrollment) GetTotalApproved() uint64

func (*Enrollment) GetUsedSlipDays

func (x *Enrollment) GetUsedSlipDays() []*UsedSlipDays

func (*Enrollment) GetUser

func (x *Enrollment) GetUser() *User

func (*Enrollment) GetUserID

func (x *Enrollment) GetUserID() uint64

func (*Enrollment) IDFor

func (r *Enrollment) IDFor(_ string) uint64

IDFor returns user ID.

func (*Enrollment) IsAdmin

func (m *Enrollment) IsAdmin() bool

IsAdmin returns true if the enrolled user is an admin.

func (*Enrollment) IsNone

func (m *Enrollment) IsNone() bool

func (*Enrollment) IsPending

func (m *Enrollment) IsPending() bool

func (*Enrollment) IsStudent

func (m *Enrollment) IsStudent() bool

func (*Enrollment) IsTeacher

func (m *Enrollment) IsTeacher() bool

func (*Enrollment) IsValid

func (req *Enrollment) IsValid() bool

IsValid checks required fields of an enrollment request.

func (*Enrollment) Name

func (m *Enrollment) Name() string

Name returns the name of the enrolled user.

func (*Enrollment) ProtoMessage

func (*Enrollment) ProtoMessage()

func (*Enrollment) ProtoReflect

func (x *Enrollment) ProtoReflect() protoreflect.Message

func (*Enrollment) RemainingSlipDays

func (m *Enrollment) RemainingSlipDays(c *Course) int32

RemainingSlipDays returns the remaining number of slip days for this user/course enrollment. Note that if the returned amount is negative, the user has used up all slip days.

func (*Enrollment) RemoveRemoteID

func (e *Enrollment) RemoveRemoteID()

RemoveRemoteID removes remote identity of the enrolled user

func (*Enrollment) Reset

func (x *Enrollment) Reset()

func (*Enrollment) SetSlipDays

func (m *Enrollment) SetSlipDays(c *Course)

SetSlipDays updates SlipDaysRemaining field of an enrollment.

func (*Enrollment) String

func (x *Enrollment) String() string

func (*Enrollment) UpdateSlipDays

func (m *Enrollment) UpdateSlipDays(assignment *Assignment, submission *Submission) error

UpdateSlipDays updates the number of slip days for the given assignment/submission.

type EnrollmentRequest

type EnrollmentRequest struct {

	// Types that are assignable to FetchMode:
	//
	//	*EnrollmentRequest_CourseID
	//	*EnrollmentRequest_UserID
	FetchMode isEnrollmentRequest_FetchMode `protobuf_oneof:"FetchMode"`
	Statuses  []Enrollment_UserStatus       `protobuf:"varint,3,rep,packed,name=statuses,proto3,enum=qf.Enrollment_UserStatus" json:"statuses,omitempty"`
	// contains filtered or unexported fields
}

func (*EnrollmentRequest) Descriptor deprecated

func (*EnrollmentRequest) Descriptor() ([]byte, []int)

Deprecated: Use EnrollmentRequest.ProtoReflect.Descriptor instead.

func (*EnrollmentRequest) GetCourseID

func (x *EnrollmentRequest) GetCourseID() uint64

func (*EnrollmentRequest) GetFetchMode

func (m *EnrollmentRequest) GetFetchMode() isEnrollmentRequest_FetchMode

func (*EnrollmentRequest) GetStatuses

func (x *EnrollmentRequest) GetStatuses() []Enrollment_UserStatus

func (*EnrollmentRequest) GetUserID

func (x *EnrollmentRequest) GetUserID() uint64

func (*EnrollmentRequest) IDFor

func (r *EnrollmentRequest) IDFor(role string) uint64

IDFor returns course ID.

func (*EnrollmentRequest) IsValid

func (req *EnrollmentRequest) IsValid() bool

IsValid checks that course ID is positive.

func (*EnrollmentRequest) ProtoMessage

func (*EnrollmentRequest) ProtoMessage()

func (*EnrollmentRequest) ProtoReflect

func (x *EnrollmentRequest) ProtoReflect() protoreflect.Message

func (*EnrollmentRequest) Reset

func (x *EnrollmentRequest) Reset()

func (*EnrollmentRequest) String

func (x *EnrollmentRequest) String() string

type EnrollmentRequest_CourseID

type EnrollmentRequest_CourseID struct {
	CourseID uint64 `protobuf:"varint,1,opt,name=courseID,proto3,oneof"`
}

type EnrollmentRequest_UserID

type EnrollmentRequest_UserID struct {
	UserID uint64 `protobuf:"varint,2,opt,name=userID,proto3,oneof"`
}

type Enrollment_DisplayState

type Enrollment_DisplayState int32
const (
	Enrollment_UNSET    Enrollment_DisplayState = 0
	Enrollment_HIDDEN   Enrollment_DisplayState = 1
	Enrollment_VISIBLE  Enrollment_DisplayState = 2
	Enrollment_FAVORITE Enrollment_DisplayState = 3
)

func (Enrollment_DisplayState) Descriptor

func (Enrollment_DisplayState) Enum

func (Enrollment_DisplayState) EnumDescriptor deprecated

func (Enrollment_DisplayState) EnumDescriptor() ([]byte, []int)

Deprecated: Use Enrollment_DisplayState.Descriptor instead.

func (Enrollment_DisplayState) Number

func (Enrollment_DisplayState) String

func (x Enrollment_DisplayState) String() string

func (Enrollment_DisplayState) Type

type Enrollment_UserStatus

type Enrollment_UserStatus int32
const (
	Enrollment_NONE    Enrollment_UserStatus = 0
	Enrollment_PENDING Enrollment_UserStatus = 1
	Enrollment_STUDENT Enrollment_UserStatus = 2
	Enrollment_TEACHER Enrollment_UserStatus = 3
)

func (Enrollment_UserStatus) Descriptor

func (Enrollment_UserStatus) Enum

func (Enrollment_UserStatus) EnumDescriptor deprecated

func (Enrollment_UserStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use Enrollment_UserStatus.Descriptor instead.

func (Enrollment_UserStatus) Number

func (Enrollment_UserStatus) String

func (x Enrollment_UserStatus) String() string

func (Enrollment_UserStatus) Type

type Enrollments

type Enrollments struct {
	Enrollments []*Enrollment `protobuf:"bytes,1,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	// contains filtered or unexported fields
}

func (*Enrollments) Descriptor deprecated

func (*Enrollments) Descriptor() ([]byte, []int)

Deprecated: Use Enrollments.ProtoReflect.Descriptor instead.

func (*Enrollments) GetCourseID

func (m *Enrollments) GetCourseID() uint64

GetCourseID returns the course ID for a slice of enrollments

func (*Enrollments) GetEnrollments

func (x *Enrollments) GetEnrollments() []*Enrollment

func (*Enrollments) HasCourseID

func (m *Enrollments) HasCourseID() bool

HasCourseID checks all enrollments have the same Course ID

func (*Enrollments) IDFor

func (r *Enrollments) IDFor(_ string) uint64

IDFor returns course ID.

func (*Enrollments) IsValid

func (m *Enrollments) IsValid() bool

func (*Enrollments) ProtoMessage

func (*Enrollments) ProtoMessage()

func (*Enrollments) ProtoReflect

func (x *Enrollments) ProtoReflect() protoreflect.Message

func (*Enrollments) RemoveRemoteID

func (e *Enrollments) RemoveRemoteID()

RemoveRemoteID removes remote identities for every enrollment

func (*Enrollments) Reset

func (x *Enrollments) Reset()

func (*Enrollments) String

func (x *Enrollments) String() string

func (*Enrollments) UserIDs

func (m *Enrollments) UserIDs() []uint64

UserIDs returns the user IDs in these enrollments.

type GradingBenchmark

type GradingBenchmark struct {
	ID           uint64              `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	CourseID     uint64              `protobuf:"varint,2,opt,name=CourseID,proto3" json:"CourseID,omitempty"`         // foreign key
	AssignmentID uint64              `protobuf:"varint,3,opt,name=AssignmentID,proto3" json:"AssignmentID,omitempty"` // foreign key
	ReviewID     uint64              `protobuf:"varint,4,opt,name=ReviewID,proto3" json:"ReviewID,omitempty"`         // foreign key
	Heading      string              `protobuf:"bytes,5,opt,name=heading,proto3" json:"heading,omitempty"`
	Comment      string              `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"`
	Criteria     []*GradingCriterion `protobuf:"bytes,7,rep,name=criteria,proto3" json:"criteria,omitempty" gorm:"foreignKey:BenchmarkID"`
	// contains filtered or unexported fields
}

func (*GradingBenchmark) Descriptor deprecated

func (*GradingBenchmark) Descriptor() ([]byte, []int)

Deprecated: Use GradingBenchmark.ProtoReflect.Descriptor instead.

func (*GradingBenchmark) GetAssignmentID

func (x *GradingBenchmark) GetAssignmentID() uint64

func (*GradingBenchmark) GetComment

func (x *GradingBenchmark) GetComment() string

func (*GradingBenchmark) GetCourseID

func (x *GradingBenchmark) GetCourseID() uint64

func (*GradingBenchmark) GetCriteria

func (x *GradingBenchmark) GetCriteria() []*GradingCriterion

func (*GradingBenchmark) GetHeading

func (x *GradingBenchmark) GetHeading() string

func (*GradingBenchmark) GetID

func (x *GradingBenchmark) GetID() uint64

func (*GradingBenchmark) GetReviewID

func (x *GradingBenchmark) GetReviewID() uint64

func (*GradingBenchmark) IDFor

func (r *GradingBenchmark) IDFor(_ string) uint64

IDFor returns course ID.

func (*GradingBenchmark) IsValid

func (bm *GradingBenchmark) IsValid() bool

IsValid ensures that a grading benchmark always belongs to an assignment and is not empty.

func (*GradingBenchmark) ProtoMessage

func (*GradingBenchmark) ProtoMessage()

func (*GradingBenchmark) ProtoReflect

func (x *GradingBenchmark) ProtoReflect() protoreflect.Message

func (*GradingBenchmark) Reset

func (x *GradingBenchmark) Reset()

func (*GradingBenchmark) String

func (x *GradingBenchmark) String() string

type GradingCriterion

type GradingCriterion struct {
	ID          uint64                 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	BenchmarkID uint64                 `protobuf:"varint,2,opt,name=BenchmarkID,proto3" json:"BenchmarkID,omitempty"` // foreign key
	CourseID    uint64                 `protobuf:"varint,3,opt,name=CourseID,proto3" json:"CourseID,omitempty"`       // foreign key
	Points      uint64                 `protobuf:"varint,4,opt,name=points,proto3" json:"points,omitempty"`
	Description string                 `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	Grade       GradingCriterion_Grade `protobuf:"varint,6,opt,name=grade,proto3,enum=qf.GradingCriterion_Grade" json:"grade,omitempty"`
	Comment     string                 `protobuf:"bytes,7,opt,name=comment,proto3" json:"comment,omitempty"`
	// contains filtered or unexported fields
}

func (*GradingCriterion) Descriptor deprecated

func (*GradingCriterion) Descriptor() ([]byte, []int)

Deprecated: Use GradingCriterion.ProtoReflect.Descriptor instead.

func (*GradingCriterion) GetBenchmarkID

func (x *GradingCriterion) GetBenchmarkID() uint64

func (*GradingCriterion) GetComment

func (x *GradingCriterion) GetComment() string

func (*GradingCriterion) GetCourseID

func (x *GradingCriterion) GetCourseID() uint64

func (*GradingCriterion) GetDescription

func (x *GradingCriterion) GetDescription() string

func (*GradingCriterion) GetGrade

func (*GradingCriterion) GetID

func (x *GradingCriterion) GetID() uint64

func (*GradingCriterion) GetPoints

func (x *GradingCriterion) GetPoints() uint64

func (*GradingCriterion) IDFor

func (r *GradingCriterion) IDFor(_ string) uint64

IDFor returns course ID.

func (*GradingCriterion) IsValid

func (c *GradingCriterion) IsValid() bool

IsValid ensures that a criterion always belongs to a grading benchmark and is not empty.

func (*GradingCriterion) ProtoMessage

func (*GradingCriterion) ProtoMessage()

func (*GradingCriterion) ProtoReflect

func (x *GradingCriterion) ProtoReflect() protoreflect.Message

func (*GradingCriterion) Reset

func (x *GradingCriterion) Reset()

func (*GradingCriterion) String

func (x *GradingCriterion) String() string

type GradingCriterion_Grade

type GradingCriterion_Grade int32
const (
	GradingCriterion_NONE   GradingCriterion_Grade = 0
	GradingCriterion_FAILED GradingCriterion_Grade = 1
	GradingCriterion_PASSED GradingCriterion_Grade = 2
)

func (GradingCriterion_Grade) Descriptor

func (GradingCriterion_Grade) Enum

func (GradingCriterion_Grade) EnumDescriptor deprecated

func (GradingCriterion_Grade) EnumDescriptor() ([]byte, []int)

Deprecated: Use GradingCriterion_Grade.Descriptor instead.

func (GradingCriterion_Grade) Number

func (GradingCriterion_Grade) String

func (x GradingCriterion_Grade) String() string

func (GradingCriterion_Grade) Type

type Group

type Group struct {
	ID          uint64            `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name        string            `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty" gorm:"uniqueIndex:group"`
	CourseID    uint64            `protobuf:"varint,3,opt,name=courseID,proto3" json:"courseID,omitempty" gorm:"uniqueIndex:group"`
	ScmTeamID   uint64            `protobuf:"varint,4,opt,name=ScmTeamID,proto3" json:"ScmTeamID,omitempty"`
	Status      Group_GroupStatus `protobuf:"varint,5,opt,name=status,proto3,enum=qf.Group_GroupStatus" json:"status,omitempty"`
	Users       []*User           `protobuf:"bytes,6,rep,name=users,proto3" json:"users,omitempty" gorm:"many2many:group_users;"`
	Enrollments []*Enrollment     `protobuf:"bytes,7,rep,name=enrollments,proto3" json:"enrollments,omitempty"`
	// contains filtered or unexported fields
}

func (*Group) Contains

func (g *Group) Contains(user *User) bool

Contains returns true if the given user is in the group.

func (*Group) ContainsAll

func (g *Group) ContainsAll(group *Group) bool

ContainsAll compares group members

func (*Group) Descriptor deprecated

func (*Group) Descriptor() ([]byte, []int)

Deprecated: Use Group.ProtoReflect.Descriptor instead.

func (*Group) GetCourseID

func (x *Group) GetCourseID() uint64

func (*Group) GetEnrollments

func (x *Group) GetEnrollments() []*Enrollment

func (*Group) GetID

func (x *Group) GetID() uint64

func (*Group) GetName

func (x *Group) GetName() string

func (*Group) GetScmTeamID

func (x *Group) GetScmTeamID() uint64

func (*Group) GetStatus

func (x *Group) GetStatus() Group_GroupStatus

func (*Group) GetUsers

func (x *Group) GetUsers() []*User

func (*Group) GetUsersExcept

func (g *Group) GetUsersExcept(userID uint64) []*User

GetUsersExcept returns a list of all users in a group, except the one with the given userID.

func (*Group) IDFor

func (r *Group) IDFor(_ string) uint64

IDFor returns course ID.

func (*Group) IsValid

func (grp *Group) IsValid() bool

IsValid checks required fields of a group request

func (*Group) ProtoMessage

func (*Group) ProtoMessage()

func (*Group) ProtoReflect

func (x *Group) ProtoReflect() protoreflect.Message

func (*Group) RemoveRemoteID

func (g *Group) RemoveRemoteID()

RemoveRemoteID nullifies remote identities of all users in a group

func (*Group) Reset

func (x *Group) Reset()

func (*Group) String

func (x *Group) String() string

func (*Group) UserIDs

func (g *Group) UserIDs() []uint64

UserIDs returns the user IDs of this group.

func (*Group) UserNames

func (g *Group) UserNames() []string

UserNames returns the SCM user names of the group.

type GroupRequest

type GroupRequest struct {
	CourseID uint64 `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	UserID   uint64 `protobuf:"varint,2,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID  uint64 `protobuf:"varint,3,opt,name=groupID,proto3" json:"groupID,omitempty"`
	// contains filtered or unexported fields
}

func (*GroupRequest) Descriptor deprecated

func (*GroupRequest) Descriptor() ([]byte, []int)

Deprecated: Use GroupRequest.ProtoReflect.Descriptor instead.

func (*GroupRequest) GetCourseID

func (x *GroupRequest) GetCourseID() uint64

func (*GroupRequest) GetGroupID

func (x *GroupRequest) GetGroupID() uint64

func (*GroupRequest) GetUserID

func (x *GroupRequest) GetUserID() uint64

func (*GroupRequest) IDFor

func (r *GroupRequest) IDFor(role string) uint64

IDFor returns user, group, or course ID.

func (*GroupRequest) IsValid

func (req *GroupRequest) IsValid() bool

IsValid ensures course ID is always set and either user ID or group ID is set, but not both.

func (*GroupRequest) ProtoMessage

func (*GroupRequest) ProtoMessage()

func (*GroupRequest) ProtoReflect

func (x *GroupRequest) ProtoReflect() protoreflect.Message

func (*GroupRequest) Reset

func (x *GroupRequest) Reset()

func (*GroupRequest) String

func (x *GroupRequest) String() string

func (*GroupRequest) UserIDs

func (*GroupRequest) UserIDs() []uint64

Dummy implementation of the interceptor.userIDs interface. Marks this message type to be evaluated for token refresh.

type Group_GroupStatus

type Group_GroupStatus int32
const (
	Group_PENDING  Group_GroupStatus = 0
	Group_APPROVED Group_GroupStatus = 1
)

func (Group_GroupStatus) Descriptor

func (Group_GroupStatus) Enum

func (Group_GroupStatus) EnumDescriptor deprecated

func (Group_GroupStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use Group_GroupStatus.Descriptor instead.

func (Group_GroupStatus) Number

func (Group_GroupStatus) String

func (x Group_GroupStatus) String() string

func (Group_GroupStatus) Type

type Groups

type Groups struct {
	Groups []*Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
	// contains filtered or unexported fields
}

func (*Groups) Descriptor deprecated

func (*Groups) Descriptor() ([]byte, []int)

Deprecated: Use Groups.ProtoReflect.Descriptor instead.

func (*Groups) GetGroups

func (x *Groups) GetGroups() []*Group

func (*Groups) ProtoMessage

func (*Groups) ProtoMessage()

func (*Groups) ProtoReflect

func (x *Groups) ProtoReflect() protoreflect.Message

func (*Groups) RemoveRemoteID

func (g *Groups) RemoveRemoteID()

RemoveRemoteID nullifies remote identities of all users in every group

func (*Groups) Reset

func (x *Groups) Reset()

func (*Groups) String

func (x *Groups) String() string

type Issue

type Issue struct {
	ID             uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	RepositoryID   uint64 `protobuf:"varint,2,opt,name=repositoryID,proto3" json:"repositoryID,omitempty"`     // Represents the internal ID of a repository
	TaskID         uint64 `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`                 // Task that this issue draws its content from
	ScmIssueNumber uint64 `protobuf:"varint,4,opt,name=ScmIssueNumber,proto3" json:"ScmIssueNumber,omitempty"` // Issue number on scm. Needed for associating db issue with scm issue
	// contains filtered or unexported fields
}

func (*Issue) Descriptor deprecated

func (*Issue) Descriptor() ([]byte, []int)

Deprecated: Use Issue.ProtoReflect.Descriptor instead.

func (*Issue) GetID

func (x *Issue) GetID() uint64

func (*Issue) GetRepositoryID

func (x *Issue) GetRepositoryID() uint64

func (*Issue) GetScmIssueNumber

func (x *Issue) GetScmIssueNumber() uint64

func (*Issue) GetTaskID

func (x *Issue) GetTaskID() uint64

func (*Issue) ProtoMessage

func (*Issue) ProtoMessage()

func (*Issue) ProtoReflect

func (x *Issue) ProtoReflect() protoreflect.Message

func (*Issue) Reset

func (x *Issue) Reset()

func (*Issue) String

func (x *Issue) String() string

type Organization

type Organization struct {
	ScmOrganizationID   uint64 `protobuf:"varint,1,opt,name=ScmOrganizationID,proto3" json:"ScmOrganizationID,omitempty"`
	ScmOrganizationName string `protobuf:"bytes,2,opt,name=ScmOrganizationName,proto3" json:"ScmOrganizationName,omitempty"`
	// contains filtered or unexported fields
}

func (*Organization) Descriptor deprecated

func (*Organization) Descriptor() ([]byte, []int)

Deprecated: Use Organization.ProtoReflect.Descriptor instead.

func (*Organization) GetScmOrganizationID

func (x *Organization) GetScmOrganizationID() uint64

func (*Organization) GetScmOrganizationName

func (x *Organization) GetScmOrganizationName() string

func (*Organization) IDFor

func (*Organization) IDFor(_ string) uint64

IDFor returns 0, this request is only used by admins.

func (*Organization) IsValid

func (org *Organization) IsValid() bool

IsValid checks that either ID or path field is set

func (*Organization) ProtoMessage

func (*Organization) ProtoMessage()

func (*Organization) ProtoReflect

func (x *Organization) ProtoReflect() protoreflect.Message

func (*Organization) Reset

func (x *Organization) Reset()

func (*Organization) String

func (x *Organization) String() string

type PullRequest

type PullRequest struct {
	ID              uint64            `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	ScmRepositoryID uint64            `protobuf:"varint,2,opt,name=ScmRepositoryID,proto3" json:"ScmRepositoryID,omitempty"` // Represents the scm repository ID
	TaskID          uint64            `protobuf:"varint,3,opt,name=taskID,proto3" json:"taskID,omitempty"`                   // Foreign key
	IssueID         uint64            `protobuf:"varint,4,opt,name=issueID,proto3" json:"issueID,omitempty"`                 // Foreign key
	UserID          uint64            `protobuf:"varint,5,opt,name=userID,proto3" json:"userID,omitempty"`                   // The user who owns this PR
	ScmCommentID    uint64            `protobuf:"varint,6,opt,name=ScmCommentID,proto3" json:"ScmCommentID,omitempty"`       // Scm ID of the comment used for automatic feedback
	SourceBranch    string            `protobuf:"bytes,7,opt,name=sourceBranch,proto3" json:"sourceBranch,omitempty"`        // The source branch for this pull request
	Number          uint64            `protobuf:"varint,8,opt,name=number,proto3" json:"number,omitempty"`                   // Pull request number
	Stage           PullRequest_Stage `protobuf:"varint,9,opt,name=stage,proto3,enum=qf.PullRequest_Stage" json:"stage,omitempty"`
	// contains filtered or unexported fields
}

func (*PullRequest) Descriptor deprecated

func (*PullRequest) Descriptor() ([]byte, []int)

Deprecated: Use PullRequest.ProtoReflect.Descriptor instead.

func (*PullRequest) GetID

func (x *PullRequest) GetID() uint64

func (*PullRequest) GetIssueID

func (x *PullRequest) GetIssueID() uint64

func (*PullRequest) GetNumber

func (x *PullRequest) GetNumber() uint64

func (*PullRequest) GetScmCommentID

func (x *PullRequest) GetScmCommentID() uint64

func (*PullRequest) GetScmRepositoryID

func (x *PullRequest) GetScmRepositoryID() uint64

func (*PullRequest) GetSourceBranch

func (x *PullRequest) GetSourceBranch() string

func (*PullRequest) GetStage

func (x *PullRequest) GetStage() PullRequest_Stage

func (*PullRequest) GetTaskID

func (x *PullRequest) GetTaskID() uint64

func (*PullRequest) GetUserID

func (x *PullRequest) GetUserID() uint64

func (*PullRequest) HasFeedbackComment

func (pr *PullRequest) HasFeedbackComment() bool

HasFeedbackComment returns true if the pull request has a comment associated with it.

func (*PullRequest) HasReviewers

func (pr *PullRequest) HasReviewers() bool

HasReviewers returns true if a pull request is in the approved or review stage. This implies that it should have had reviewers assigned to it.

func (*PullRequest) IsApproved

func (pr *PullRequest) IsApproved() bool

IsApproved returns true if a pull request is at the approved stage.

func (*PullRequest) ProtoMessage

func (*PullRequest) ProtoMessage()

func (*PullRequest) ProtoReflect

func (x *PullRequest) ProtoReflect() protoreflect.Message

func (*PullRequest) Reset

func (x *PullRequest) Reset()

func (*PullRequest) SetApproved

func (pr *PullRequest) SetApproved()

func (*PullRequest) SetDraft

func (pr *PullRequest) SetDraft()

func (*PullRequest) SetReview

func (pr *PullRequest) SetReview()

func (*PullRequest) String

func (x *PullRequest) String() string

func (*PullRequest) Valid

func (pr *PullRequest) Valid() bool

Checks if a pull request is valid for creation.

type PullRequest_Stage

type PullRequest_Stage int32
const (
	PullRequest_NONE     PullRequest_Stage = 0
	PullRequest_DRAFT    PullRequest_Stage = 1
	PullRequest_REVIEW   PullRequest_Stage = 2
	PullRequest_APPROVED PullRequest_Stage = 3
)

func (PullRequest_Stage) Descriptor

func (PullRequest_Stage) Enum

func (PullRequest_Stage) EnumDescriptor deprecated

func (PullRequest_Stage) EnumDescriptor() ([]byte, []int)

Deprecated: Use PullRequest_Stage.Descriptor instead.

func (PullRequest_Stage) Number

func (PullRequest_Stage) String

func (x PullRequest_Stage) String() string

func (PullRequest_Stage) Type

type RebuildRequest

type RebuildRequest struct {
	CourseID     uint64 `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	AssignmentID uint64 `protobuf:"varint,2,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"`
	SubmissionID uint64 `protobuf:"varint,3,opt,name=submissionID,proto3" json:"submissionID,omitempty"`
	// contains filtered or unexported fields
}

func (*RebuildRequest) Descriptor deprecated

func (*RebuildRequest) Descriptor() ([]byte, []int)

Deprecated: Use RebuildRequest.ProtoReflect.Descriptor instead.

func (*RebuildRequest) GetAssignmentID

func (x *RebuildRequest) GetAssignmentID() uint64

func (*RebuildRequest) GetCourseID

func (x *RebuildRequest) GetCourseID() uint64

func (*RebuildRequest) GetSubmissionID

func (x *RebuildRequest) GetSubmissionID() uint64

func (*RebuildRequest) IDFor

func (r *RebuildRequest) IDFor(role string) uint64

IDFor returns course ID.

func (*RebuildRequest) IsValid

func (req *RebuildRequest) IsValid() bool

IsValid ensures that both course and assignment IDs are set.

func (*RebuildRequest) ProtoMessage

func (*RebuildRequest) ProtoMessage()

func (*RebuildRequest) ProtoReflect

func (x *RebuildRequest) ProtoReflect() protoreflect.Message

func (*RebuildRequest) Reset

func (x *RebuildRequest) Reset()

func (*RebuildRequest) String

func (x *RebuildRequest) String() string

type RepoURL

type RepoURL struct {
	ProviderURL  string
	Organization string
}

func (RepoURL) AssignmentsRepoURL

func (r RepoURL) AssignmentsRepoURL() string

func (RepoURL) InfoRepoURL

func (r RepoURL) InfoRepoURL() string

func (RepoURL) StudentRepoURL

func (r RepoURL) StudentRepoURL(userName string) string

func (RepoURL) TestsRepoURL

func (r RepoURL) TestsRepoURL() string

type Repositories

type Repositories struct {
	URLs map[uint32]string `` // Map key is the Repository.Type
	/* 150-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Repositories) Descriptor deprecated

func (*Repositories) Descriptor() ([]byte, []int)

Deprecated: Use Repositories.ProtoReflect.Descriptor instead.

func (*Repositories) GetURLs

func (x *Repositories) GetURLs() map[uint32]string

func (*Repositories) ProtoMessage

func (*Repositories) ProtoMessage()

func (*Repositories) ProtoReflect

func (x *Repositories) ProtoReflect() protoreflect.Message

func (*Repositories) Reset

func (x *Repositories) Reset()

func (*Repositories) String

func (x *Repositories) String() string

type Repository

type Repository struct {
	ID                uint64          `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	ScmOrganizationID uint64          `protobuf:"varint,2,opt,name=ScmOrganizationID,proto3" json:"ScmOrganizationID,omitempty" gorm:"uniqueIndex:repository"`
	ScmRepositoryID   uint64          `protobuf:"varint,3,opt,name=ScmRepositoryID,proto3" json:"ScmRepositoryID,omitempty"` // ID of a github repository
	UserID            uint64          `protobuf:"varint,4,opt,name=userID,proto3" json:"userID,omitempty" gorm:"uniqueIndex:repository"`
	GroupID           uint64          `protobuf:"varint,5,opt,name=groupID,proto3" json:"groupID,omitempty" gorm:"uniqueIndex:repository"`
	HTMLURL           string          `protobuf:"bytes,6,opt,name=HTMLURL,proto3" json:"HTMLURL,omitempty"`
	RepoType          Repository_Type `protobuf:"varint,7,opt,name=repoType,proto3,enum=qf.Repository_Type" json:"repoType,omitempty" gorm:"uniqueIndex:repository"`
	Issues            []*Issue        `protobuf:"bytes,8,rep,name=issues,proto3" json:"issues,omitempty"` // Issues associated with this repository
	// contains filtered or unexported fields
}

func (*Repository) Descriptor deprecated

func (*Repository) Descriptor() ([]byte, []int)

Deprecated: Use Repository.ProtoReflect.Descriptor instead.

func (*Repository) GetGroupID

func (x *Repository) GetGroupID() uint64

func (*Repository) GetHTMLURL

func (x *Repository) GetHTMLURL() string

func (*Repository) GetID

func (x *Repository) GetID() uint64

func (*Repository) GetIssues

func (x *Repository) GetIssues() []*Issue

func (*Repository) GetRepoType

func (x *Repository) GetRepoType() Repository_Type

func (*Repository) GetScmOrganizationID

func (x *Repository) GetScmOrganizationID() uint64

func (*Repository) GetScmRepositoryID

func (x *Repository) GetScmRepositoryID() uint64

func (*Repository) GetTestURL

func (t *Repository) GetTestURL() string

GetTestURL returns the tests repository string for this repository. This repository can be any repository belonging to a course, e.g. a user or group repository. Using this method we can avoid a database lookup.

func (*Repository) GetUserID

func (x *Repository) GetUserID() uint64

func (*Repository) IsAssignmentsRepo

func (t *Repository) IsAssignmentsRepo() bool

IsAssignmentsRepo returns true if the repository is an 'assignments' repository.

func (*Repository) IsGroupRepo

func (t *Repository) IsGroupRepo() bool

IsGroupRepo returns true if the repository is a group repo type.

func (*Repository) IsStudentRepo

func (t *Repository) IsStudentRepo() bool

IsStudentRepo returns true if the repository is a user or group repo type.

func (*Repository) IsTestsRepo

func (t *Repository) IsTestsRepo() bool

IsTestsRepo returns true if the repository is a 'tests' repository.

func (*Repository) IsUserRepo

func (t *Repository) IsUserRepo() bool

IsUserRepo returns true if the repository is a user repo type.

func (*Repository) Name

func (t *Repository) Name() string

Name returns the name of the repository.

func (*Repository) ProtoMessage

func (*Repository) ProtoMessage()

func (*Repository) ProtoReflect

func (x *Repository) ProtoReflect() protoreflect.Message

func (*Repository) Reset

func (x *Repository) Reset()

func (*Repository) String

func (x *Repository) String() string

func (*Repository) UserName

func (t *Repository) UserName() string

UserName returns the user name of the repository, without the -labs suffix.

type RepositoryRequest

type RepositoryRequest struct {
	UserID   uint64 `protobuf:"varint,1,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID  uint64 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"`
	CourseID uint64 `protobuf:"varint,3,opt,name=courseID,proto3" json:"courseID,omitempty"`
	// contains filtered or unexported fields
}

used to check whether student/group submission repo is empty

func (*RepositoryRequest) Descriptor deprecated

func (*RepositoryRequest) Descriptor() ([]byte, []int)

Deprecated: Use RepositoryRequest.ProtoReflect.Descriptor instead.

func (*RepositoryRequest) GetCourseID

func (x *RepositoryRequest) GetCourseID() uint64

func (*RepositoryRequest) GetGroupID

func (x *RepositoryRequest) GetGroupID() uint64

func (*RepositoryRequest) GetUserID

func (x *RepositoryRequest) GetUserID() uint64

func (*RepositoryRequest) IDFor

func (r *RepositoryRequest) IDFor(_ string) uint64

IDFor returns course ID.

func (*RepositoryRequest) IsValid

func (req *RepositoryRequest) IsValid() bool

IsValid checks that the request has positive course ID and either user ID or group ID is set

func (*RepositoryRequest) ProtoMessage

func (*RepositoryRequest) ProtoMessage()

func (*RepositoryRequest) ProtoReflect

func (x *RepositoryRequest) ProtoReflect() protoreflect.Message

func (*RepositoryRequest) Reset

func (x *RepositoryRequest) Reset()

func (*RepositoryRequest) String

func (x *RepositoryRequest) String() string

type Repository_Type

type Repository_Type int32
const (
	Repository_NONE        Repository_Type = 0
	Repository_INFO        Repository_Type = 1
	Repository_ASSIGNMENTS Repository_Type = 2
	Repository_TESTS       Repository_Type = 3
	Repository_USER        Repository_Type = 4
	Repository_GROUP       Repository_Type = 5
)

func RepoType

func RepoType(path string) (repoType Repository_Type)

RepoType returns the repository type for the given path name.

func (Repository_Type) Descriptor

func (Repository_Type) Enum

func (x Repository_Type) Enum() *Repository_Type

func (Repository_Type) EnumDescriptor deprecated

func (Repository_Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use Repository_Type.Descriptor instead.

func (Repository_Type) IsCourseRepo

func (t Repository_Type) IsCourseRepo() bool

IsCourseRepo returns true if the repository is one of the course repo types.

func (Repository_Type) IsGroupRepo

func (t Repository_Type) IsGroupRepo() bool

IsGroupRepo returns true if the repository is a group repo.

func (Repository_Type) IsStudentRepo

func (t Repository_Type) IsStudentRepo() bool

IsStudentRepo returns true if the repository is a user repo type.

func (Repository_Type) IsUserRepo

func (t Repository_Type) IsUserRepo() bool

IsUserRepo returns true if the repository is a user repo.

func (Repository_Type) Number

func (Repository_Type) String

func (x Repository_Type) String() string

func (Repository_Type) Type

type Review

type Review struct {
	ID                uint64                 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	SubmissionID      uint64                 `protobuf:"varint,2,opt,name=SubmissionID,proto3" json:"SubmissionID,omitempty"` // foreign key
	ReviewerID        uint64                 `protobuf:"varint,3,opt,name=ReviewerID,proto3" json:"ReviewerID,omitempty"`     // UserID of the reviewer
	Feedback          string                 `protobuf:"bytes,4,opt,name=feedback,proto3" json:"feedback,omitempty"`
	Ready             bool                   `protobuf:"varint,5,opt,name=ready,proto3" json:"ready,omitempty"`
	Score             uint32                 `protobuf:"varint,6,opt,name=score,proto3" json:"score,omitempty"`
	GradingBenchmarks []*GradingBenchmark    `protobuf:"bytes,7,rep,name=gradingBenchmarks,proto3" json:"gradingBenchmarks,omitempty" gorm:"foreignKey:ReviewID"`
	Edited            *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=edited,proto3" json:"edited,omitempty" gorm:"serializer:timestamp;type:datetime"`
	// contains filtered or unexported fields
}

func (*Review) ComputeScore

func (r *Review) ComputeScore()

ComputeScore computes the total score for the review and assigns it to r. If the grading criteria have predefined points, the score is the sum of these points. Otherwise, each criterion is given equal weight, such that the max score is 100.

func (*Review) Descriptor deprecated

func (*Review) Descriptor() ([]byte, []int)

Deprecated: Use Review.ProtoReflect.Descriptor instead.

func (*Review) GetEdited

func (x *Review) GetEdited() *timestamppb.Timestamp

func (*Review) GetFeedback

func (x *Review) GetFeedback() string

func (*Review) GetGradingBenchmarks

func (x *Review) GetGradingBenchmarks() []*GradingBenchmark

func (*Review) GetID

func (x *Review) GetID() uint64

func (*Review) GetReady

func (x *Review) GetReady() bool

func (*Review) GetReviewerID

func (x *Review) GetReviewerID() uint64

func (*Review) GetScore

func (x *Review) GetScore() uint32

func (*Review) GetSubmissionID

func (x *Review) GetSubmissionID() uint64

func (*Review) IsValid

func (r *Review) IsValid() bool

IsValid ensures that a review always has a reviewer and a submission IDs.

func (*Review) ProtoMessage

func (*Review) ProtoMessage()

func (*Review) ProtoReflect

func (x *Review) ProtoReflect() protoreflect.Message

func (*Review) Reset

func (x *Review) Reset()

func (*Review) String

func (x *Review) String() string

type ReviewRequest

type ReviewRequest struct {
	CourseID uint64  `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	Review   *Review `protobuf:"bytes,2,opt,name=review,proto3" json:"review,omitempty"`
	// contains filtered or unexported fields
}

func (*ReviewRequest) Descriptor deprecated

func (*ReviewRequest) Descriptor() ([]byte, []int)

Deprecated: Use ReviewRequest.ProtoReflect.Descriptor instead.

func (*ReviewRequest) GetCourseID

func (x *ReviewRequest) GetCourseID() uint64

func (*ReviewRequest) GetReview

func (x *ReviewRequest) GetReview() *Review

func (*ReviewRequest) IDFor

func (r *ReviewRequest) IDFor(_ string) uint64

IDFor returns course ID.

func (*ReviewRequest) IsValid

func (r *ReviewRequest) IsValid() bool

IsValid ensures that course ID is provided and the review is valid.

func (*ReviewRequest) ProtoMessage

func (*ReviewRequest) ProtoMessage()

func (*ReviewRequest) ProtoReflect

func (x *ReviewRequest) ProtoReflect() protoreflect.Message

func (*ReviewRequest) Reset

func (x *ReviewRequest) Reset()

func (*ReviewRequest) String

func (x *ReviewRequest) String() string

type Submission

type Submission struct {
	ID           uint64                 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	AssignmentID uint64                 `protobuf:"varint,2,opt,name=AssignmentID,proto3" json:"AssignmentID,omitempty"` // foreign key
	UserID       uint64                 `protobuf:"varint,3,opt,name=userID,proto3" json:"userID,omitempty"`
	GroupID      uint64                 `protobuf:"varint,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	Score        uint32                 `protobuf:"varint,5,opt,name=score,proto3" json:"score,omitempty"`
	CommitHash   string                 `protobuf:"bytes,6,opt,name=commitHash,proto3" json:"commitHash,omitempty"`
	Released     bool                   `protobuf:"varint,7,opt,name=released,proto3" json:"released,omitempty"` // true => feedback is visible to the student or group members
	Status       Submission_Status      `protobuf:"varint,8,opt,name=status,proto3,enum=qf.Submission_Status" json:"status,omitempty"`
	ApprovedDate *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=approvedDate,proto3" json:"approvedDate,omitempty" gorm:"serializer:timestamp;type:datetime"`
	Reviews      []*Review              `protobuf:"bytes,10,rep,name=reviews,proto3" json:"reviews,omitempty"`     // reviews produced for this submission
	BuildInfo    *score.BuildInfo       `protobuf:"bytes,11,opt,name=BuildInfo,proto3" json:"BuildInfo,omitempty"` // build info for tests
	Scores       []*score.Score         `protobuf:"bytes,12,rep,name=Scores,proto3" json:"Scores,omitempty"`       // list of scores for different tests
	// contains filtered or unexported fields
}

func (*Submission) ByGroup

func (s *Submission) ByGroup(groupID uint64) bool

func (*Submission) ByUser

func (s *Submission) ByUser(userID uint64) bool

func (*Submission) Descriptor deprecated

func (*Submission) Descriptor() ([]byte, []int)

Deprecated: Use Submission.ProtoReflect.Descriptor instead.

func (*Submission) GetApprovedDate

func (x *Submission) GetApprovedDate() *timestamppb.Timestamp

func (*Submission) GetAssignmentID

func (x *Submission) GetAssignmentID() uint64

func (*Submission) GetBuildInfo

func (x *Submission) GetBuildInfo() *score.BuildInfo

func (*Submission) GetCommitHash

func (x *Submission) GetCommitHash() string

func (*Submission) GetGroupID

func (x *Submission) GetGroupID() uint64

func (*Submission) GetID

func (x *Submission) GetID() uint64

func (*Submission) GetReleased

func (x *Submission) GetReleased() bool

func (*Submission) GetReviews

func (x *Submission) GetReviews() []*Review

func (*Submission) GetScore

func (x *Submission) GetScore() uint32

func (*Submission) GetScores

func (x *Submission) GetScores() []*score.Score

func (*Submission) GetStatus

func (x *Submission) GetStatus() Submission_Status

func (*Submission) GetUserID

func (x *Submission) GetUserID() uint64

func (*Submission) IsApproved

func (s *Submission) IsApproved() bool

func (*Submission) NewestSubmissionDate

func (s *Submission) NewestSubmissionDate(submissionDate time.Time) time.Time

NewestSubmissionDate returns the submission's submission date if newer than the provided date. Otherwise, the provided date is returned, i.e., if it is newer.

func (*Submission) ProtoMessage

func (*Submission) ProtoMessage()

func (*Submission) ProtoReflect

func (x *Submission) ProtoReflect() protoreflect.Message

func (*Submission) Reset

func (x *Submission) Reset()

func (*Submission) String

func (x *Submission) String() string

type SubmissionRequest

type SubmissionRequest struct {
	CourseID     uint64 `protobuf:"varint,1,opt,name=CourseID,proto3" json:"CourseID,omitempty"`
	AssignmentID uint64 `protobuf:"varint,2,opt,name=AssignmentID,proto3" json:"AssignmentID,omitempty"` // only used for user and group submissions
	// Types that are assignable to FetchMode:
	//
	//	*SubmissionRequest_UserID
	//	*SubmissionRequest_GroupID
	//	*SubmissionRequest_SubmissionID
	//	*SubmissionRequest_Type
	FetchMode isSubmissionRequest_FetchMode `protobuf_oneof:"FetchMode"`
	// contains filtered or unexported fields
}

func (*SubmissionRequest) Descriptor deprecated

func (*SubmissionRequest) Descriptor() ([]byte, []int)

Deprecated: Use SubmissionRequest.ProtoReflect.Descriptor instead.

func (*SubmissionRequest) GetAssignmentID

func (x *SubmissionRequest) GetAssignmentID() uint64

func (*SubmissionRequest) GetCourseID

func (x *SubmissionRequest) GetCourseID() uint64

func (*SubmissionRequest) GetFetchMode

func (m *SubmissionRequest) GetFetchMode() isSubmissionRequest_FetchMode

func (*SubmissionRequest) GetGroupID

func (x *SubmissionRequest) GetGroupID() uint64

func (*SubmissionRequest) GetSubmissionID

func (x *SubmissionRequest) GetSubmissionID() uint64

func (*SubmissionRequest) GetType

func (*SubmissionRequest) GetUserID

func (x *SubmissionRequest) GetUserID() uint64

func (*SubmissionRequest) IDFor

func (r *SubmissionRequest) IDFor(role string) uint64

IDFor returns user, group, or course ID.

func (*SubmissionRequest) IsValid

func (req *SubmissionRequest) IsValid() bool

IsValid checks required fields of an action request. It must have a positive course ID and one of the fetch modes must be set with a positive ID.

func (*SubmissionRequest) ProtoMessage

func (*SubmissionRequest) ProtoMessage()

func (*SubmissionRequest) ProtoReflect

func (x *SubmissionRequest) ProtoReflect() protoreflect.Message

func (*SubmissionRequest) Reset

func (x *SubmissionRequest) Reset()

func (*SubmissionRequest) String

func (x *SubmissionRequest) String() string

type SubmissionRequest_GroupID

type SubmissionRequest_GroupID struct {
	GroupID uint64 `protobuf:"varint,4,opt,name=GroupID,proto3,oneof"` // fetch single group's submissions with build info
}

type SubmissionRequest_SubmissionID

type SubmissionRequest_SubmissionID struct {
	SubmissionID uint64 `protobuf:"varint,5,opt,name=SubmissionID,proto3,oneof"` // fetch single specific submission with build info
}

type SubmissionRequest_SubmissionType

type SubmissionRequest_SubmissionType int32
const (
	SubmissionRequest_ALL   SubmissionRequest_SubmissionType = 0 // fetch all submissions
	SubmissionRequest_USER  SubmissionRequest_SubmissionType = 1 // fetch all user submissions
	SubmissionRequest_GROUP SubmissionRequest_SubmissionType = 2 // fetch all group submissions
)

func (SubmissionRequest_SubmissionType) Descriptor

func (SubmissionRequest_SubmissionType) Enum

func (SubmissionRequest_SubmissionType) EnumDescriptor deprecated

func (SubmissionRequest_SubmissionType) EnumDescriptor() ([]byte, []int)

Deprecated: Use SubmissionRequest_SubmissionType.Descriptor instead.

func (SubmissionRequest_SubmissionType) Number

func (SubmissionRequest_SubmissionType) String

func (SubmissionRequest_SubmissionType) Type

type SubmissionRequest_Type

type SubmissionRequest_Type struct {
	Type SubmissionRequest_SubmissionType `protobuf:"varint,6,opt,name=Type,proto3,enum=qf.SubmissionRequest_SubmissionType,oneof"` // fetch all submissions of given type without build info
}

type SubmissionRequest_UserID

type SubmissionRequest_UserID struct {
	UserID uint64 `protobuf:"varint,3,opt,name=UserID,proto3,oneof"` // fetch single user's submissions with build info
}

type Submission_Status

type Submission_Status int32
const (
	Submission_NONE     Submission_Status = 0
	Submission_APPROVED Submission_Status = 1
	Submission_REJECTED Submission_Status = 2
	Submission_REVISION Submission_Status = 3
)

func (Submission_Status) Descriptor

func (Submission_Status) Enum

func (Submission_Status) EnumDescriptor deprecated

func (Submission_Status) EnumDescriptor() ([]byte, []int)

Deprecated: Use Submission_Status.Descriptor instead.

func (Submission_Status) Number

func (Submission_Status) String

func (x Submission_Status) String() string

func (Submission_Status) Type

type Submissions

type Submissions struct {
	Submissions []*Submission `protobuf:"bytes,1,rep,name=submissions,proto3" json:"submissions,omitempty"`
	// contains filtered or unexported fields
}

func (*Submissions) Clean

func (s *Submissions) Clean()

Clean removes any score or reviews from the submission if it is not released. This is to prevent users from seeing the score or reviews of a submission that has not been released.

func (*Submissions) Descriptor deprecated

func (*Submissions) Descriptor() ([]byte, []int)

Deprecated: Use Submissions.ProtoReflect.Descriptor instead.

func (*Submissions) GetSubmissions

func (x *Submissions) GetSubmissions() []*Submission

func (*Submissions) ProtoMessage

func (*Submissions) ProtoMessage()

func (*Submissions) ProtoReflect

func (x *Submissions) ProtoReflect() protoreflect.Message

func (*Submissions) Reset

func (x *Submissions) Reset()

func (*Submissions) String

func (x *Submissions) String() string

type Task

type Task struct {
	ID              uint64   `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	AssignmentID    uint64   `protobuf:"varint,2,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"` // foreign key
	AssignmentOrder uint32   `protobuf:"varint,3,opt,name=assignmentOrder,proto3" json:"assignmentOrder,omitempty"`
	Title           string   `protobuf:"bytes,4,opt,name=title,proto3" json:"title,omitempty"`
	Body            string   `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
	Name            string   `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
	Issues          []*Issue `protobuf:"bytes,7,rep,name=issues,proto3" json:"issues,omitempty"` // Issues that use this task as a benchmark
	// contains filtered or unexported fields
}

func (*Task) Descriptor deprecated

func (*Task) Descriptor() ([]byte, []int)

Deprecated: Use Task.ProtoReflect.Descriptor instead.

func (*Task) GetAssignmentID

func (x *Task) GetAssignmentID() uint64

func (*Task) GetAssignmentOrder

func (x *Task) GetAssignmentOrder() uint32

func (*Task) GetBody

func (x *Task) GetBody() string

func (*Task) GetID

func (x *Task) GetID() uint64

func (*Task) GetIssues

func (x *Task) GetIssues() []*Issue

func (*Task) GetName

func (x *Task) GetName() string

func (*Task) GetTitle

func (x *Task) GetTitle() string

func (*Task) HasChanged

func (t *Task) HasChanged(newTask *Task) bool

HasChanged returns true if task t has a different title or body than the new task.

func (*Task) IsDeleted

func (t *Task) IsDeleted() bool

func (*Task) MarkDeleted

func (t *Task) MarkDeleted()

func (*Task) ProtoMessage

func (*Task) ProtoMessage()

func (*Task) ProtoReflect

func (x *Task) ProtoReflect() protoreflect.Message

func (*Task) Reset

func (x *Task) Reset()

func (*Task) String

func (x *Task) String() string

type UpdateSubmissionRequest

type UpdateSubmissionRequest struct {
	SubmissionID uint64            `protobuf:"varint,1,opt,name=submissionID,proto3" json:"submissionID,omitempty"`
	CourseID     uint64            `protobuf:"varint,2,opt,name=courseID,proto3" json:"courseID,omitempty"`
	Score        uint32            `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"`
	Released     bool              `protobuf:"varint,4,opt,name=released,proto3" json:"released,omitempty"`
	Status       Submission_Status `protobuf:"varint,5,opt,name=status,proto3,enum=qf.Submission_Status" json:"status,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSubmissionRequest) Descriptor deprecated

func (*UpdateSubmissionRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateSubmissionRequest.ProtoReflect.Descriptor instead.

func (*UpdateSubmissionRequest) GetCourseID

func (x *UpdateSubmissionRequest) GetCourseID() uint64

func (*UpdateSubmissionRequest) GetReleased

func (x *UpdateSubmissionRequest) GetReleased() bool

func (*UpdateSubmissionRequest) GetScore

func (x *UpdateSubmissionRequest) GetScore() uint32

func (*UpdateSubmissionRequest) GetStatus

func (*UpdateSubmissionRequest) GetSubmissionID

func (x *UpdateSubmissionRequest) GetSubmissionID() uint64

func (*UpdateSubmissionRequest) IDFor

func (r *UpdateSubmissionRequest) IDFor(role string) uint64

IDFor returns course ID.

func (*UpdateSubmissionRequest) IsValid

func (req *UpdateSubmissionRequest) IsValid() bool

IsValid ensures that both submission and course IDs are set

func (*UpdateSubmissionRequest) ProtoMessage

func (*UpdateSubmissionRequest) ProtoMessage()

func (*UpdateSubmissionRequest) ProtoReflect

func (x *UpdateSubmissionRequest) ProtoReflect() protoreflect.Message

func (*UpdateSubmissionRequest) Reset

func (x *UpdateSubmissionRequest) Reset()

func (*UpdateSubmissionRequest) String

func (x *UpdateSubmissionRequest) String() string

type UpdateSubmissionsRequest

type UpdateSubmissionsRequest struct {
	CourseID     uint64 `protobuf:"varint,1,opt,name=courseID,proto3" json:"courseID,omitempty"`
	AssignmentID uint64 `protobuf:"varint,2,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"`
	ScoreLimit   uint32 `protobuf:"varint,3,opt,name=scoreLimit,proto3" json:"scoreLimit,omitempty"`
	Release      bool   `protobuf:"varint,4,opt,name=release,proto3" json:"release,omitempty"`
	Approve      bool   `protobuf:"varint,5,opt,name=approve,proto3" json:"approve,omitempty"`
	// contains filtered or unexported fields
}

func (*UpdateSubmissionsRequest) Descriptor deprecated

func (*UpdateSubmissionsRequest) Descriptor() ([]byte, []int)

Deprecated: Use UpdateSubmissionsRequest.ProtoReflect.Descriptor instead.

func (*UpdateSubmissionsRequest) GetApprove

func (x *UpdateSubmissionsRequest) GetApprove() bool

func (*UpdateSubmissionsRequest) GetAssignmentID

func (x *UpdateSubmissionsRequest) GetAssignmentID() uint64

func (*UpdateSubmissionsRequest) GetCourseID

func (x *UpdateSubmissionsRequest) GetCourseID() uint64

func (*UpdateSubmissionsRequest) GetRelease

func (x *UpdateSubmissionsRequest) GetRelease() bool

func (*UpdateSubmissionsRequest) GetScoreLimit

func (x *UpdateSubmissionsRequest) GetScoreLimit() uint32

func (*UpdateSubmissionsRequest) IDFor

IDFor returns course ID.

func (*UpdateSubmissionsRequest) ProtoMessage

func (*UpdateSubmissionsRequest) ProtoMessage()

func (*UpdateSubmissionsRequest) ProtoReflect

func (x *UpdateSubmissionsRequest) ProtoReflect() protoreflect.Message

func (*UpdateSubmissionsRequest) Reset

func (x *UpdateSubmissionsRequest) Reset()

func (*UpdateSubmissionsRequest) String

func (x *UpdateSubmissionsRequest) String() string

type UsedSlipDays

type UsedSlipDays struct {
	ID           uint64 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	EnrollmentID uint64 `protobuf:"varint,2,opt,name=enrollmentID,proto3" json:"enrollmentID,omitempty"`
	AssignmentID uint64 `protobuf:"varint,3,opt,name=assignmentID,proto3" json:"assignmentID,omitempty"`
	UsedDays     uint32 `protobuf:"varint,4,opt,name=usedDays,proto3" json:"usedDays,omitempty"`
	// contains filtered or unexported fields
}

func (*UsedSlipDays) Descriptor deprecated

func (*UsedSlipDays) Descriptor() ([]byte, []int)

Deprecated: Use UsedSlipDays.ProtoReflect.Descriptor instead.

func (*UsedSlipDays) GetAssignmentID

func (x *UsedSlipDays) GetAssignmentID() uint64

func (*UsedSlipDays) GetEnrollmentID

func (x *UsedSlipDays) GetEnrollmentID() uint64

func (*UsedSlipDays) GetID

func (x *UsedSlipDays) GetID() uint64

func (*UsedSlipDays) GetUsedDays

func (x *UsedSlipDays) GetUsedDays() uint32

func (*UsedSlipDays) ProtoMessage

func (*UsedSlipDays) ProtoMessage()

func (*UsedSlipDays) ProtoReflect

func (x *UsedSlipDays) ProtoReflect() protoreflect.Message

func (*UsedSlipDays) Reset

func (x *UsedSlipDays) Reset()

func (*UsedSlipDays) String

func (x *UsedSlipDays) String() string

type User

type User struct {
	ID           uint64        `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"`
	IsAdmin      bool          `protobuf:"varint,2,opt,name=IsAdmin,proto3" json:"IsAdmin,omitempty"`
	Name         string        `protobuf:"bytes,3,opt,name=Name,proto3" json:"Name,omitempty"`
	StudentID    string        `protobuf:"bytes,4,opt,name=StudentID,proto3" json:"StudentID,omitempty"`
	Email        string        `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"`
	AvatarURL    string        `protobuf:"bytes,6,opt,name=AvatarURL,proto3" json:"AvatarURL,omitempty"`
	Login        string        `protobuf:"bytes,7,opt,name=Login,proto3" json:"Login,omitempty"`
	UpdateToken  bool          `protobuf:"varint,8,opt,name=UpdateToken,proto3" json:"UpdateToken,omitempty"`   // Filter; True if user's JWT token needs to be updated.
	ScmRemoteID  uint64        `protobuf:"varint,9,opt,name=ScmRemoteID,proto3" json:"ScmRemoteID,omitempty"`   // Filter; The user's ID on the remote provider.
	RefreshToken string        `protobuf:"bytes,10,opt,name=RefreshToken,proto3" json:"RefreshToken,omitempty"` // Filter; The user's refresh token that may be exchanged for an access token.
	Enrollments  []*Enrollment `protobuf:"bytes,11,rep,name=Enrollments,proto3" json:"Enrollments,omitempty"`
	// contains filtered or unexported fields
}

func (*User) Descriptor deprecated

func (*User) Descriptor() ([]byte, []int)

Deprecated: Use User.ProtoReflect.Descriptor instead.

func (*User) GetAvatarURL

func (x *User) GetAvatarURL() string

func (*User) GetEmail

func (x *User) GetEmail() string

func (*User) GetEnrollments

func (x *User) GetEnrollments() []*Enrollment

func (*User) GetID

func (x *User) GetID() uint64

func (*User) GetIsAdmin

func (x *User) GetIsAdmin() bool

func (*User) GetLogin

func (x *User) GetLogin() string

func (*User) GetName

func (x *User) GetName() string

func (*User) GetRefreshToken

func (x *User) GetRefreshToken() string

func (*User) GetScmRemoteID

func (x *User) GetScmRemoteID() uint64

func (*User) GetStudentID

func (x *User) GetStudentID() string

func (*User) GetUpdateToken

func (x *User) GetUpdateToken() bool

func (*User) IDFor

func (r *User) IDFor(_ string) uint64

IDFor returns user ID.

func (*User) IsOwner

func (u *User) IsOwner(userID uint64) bool

IsOwner returns true if the current user is the same as the given user ID.

func (*User) IsValid

func (u *User) IsValid() bool

IsValid checks required fields of a user request

func (*User) ProtoMessage

func (*User) ProtoMessage()

func (*User) ProtoReflect

func (x *User) ProtoReflect() protoreflect.Message

func (*User) RemoveRemoteID

func (u *User) RemoveRemoteID()

RemoveRemoteID removes user's remote identity before transmitting to client.

func (*User) Reset

func (x *User) Reset()

func (*User) String

func (x *User) String() string

func (*User) UserIDs

func (u *User) UserIDs() []uint64

UserIDs returns the user ID of this user.

type Users

type Users struct {
	Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// contains filtered or unexported fields
}

func (*Users) Descriptor deprecated

func (*Users) Descriptor() ([]byte, []int)

Deprecated: Use Users.ProtoReflect.Descriptor instead.

func (*Users) GetUsers

func (x *Users) GetUsers() []*User

func (*Users) ProtoMessage

func (*Users) ProtoMessage()

func (*Users) ProtoReflect

func (x *Users) ProtoReflect() protoreflect.Message

func (*Users) RemoveRemoteID

func (u *Users) RemoveRemoteID()

RemoveRemoteID nullifies remote identities of all users

func (*Users) Reset

func (x *Users) Reset()

func (*Users) String

func (x *Users) String() string

type Void

type Void struct {
	// contains filtered or unexported fields
}

Void contains no fields. A server response with a Void still contains a gRPC status code, which can be checked for success or failure. Status code 0 indicates that the requested action was successful, whereas any other status code indicates some failure. As such, the status code can be used as a boolean result from the server.

func (*Void) Descriptor deprecated

func (*Void) Descriptor() ([]byte, []int)

Deprecated: Use Void.ProtoReflect.Descriptor instead.

func (*Void) IDFor

func (*Void) IDFor(_ string) uint64

IDFor returns zero.

func (*Void) IsValid

func (*Void) IsValid() bool

IsValid on void message always returns true.

func (*Void) ProtoMessage

func (*Void) ProtoMessage()

func (*Void) ProtoReflect

func (x *Void) ProtoReflect() protoreflect.Message

func (*Void) Reset

func (x *Void) Reset()

func (*Void) String

func (x *Void) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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