aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/db
diff options
context:
space:
mode:
Diffstat (limited to 'backend/db')
-rw-r--r--backend/db/querier.go1
-rw-r--r--backend/db/query.sql.go39
2 files changed, 40 insertions, 0 deletions
diff --git a/backend/db/querier.go b/backend/db/querier.go
index 220a86c..692ea0d 100644
--- a/backend/db/querier.go
+++ b/backend/db/querier.go
@@ -37,6 +37,7 @@ type Querier interface {
GetRanking(ctx context.Context, gameID int32) ([]GetRankingRow, error)
GetSubmissionByID(ctx context.Context, submissionID int32) (Submission, error)
GetSubmissionsByGameID(ctx context.Context, gameID int32) ([]Submission, error)
+ GetSubmissionsByGameIDAndUserID(ctx context.Context, arg GetSubmissionsByGameIDAndUserIDParams) ([]Submission, error)
GetTestcaseByID(ctx context.Context, testcaseID int32) (Testcase, error)
GetTestcaseResultsBySubmissionID(ctx context.Context, submissionID int32) ([]TestcaseResult, error)
GetTournamentByID(ctx context.Context, tournamentID int32) (Tournament, error)
diff --git a/backend/db/query.sql.go b/backend/db/query.sql.go
index 02f1abf..80cbc16 100644
--- a/backend/db/query.sql.go
+++ b/backend/db/query.sql.go
@@ -705,6 +705,45 @@ func (q *Queries) GetSubmissionsByGameID(ctx context.Context, gameID int32) ([]S
return items, nil
}
+const getSubmissionsByGameIDAndUserID = `-- name: GetSubmissionsByGameIDAndUserID :many
+SELECT submission_id, game_id, user_id, code, code_size, status, created_at FROM submissions
+WHERE game_id = $1 AND user_id = $2
+ORDER BY created_at DESC
+`
+
+type GetSubmissionsByGameIDAndUserIDParams struct {
+ GameID int32
+ UserID int32
+}
+
+func (q *Queries) GetSubmissionsByGameIDAndUserID(ctx context.Context, arg GetSubmissionsByGameIDAndUserIDParams) ([]Submission, error) {
+ rows, err := q.db.Query(ctx, getSubmissionsByGameIDAndUserID, arg.GameID, arg.UserID)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []Submission
+ for rows.Next() {
+ var i Submission
+ if err := rows.Scan(
+ &i.SubmissionID,
+ &i.GameID,
+ &i.UserID,
+ &i.Code,
+ &i.CodeSize,
+ &i.Status,
+ &i.CreatedAt,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
const getTestcaseByID = `-- name: GetTestcaseByID :one
SELECT testcase_id, problem_id, stdin, stdout FROM testcases
WHERE testcase_id = $1