contests

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2020 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContestCtx

type ContestCtx struct {
	*user.AuthCtx

	Contest  *models.Contest
	Problems []*models.Problem
}

ContestCtx implements a context that is common to all Contest UI page.

type ContestsCtx

type ContestsCtx struct {
	*user.AuthCtx

	ActiveContests []*models.Contest
	PastContests   []*models.Contest
}

ContestsCtx is a context for rendering a list of all contests

type Group

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

Group is the /contests handling group

func New

func New(db *db.DB, g *echo.Group) (*Group, error)

New creates a new group

func (*Group) ConestsGetNearestOngoingContest

func (g *Group) ConestsGetNearestOngoingContest(c echo.Context) error

Render the nearest ongoing contest or a table of all contests

func (*Group) ContestsGet

func (g *Group) ContestsGet(c echo.Context) error

Render a table of all contests

func (*Group) FileGet

func (g *Group) FileGet(c echo.Context) error

FileGet implements GET /contest/:id/problems/:problem/files/:file

func (*Group) OverviewGet

func (g *Group) OverviewGet(c echo.Context) error

OverviewGet implements GET "/contests/:id"

func (*Group) ProblemGet

func (g *Group) ProblemGet(c echo.Context) error

ProblemGet implements GET /contest/:id/problems/:problem

func (*Group) ScoreboardGet

func (g *Group) ScoreboardGet(c echo.Context) error

ScoreboardGet implements GET /contest/:id/scoreboard

func (*Group) SubmissionGet

func (g *Group) SubmissionGet(c echo.Context) error

SubmissionGet implements GET /contests/:id/submissions/:submission

func (*Group) SubmissionVerdictGet

func (g *Group) SubmissionVerdictGet(c echo.Context) error

SubmissionVerdictGet implements GET /contests/:id/submissions/:submission/verdict

func (*Group) SubmitPost

func (g *Group) SubmitPost(c echo.Context) error

SubmitPost implements POST /contest/:id/problems/:problem/submit.

type OverviewCtx

type OverviewCtx struct {
	*ContestCtx

	Problems []*models.ProblemWithTestGroups
	Scores   map[int]*models.ProblemResult
}

OverviewCtx is the context for rendering "/contests/:id"

func (*OverviewCtx) Render

func (o *OverviewCtx) Render(c echo.Context) error

Render renders the template corresponding to the context.

type ProblemCtx

type ProblemCtx struct {
	*ContestCtx

	Problem     *models.Problem
	Files       map[string]*models.File
	Submissions []*models.Submission
}

ProblemCtx is the context required to display a problem page.

func (*ProblemCtx) Render

func (p *ProblemCtx) Render(c echo.Context) error

Render renders the context.

type ScoreboardCtx

type ScoreboardCtx struct {
	*ContestCtx

	UserResults []*UserResult
}

ScoreboardCtx is the context required to display the scoreboard page

func (*ScoreboardCtx) Render

func (s *ScoreboardCtx) Render(c echo.Context) error

Render renders the scoreboard context

type SubmissionCtx

type SubmissionCtx struct {
	*ContestCtx

	Submission  *models.Submission
	Problem     *models.Problem
	TestGroups  []*models.TestGroupWithTests
	TestResults map[int]*models.TestResult
}

SubmissionCtx is the context for rendering the submission page.

func (*SubmissionCtx) Render

func (ctx *SubmissionCtx) Render(c echo.Context) error

Render renders the context.

type UserResult

type UserResult struct {
	User *models.User

	Rank           int
	TotalPenalty   int
	SolvedProblems int
	TotalScore     float64

	ProblemResults map[int]*models.ProblemResult
}

UserResult stores information about user's preformance in the contest

Jump to

Keyboard shortcuts

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