Documentation
¶
Index ¶
- Variables
- func CheckValidToken(r *http.Request) (uint, string, error)
- func ComparePasswords(hashedPassword, plainPassword string) bool
- func CreateProblem(c *gin.Context)
- func CreateSubmission(c *gin.Context)
- func DeleteProblem(c *gin.Context)
- func GetCurrentUser(c *gin.Context)
- func GetProblem(c *gin.Context)
- func GetSubmission(c *gin.Context)
- func HandleCreateProblem(c *gin.Context)
- func HandleDeleteProblem(c *gin.Context)
- func HandlePublishDraft(c *gin.Context)
- func HandlePublishProblem(c *gin.Context)
- func HandleSubmitSolution(c *gin.Context)
- func HandleToggleUserRole(c *gin.Context)
- func HashPassword(password string) (string, error)
- func InitHandlers(router *gin.Engine)
- func IsValidPassword(password string) bool
- func ListProblems(c *gin.Context)
- func ListSubmissions(c *gin.Context)
- func ListUsers(c *gin.Context)
- func LoginHandler(c *gin.Context)
- func LogoutHandler(c *gin.Context)
- func PublishProblem(c *gin.Context)
- func RequirePermission(permission string) gin.HandlerFunc
- func RequireRole(requiredRole string) gin.HandlerFunc
- func ShowAdminDashboard(c *gin.Context)
- func ShowCreateProblemPage(c *gin.Context)
- func ShowSubmissionPage(c *gin.Context)
- func ShowSubmitProblemPage(c *gin.Context)
- func ShowUserSubmissionsPage(c *gin.Context)
- func SignUpHandler(c *gin.Context)
- func UpdateProblem(c *gin.Context)
- func UpdateSubmissionStatus(c *gin.Context)
- func UpdateUserRole(c *gin.Context)
- type CreateProblemRequest
- type CreateSubmissionRequest
- type LoginRequest
- type PublishProblemRequest
- type TestCase
- type UpdateProblemRequest
- type UpdateUserRoleRequest
Constants ¶
This section is empty.
Variables ¶
var SubmissionStatus = struct { Pending string CompileError string WrongAnswer string MemoryLimit string TimeLimit string RuntimeError string Ok string }{ Pending: "pending", CompileError: "compile_error", WrongAnswer: "wrong_answer", MemoryLimit: "memory_limit", TimeLimit: "time_limit", RuntimeError: "runtime_error", Ok: "ok", }
SubmissionStatus represents the possible statuses of a submission
Functions ¶
func ComparePasswords ¶
func CreateProblem ¶
func CreateSubmission ¶
CreateSubmission handles the API endpoint for creating a new submission
func DeleteProblem ¶
func GetCurrentUser ¶
GetCurrentUser returns information about the currently logged-in user
func GetProblem ¶
func GetSubmission ¶
GetSubmission handles the API endpoint for getting a single submission
func HandleCreateProblem ¶
HandleCreateProblem processes a form submission to create a new problem
func HandleDeleteProblem ¶
HandleDeleteProblem processes a form submission to delete a problem
func HandlePublishDraft ¶
HandlePublishDraft processes a form submission to publish a draft problem
func HandlePublishProblem ¶
HandlePublishProblem handles HTTP form submissions for publishing/unpublishing problems
func HandleSubmitSolution ¶
func HandleToggleUserRole ¶
HandleToggleUserRole processes a form submission to change a user's role
func HashPassword ¶
func InitHandlers ¶
InitHandlers initializes all route handlers for the application
func IsValidPassword ¶
func ListProblems ¶
func ListSubmissions ¶
func LoginHandler ¶
func LogoutHandler ¶
func PublishProblem ¶
func RequirePermission ¶
func RequirePermission(permission string) gin.HandlerFunc
RequirePermission creates a middleware that checks if the user has the required permission
func RequireRole ¶
func RequireRole(requiredRole string) gin.HandlerFunc
RequireRole creates a middleware that checks if the user has the required role
func ShowAdminDashboard ¶
ShowAdminDashboard renders the admin dashboard page with users and draft problems
func ShowCreateProblemPage ¶
ShowCreateProblemPage renders the page for creating a new problem.
func ShowSubmissionPage ¶
ShowSubmissionPage renders the submission view page
func ShowSubmitProblemPage ¶
ShowSubmitProblemPage renders the page for submitting a solution to a problem
func ShowUserSubmissionsPage ¶
ShowUserSubmissionsPage renders the page showing a user's submissions
func SignUpHandler ¶
func UpdateProblem ¶
func UpdateSubmissionStatus ¶
UpdateSubmissionStatus handles the API endpoint for updating a submission status This would typically be called by the judging service
func UpdateUserRole ¶
UpdateUserRole changes a user's role between 'admin' and 'user' (admin access only)
Types ¶
type CreateProblemRequest ¶
type CreateProblemRequest struct { Title string `json:"title" binding:"required"` Description string `json:"description" binding:"required"` TimeLimit int `json:"timeLimit" binding:"required"` MemoryLimit int `json:"memoryLimit" binding:"required"` Difficulty string `json:"difficulty" binding:"required"` TestCases []TestCase `json:"testCases" binding:"required"` Status string `json:"status"` }
type CreateSubmissionRequest ¶
type CreateSubmissionRequest struct { Code string `json:"code" binding:"required"` QuestionId uint `json:"questionId" binding:"required"` }
CreateSubmissionRequest defines the request format for creating a submission
type LoginRequest ¶
type PublishProblemRequest ¶
type PublishProblemRequest struct {
Status string `json:"status" binding:"required,oneof=draft published"`
}
type UpdateProblemRequest ¶
type UpdateUserRoleRequest ¶
type UpdateUserRoleRequest struct {
Role string `json:"role" binding:"required,oneof=admin user"`
}
UpdateUserRoleRequest defines the request format for updating a user's role