Skip to content

feat: paginate contest tasks, add search, creator info, and schedule editing - #240

Merged
HermanPlay merged 1 commit into
masterfrom
feat/contest-tasks-pagination
Aug 12, 2026
Merged

HermanPlay merged 1 commit into
masterfrom
feat/contest-tasks-pagination

Conversation

@HermanPlay

Copy link
Copy Markdown
Member

Summary

Improves the contest task management endpoints so the frontend can render full-width, paginated task tables with search and inline schedule editing.

Changes

  • Pagination: GET /contests/{id}/tasks and GET /contests/{id}/tasks/assignable-tasks now return PaginatedResult (limit/offset/sort). Added tasks sort by id, start_at, end_at, title (join-qualified); assignable by id, title, created_at.
  • Search: both endpoints accept a search query param (title ILIKE, case-insensitive).
  • Creator info: schemas.Task gains creatorName (always serialized); populated in TaskToSchema, TaskWithAttempts, and assignable-tasks mapping via Author preload.
  • Schedule editing: new PUT /contests/{id}/tasks/{task_id} with UpdateTaskInContest schema (startAt/endAt only; task id from path). Validates task membership and start<=end.
  • Mocks regenerated; swagger annotations updated.

Verification

  • go build ./..., go vet ./..., go test ./... pass
  • pre-commit hooks (golangci-lint, unit tests, swagger validity) pass

…editing

- paginate /contests/{id}/tasks and /tasks/assignable-tasks
- add search param (title ILIKE) to both endpoints
- include creatorName in task payloads
- add PUT /contests/{id}/tasks/{task_id} to update task schedule
@HermanPlay
HermanPlay requested a review from a team as a code owner August 12, 2026 08:39
@HermanPlay
HermanPlay merged commit bc196b6 into master Aug 12, 2026
6 checks passed
@HermanPlay
HermanPlay deleted the feat/contest-tasks-pagination branch August 12, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant