Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChallengeRepository ¶
type ChallengeRepository interface { // CreateChallenge creates a new challenge. CreateChallenge(challenge *entities.Challenge) (*entities.Challenge, error) // UpdateChallenge updates a challenge. UpdateChallenge(challenge *entities.Challenge) error // DeleteChallenge deletes a challenge. DeleteChallenge(challenge *entities.Challenge) error // FindChallengeByID returns a challenge by given ID. FindChallengeByID(id uint) (challenge *entities.Challenge, err error) // AllChallenges returns all challenges. AllChallenges() (challenges []*entities.Challenge, err error) // AddTestcase adds a testcase to a challenge. AddTestcase(challenge *entities.Challenge, testcase *entities.ChallengeTestcase) (*entities.ChallengeTestcase, error) // UpdateTestcase updates a testcase. UpdateTestcase(testcase *entities.ChallengeTestcase) error // DeleteTestcase removes a testcase from a challenge. DeleteTestcase(testcase *entities.ChallengeTestcase) error // AllTestcases returns all testcases of a challenge. AllTestcases(challenge *entities.Challenge) (testcases []*entities.ChallengeTestcase, err error) // FindTestcaseByID returns a testcase by given ID. FindTestcaseByID(id uint) (testcase *entities.ChallengeTestcase, err error) // PaginationChallengesWithStatus returns all challenges with status. PaginationChallengesWithStatus(options *entities.ChallengePaginationOptions) (result *entities.PaginationResult[*entities.ChallengeExtended], err error) // UpdateChallengeWithTestcase updates a challenge with testcases. UpdateChallengeWithTestcase(challenge *entities.Challenge) error // CountAllChallengesByUser returns total challenges by given user. CountAllChallengesByUser(user *entities.User) (total int64, err error) }
func NewChallengeRepository ¶
func NewChallengeRepository(db *gorm.DB) ChallengeRepository
type SubmissionRepository ¶
type SubmissionRepository interface { CreateSubmission(submission *entities.Submission) (*entities.Submission, error) DeleteSubmission(submission *entities.Submission) error GetSubmissionByID(submissionID uint) (*entities.Submission, error) GetSubmissionByUser(user *entities.User) ([]*entities.Submission, error) GetSubmissionByChallenge(challenge *entities.Challenge) ([]*entities.Submission, error) CreateSubmissionTestcase(submissionTestcase *entities.SubmissionTestcase) (*entities.SubmissionTestcase, error) GetSubmissionTestcaseBySubmission(submission *entities.Submission) ([]*entities.SubmissionTestcase, error) // CreateSubmissionWithTestcase(submission *entities.Submission, submissionTestcases []entities.SubmissionTestcase) (*entities.Submission, error) UpdateSubmission(submission *entities.Submission) (*entities.Submission, error) UpdateSubmissionTestcase(submissionTestcase *entities.SubmissionTestcase) (*entities.SubmissionTestcase, error) Pagination(options *entities.SubmissionPaginationOptions) (result *entities.PaginationResult[*entities.Submission], err error) }
func NewSubmissionRepository ¶
func NewSubmissionRepository(db *gorm.DB) SubmissionRepository
type UserRepository ¶
type UserRepository interface { // FindUserByID returns a user by given ID. FindUserByID(id uint) (user *entities.User, err error) // FindUserByDisplayName returns a user by given display name. FindUserByDisplayName(displayName string) (user *entities.User, err error) // FindUserByEmail returns a user by given email. FindUserByEmail(email string) (user *entities.User, err error) // CreateUser creates a new user. CreateUser(user *entities.User) (*entities.User, error) // UpdateUser updates a user. UpdateUser(user *entities.User) error // DeleteUser deletes a user. DeleteUser(user *entities.User) error // Pagination returns a list of users by given page and limit. Pagination(options *entities.PaginationOptions) (result *entities.PaginationResult[*entities.User], err error) }
func NewUserRepository ¶
func NewUserRepository(db *gorm.DB) UserRepository
Click to show internal directories.
Click to hide internal directories.