refactor(tester): refactor api

This commit is contained in:
Vyacheslav1557 2025-03-29 00:33:55 +05:00
parent 9c69ced34b
commit 16781a4641

View file

@ -13,12 +13,14 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: pageSize - name: pageSize
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 10
security: security:
- bearerAuth: [ ] - bearerAuth: [ ]
responses: responses:
@ -51,6 +53,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -69,6 +72,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 3
responses: responses:
"200": "200":
description: OK description: OK
@ -84,6 +88,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 3
requestBody: requestBody:
required: true required: true
content: content:
@ -104,12 +109,14 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: pageSize - name: pageSize
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 10
security: security:
- bearerAuth: [ ] - bearerAuth: [ ]
responses: responses:
@ -142,6 +149,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -160,6 +168,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 3
responses: responses:
"200": "200":
description: OK description: OK
@ -174,6 +183,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 3
requestBody: requestBody:
required: true required: true
content: content:
@ -195,12 +205,14 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: problem_id - name: problem_id
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -220,6 +232,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -238,6 +251,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 3
responses: responses:
"200": "200":
description: OK description: OK
@ -253,18 +267,21 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: page - name: page
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: pageSize - name: pageSize
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 10
responses: responses:
"200": "200":
description: OK description: OK
@ -283,12 +300,14 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: user_id - name: user_id
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -307,6 +326,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -321,6 +341,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
requestBody: requestBody:
required: true required: true
content: content:
@ -342,12 +363,14 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: language - name: language
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
requestBody: requestBody:
required: true required: true
content: content:
@ -372,42 +395,50 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: pageSize - name: pageSize
in: query in: query
required: true required: true
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 10
- name: contest_id - name: contest_id
in: query in: query
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: participantId - name: participantId
in: query in: query
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: task_id - name: task_id
in: query in: query
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: state - name: state
in: query in: query
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: order - name: order
in: query in: query
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
- name: language - name: language
in: query in: query
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -427,6 +458,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -446,6 +478,7 @@ paths:
schema: schema:
type: integer type: integer
format: int32 format: int32
example: 1
responses: responses:
"200": "200":
description: OK description: OK
@ -455,6 +488,20 @@ paths:
$ref: '#/components/schemas/GetMonitorResponse' $ref: '#/components/schemas/GetMonitorResponse'
components: components:
schemas: schemas:
Pagination:
type: object
required:
- page
- total
properties:
page:
type: integer
format: int32
example: 1
total:
type: integer
format: int32
example: 10
Problem: Problem:
type: object type: object
required: required:
@ -481,14 +528,18 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
title: title:
type: string type: string
example: "Test problem"
time_limit: time_limit:
type: integer type: integer
format: int32 format: int32
example: 1000
memory_limit: memory_limit:
type: integer type: integer
format: int32 format: int32
example: 256
legend: legend:
type: string type: string
@ -518,7 +569,7 @@ components:
updated_at: updated_at:
type: string type: string
format: date-time format: date-time
ProblemListItem: ProblemsListItem:
type: object type: object
required: required:
- id - id
@ -549,19 +600,14 @@ components:
type: object type: object
required: required:
- problems - problems
- page - pagination
- max_page
properties: properties:
problems: problems:
type: array type: array
items: items:
$ref: '#/components/schemas/ProblemListItem' $ref: '#/components/schemas/ProblemsListItem'
page: pagination:
type: integer $ref: '#/components/schemas/Pagination'
format: int32
max_page:
type: integer
format: int32
CreateProblemResponse: CreateProblemResponse:
type: object type: object
required: required:
@ -570,6 +616,7 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
GetProblemResponse: GetProblemResponse:
type: object type: object
required: required:
@ -588,8 +635,10 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
title: title:
type: string type: string
example: "Test contest"
created_at: created_at:
type: string type: string
format: date-time format: date-time
@ -607,8 +656,10 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
title: title:
type: string type: string
example: "Test contest"
created_at: created_at:
type: string type: string
format: date-time format: date-time
@ -619,19 +670,14 @@ components:
type: object type: object
required: required:
- contests - contests
- page - pagination
- max_page
properties: properties:
contests: contests:
type: array type: array
items: items:
$ref: '#/components/schemas/ContestsListItem' $ref: '#/components/schemas/ContestsListItem'
page: pagination:
type: integer $ref: '#/components/schemas/Pagination'
format: int32
max_page:
type: integer
format: int32
CreateContestResponse: CreateContestResponse:
type: object type: object
required: required:
@ -640,6 +686,7 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
TasksListItem: TasksListItem:
type: object type: object
required: required:
@ -655,20 +702,26 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
problem_id: problem_id:
type: integer type: integer
format: int32 format: int32
example: 1
position: position:
type: integer type: integer
format: int32 format: int32
example: 1
title: title:
type: string type: string
example: "Test task"
memory_limit: memory_limit:
type: integer type: integer
format: int32 format: int32
example: 256
time_limit: time_limit:
type: integer type: integer
format: int32 format: int32
example: 1000
created_at: created_at:
type: string type: string
format: date-time format: date-time
@ -703,6 +756,7 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
AddTaskResponse: AddTaskResponse:
type: object type: object
required: required:
@ -711,6 +765,7 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
ParticipantsListItem: ParticipantsListItem:
type: object type: object
required: required:
@ -723,11 +778,14 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
name: name:
type: string type: string
example: "Test user"
user_id: user_id:
type: integer type: integer
format: int32 format: int32
example: 1
created_at: created_at:
type: string type: string
format: date-time format: date-time
@ -738,24 +796,20 @@ components:
type: object type: object
required: required:
- participants - participants
- page - pagination
- max_page
properties: properties:
participants: participants:
type: array type: array
items: items:
$ref: '#/components/schemas/ParticipantsListItem' $ref: '#/components/schemas/ParticipantsListItem'
page: pagination:
type: integer $ref: '#/components/schemas/Pagination'
format: int32
max_page:
type: integer
format: int32
UpdateProblemRequest: UpdateProblemRequest:
type: object type: object
properties: properties:
title: title:
type: string type: string
example: "Test problem"
legend: legend:
type: string type: string
input_format: input_format:
@ -769,19 +823,23 @@ components:
memory_limit: memory_limit:
type: integer type: integer
format: int32 format: int32
example: 256
time_limit: time_limit:
type: integer type: integer
format: int32 format: int32
example: 1000
UpdateContestRequest: UpdateContestRequest:
type: object type: object
properties: properties:
title: title:
type: string type: string
example: "Test contest"
UpdateParticipantRequest: UpdateParticipantRequest:
type: object type: object
properties: properties:
name: name:
type: string type: string
example: "Test user"
CreateSolutionRequest: CreateSolutionRequest:
type: object type: object
required: required:
@ -790,6 +848,7 @@ components:
solution: solution:
type: string type: string
format: binary format: binary
example: 'print("Hello, world!")'
CreateSolutionResponse: CreateSolutionResponse:
type: object type: object
required: required:
@ -798,23 +857,19 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
ListSolutionsResponse: ListSolutionsResponse:
type: object type: object
required: required:
- solutions - solutions
- page - pagination
- max_page
properties: properties:
solutions: solutions:
type: array type: array
items: items:
$ref: '#/components/schemas/SolutionsListItem' $ref: '#/components/schemas/SolutionsListItem'
page: pagination:
type: integer $ref: '#/components/schemas/Pagination'
format: int32
max_page:
type: integer
format: int32
SolutionsListItem: SolutionsListItem:
type: object type: object
required: required:
@ -833,30 +888,39 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
task_id: task_id:
type: integer type: integer
format: int32 format: int32
example: 1
contest_id: contest_id:
type: integer type: integer
format: int32 format: int32
example: 1
participant_id: participant_id:
type: integer type: integer
format: int32 format: int32
example: 1
state: state:
type: integer type: integer
format: int32 format: int32
example: 1
score: score:
type: integer type: integer
format: int32 format: int32
example: 100
penalty: penalty:
type: integer type: integer
format: int32 format: int32
example: 28
total_score: total_score:
type: integer type: integer
format: int32 format: int32
example: 100
language: language:
type: integer type: integer
format: int32 format: int32
example: 1
updated_at: updated_at:
type: string type: string
format: date-time format: date-time
@ -881,29 +945,38 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
task_id: task_id:
type: integer type: integer
format: int32 format: int32
example: 1
participant_id: participant_id:
type: integer type: integer
format: int32 format: int32
example: 1
state: state:
type: integer type: integer
format: int32 format: int32
example: 1
score: score:
type: integer type: integer
format: int32 format: int32
example: 100
penalty: penalty:
type: integer type: integer
format: int32 format: int32
example: 28
total_score: total_score:
type: integer type: integer
format: int32 format: int32
example: 100
language: language:
type: integer type: integer
format: int32 format: int32
example: 1
solution: solution:
type: string type: string
example: 'print("Hello, world!")'
updated_at: updated_at:
type: string type: string
format: date-time format: date-time
@ -938,17 +1011,22 @@ components:
id: id:
type: integer type: integer
format: int32 format: int32
example: 1
position: position:
type: integer type: integer
format: int32 format: int32
example: 1
title: title:
type: string type: string
example: "Test task"
time_limit: time_limit:
type: integer type: integer
format: int32 format: int32
example: 1000
memory_limit: memory_limit:
type: integer type: integer
format: int32 format: int32
example: 256
legend_html: legend_html:
type: string type: string
@ -972,92 +1050,85 @@ components:
required: required:
- task - task
- contest - contest
- tasks
properties: properties:
contest: contest:
type: object $ref: '#/components/schemas/Contest'
required: tasks:
- id type: array
- title items:
- tasks $ref: '#/components/schemas/TasksListItem'
properties:
id:
type: integer
format: int32
title:
type: string
tasks:
type: array
items:
$ref: '#/components/schemas/TasksListItem'
task: task:
$ref: '#/components/schemas/Task' $ref: '#/components/schemas/Task'
GetMonitorResponse: GetMonitorResponse:
type: object type: object
required: required:
- contest - contest
- tasks
- participants - participants
- summary_per_problem - summary_per_problem
properties: properties:
contest: contest:
type: object $ref: '#/components/schemas/Contest'
required: tasks:
- id type: array
- title items:
- tasks $ref: '#/components/schemas/TasksListItem'
properties:
id:
type: integer
format: int32
title:
type: string
tasks:
type: array
items:
$ref: '#/components/schemas/TasksListItem'
participants: participants:
type: array type: array
items: items:
type: object $ref: '#/components/schemas/ParticipantsStat'
required:
- id
- name
- solved_in_total
- penalty_in_total
- solutions
properties:
id:
type: integer
format: int32
name:
type: string
solved_in_total:
type: integer
format: int32
penalty_in_total:
type: integer
format: int32
solutions:
type: array
items:
$ref: '#/components/schemas/SolutionsListItem'
summary_per_problem: summary_per_problem:
type: array type: array
items: items:
type: object $ref: '#/components/schemas/ProblemStatSummary'
required: ProblemStatSummary:
- id type: object
- success required:
- total - id
properties: - success
id: - total
type: integer properties:
format: int32 id:
success: type: integer
type: integer format: int32
format: int32 example: 1
total: success:
type: integer type: integer
format: int32 format: int32
example: 14
total:
type: integer
format: int32
example: 20
ParticipantsStat:
type: object
required:
- id
- name
- solved_in_total
- penalty_in_total
- solutions
properties:
id:
type: integer
format: int32
example: 1
name:
type: string
example: "John Doe"
solved_in_total:
type: integer
format: int32
example: 3
penalty_in_total:
type: integer
format: int32
example: 144
solutions:
type: array
items:
$ref: '#/components/schemas/SolutionsListItem'
securitySchemes: securitySchemes:
bearerAuth: bearerAuth:
type: http type: http