diff options
Diffstat (limited to 'backend/db/query.sql.go')
| -rw-r--r-- | backend/db/query.sql.go | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/backend/db/query.sql.go b/backend/db/query.sql.go index 001933a..23be719 100644 --- a/backend/db/query.sql.go +++ b/backend/db/query.sql.go @@ -127,6 +127,25 @@ func (q *Queries) CreateSubmission(ctx context.Context, arg CreateSubmissionPara return submission_id, err } +const createTestcase = `-- name: CreateTestcase :one +INSERT INTO testcases (problem_id, stdin, stdout) +VALUES ($1, $2, $3) +RETURNING testcase_id +` + +type CreateTestcaseParams struct { + ProblemID int32 + Stdin string + Stdout string +} + +func (q *Queries) CreateTestcase(ctx context.Context, arg CreateTestcaseParams) (int32, error) { + row := q.db.QueryRow(ctx, createTestcase, arg.ProblemID, arg.Stdin, arg.Stdout) + var testcase_id int32 + err := row.Scan(&testcase_id) + return testcase_id, err +} + const createTestcaseResult = `-- name: CreateTestcaseResult :exec INSERT INTO testcase_results (submission_id, testcase_id, status, stdout, stderr) VALUES ($1, $2, $3, $4, $5) @@ -179,6 +198,16 @@ func (q *Queries) CreateUserAuth(ctx context.Context, arg CreateUserAuthParams) return err } +const deleteTestcase = `-- name: DeleteTestcase :exec +DELETE FROM testcases +WHERE testcase_id = $1 +` + +func (q *Queries) DeleteTestcase(ctx context.Context, testcaseID int32) error { + _, err := q.db.Exec(ctx, deleteTestcase, testcaseID) + return err +} + const getGameByID = `-- name: GetGameByID :one SELECT game_id, game_type, is_public, display_name, duration_seconds, created_at, started_at, games.problem_id, problems.problem_id, title, description, language, sample_code FROM games JOIN problems ON games.problem_id = problems.problem_id @@ -461,6 +490,24 @@ func (q *Queries) GetRanking(ctx context.Context, gameID int32) ([]GetRankingRow return items, nil } +const getTestcaseByID = `-- name: GetTestcaseByID :one +SELECT testcase_id, problem_id, stdin, stdout FROM testcases +WHERE testcase_id = $1 +LIMIT 1 +` + +func (q *Queries) GetTestcaseByID(ctx context.Context, testcaseID int32) (Testcase, error) { + row := q.db.QueryRow(ctx, getTestcaseByID, testcaseID) + var i Testcase + err := row.Scan( + &i.TestcaseID, + &i.ProblemID, + &i.Stdin, + &i.Stdout, + ) + return i, err +} + const getUserAuthByUsername = `-- name: GetUserAuthByUsername :one SELECT users.user_id, username, display_name, icon_path, is_admin, label, created_at, user_auth_id, user_auths.user_id, auth_type, password_hash FROM users JOIN user_auths ON users.user_id = user_auths.user_id @@ -759,6 +806,36 @@ func (q *Queries) ListSubmissionIDs(ctx context.Context) ([]int32, error) { return items, nil } +const listTestcases = `-- name: ListTestcases :many +SELECT testcase_id, problem_id, stdin, stdout FROM testcases +ORDER BY testcase_id +` + +func (q *Queries) ListTestcases(ctx context.Context) ([]Testcase, error) { + rows, err := q.db.Query(ctx, listTestcases) + if err != nil { + return nil, err + } + defer rows.Close() + var items []Testcase + for rows.Next() { + var i Testcase + if err := rows.Scan( + &i.TestcaseID, + &i.ProblemID, + &i.Stdin, + &i.Stdout, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const listTestcasesByGameID = `-- name: ListTestcasesByGameID :many SELECT testcase_id, problem_id, stdin, stdout FROM testcases WHERE testcases.problem_id = (SELECT problem_id FROM games WHERE game_id = $1) @@ -790,6 +867,37 @@ func (q *Queries) ListTestcasesByGameID(ctx context.Context, gameID int32) ([]Te return items, nil } +const listTestcasesByProblemID = `-- name: ListTestcasesByProblemID :many +SELECT testcase_id, problem_id, stdin, stdout FROM testcases +WHERE problem_id = $1 +ORDER BY testcase_id +` + +func (q *Queries) ListTestcasesByProblemID(ctx context.Context, problemID int32) ([]Testcase, error) { + rows, err := q.db.Query(ctx, listTestcasesByProblemID, problemID) + if err != nil { + return nil, err + } + defer rows.Close() + var items []Testcase + for rows.Next() { + var i Testcase + if err := rows.Scan( + &i.TestcaseID, + &i.ProblemID, + &i.Stdin, + &i.Stdout, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const listUsers = `-- name: ListUsers :many SELECT user_id, username, display_name, icon_path, is_admin, label, created_at FROM users ORDER BY users.user_id @@ -1015,6 +1123,32 @@ func (q *Queries) UpdateSubmissionStatus(ctx context.Context, arg UpdateSubmissi return err } +const updateTestcase = `-- name: UpdateTestcase :exec +UPDATE testcases +SET + problem_id = $2, + stdin = $3, + stdout = $4 +WHERE testcase_id = $1 +` + +type UpdateTestcaseParams struct { + TestcaseID int32 + ProblemID int32 + Stdin string + Stdout string +} + +func (q *Queries) UpdateTestcase(ctx context.Context, arg UpdateTestcaseParams) error { + _, err := q.db.Exec(ctx, updateTestcase, + arg.TestcaseID, + arg.ProblemID, + arg.Stdin, + arg.Stdout, + ) + return err +} + const updateUser = `-- name: UpdateUser :exec UPDATE users SET |
