Skip to content

Commit bbd0fdc

Browse files
authored
Merge pull request #36 from janog-netcon/add-endpoints-for-local-problems
Add endpoints for local problems
2 parents 8cdb0ab + 009b26a commit bbd0fdc

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

vmdb-api/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (c *Controller) getAnswerID(w http.ResponseWriter, r *http.Request) {
6363
return
6464
}
6565

66-
latestAnswer, err := c.repo.findLatestUnconfirmedAnswerBy(
66+
latestAnswer, err := c.repo.findLatestAnswerFor(
6767
ctx,
6868
problemEnvironment.ProblemID.String(),
6969
problemEnvironment.TeamID.String(),
@@ -129,7 +129,7 @@ func (c *Controller) listLatestUnconfirmedAnswersForLocalProblem(w http.Response
129129
continue
130130
}
131131

132-
answers, err := c.repo.listLatestUnconfirmedAnswersFor(ctx, problem.ID)
132+
answers, err := c.repo.listLatestUnscoredAnswersFor(ctx, problem.ID)
133133
if err != nil {
134134
slog.ErrorContext(ctx, "failed to list latest unconfirmed Answers", "error", err)
135135
w.WriteHeader(http.StatusInternalServerError)

vmdb-api/repository.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,23 +61,24 @@ func (r *Repository) findProblemBy(ctx context.Context, code string) (*Problem,
6161
return &result, nil
6262
}
6363

64-
func (r *Repository) listLatestUnconfirmedAnswersFor(ctx context.Context, problemID uuid.UUID) ([]Answer, error) {
64+
func (r *Repository) listLatestUnscoredAnswersFor(ctx context.Context, problemID uuid.UUID) ([]Answer, error) {
6565
var result []Answer
66-
err := r.db.NewSelect().Model(&result).
67-
Where("confirming = ?", false).
66+
err := r.db.NewSelect().ColumnExpr("answers.*").
67+
Table("answers").
68+
Join("INNER JOIN scores").JoinOn("answers.id = scores.answer_id").
69+
Where("point IS NULL").
6870
Where("problem_id = ?", problemID).
6971
Order("created_at DESC").
70-
Scan(ctx)
72+
Scan(ctx, &result)
7173
if err != nil {
7274
return nil, err
7375
}
7476
return result, nil
7577
}
7678

77-
func (r *Repository) findLatestUnconfirmedAnswerBy(ctx context.Context, problemID, teamID string) (*Answer, error) {
79+
func (r *Repository) findLatestAnswerFor(ctx context.Context, problemID, teamID string) (*Answer, error) {
7880
var result Answer
7981
err := r.db.NewSelect().Model(&result).
80-
Where("confirming = ?", false).
8182
Where("team_id = ?", teamID).
8283
Where("problem_id = ?", problemID).
8384
Order("created_at DESC").

0 commit comments

Comments
 (0)