Skip to content

Commit 3a90469

Browse files
docs: rm response_description
1 parent 2a27980 commit 3a90469

File tree

7 files changed

+91
-25
lines changed

7 files changed

+91
-25
lines changed

src/pwncore/models/ctf.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from tortoise.models import Model
66
from tortoise import fields
77
from tortoise.contrib.pydantic import pydantic_model_creator
8-
8+
from pydantic import BaseModel
99
from pwncore.models.user import Team
1010

1111
__all__ = (
@@ -19,6 +19,8 @@
1919
"BaseProblem",
2020
)
2121

22+
class Flag(BaseModel):
23+
flag: str
2224

2325
class BaseProblem(Model):
2426
name = fields.TextField()
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from pydantic import BaseModel
2+
from typing import List, Optional
3+
4+
class CTF_ErrorResponse(BaseModel):
5+
"""
6+
Error response for CTF operations
7+
- 404: ctf_not_found : 2
8+
- 403: hint_limit_reached : 9
9+
- 412: Insufficient coins : 22
10+
- 406: container_already_running : 7
11+
- 429: container_limit_reached : 8
12+
- 500: db_error : 0
13+
"""
14+
msg_code: int
15+
16+
class ContainerStartResponse(BaseModel):
17+
"""
18+
Response for container start operation
19+
msg_codes:
20+
- (success) container_start : 3
21+
"""
22+
msg_code: int
23+
ports: Optional[List[int]] = None
24+
ctf_id: Optional[int] = None
25+
26+
class ContainerStopResponse(BaseModel):
27+
"""
28+
Response for container stop operations
29+
- (success) container_stop : 4
30+
- (fail)
31+
- 404: ctf_not_found : 2
32+
- 400: container_not_found : 6
33+
- 500: db_error : 0
34+
"""
35+
msg_code: int
36+
37+
class ContainerPortsResponse(BaseModel):
38+
"""
39+
Response for all open ports of containers
40+
"""
41+
ports: dict[int, list[int]]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from pydantic import BaseModel
2+
from typing import Optional
3+
4+
class AdminBaseResponse(BaseModel):
5+
"""
6+
Generic response for admin operations
7+
"""
8+
success: bool
9+
message: Optional[str] = None

src/pwncore/models/responseModels/preEventCTF_response.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
class PreEventFlag(BaseModel):
55
"""
66
Response for pre-event flag submission
7-
tag: team tag
8-
flag: flag submitted
9-
email: email of the team
107
"""
118
tag: str
129
flag: str
@@ -16,22 +13,18 @@ class PreEventFlag(BaseModel):
1613
class CoinsQuery(BaseModel):
1714
"""
1815
Response for pre-event coins query
19-
tag: team tag
2016
"""
2117
tag: str
2218

2319
class CoinsResponse(BaseModel):
2420
"""
2521
Response for pre-event coins query
26-
coins: total coins earned by the team in pre-event CTFs
2722
"""
2823
coins: int
2924

3025
class FlagSubmissionResponse(BaseModel):
3126
"""
3227
Response for pre-event flag submission
33-
status: bool
34-
coins: total coins earned by the team in pre-event CTFs
3528
"""
3629
status: bool
3730
coins: int
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from pydantic import BaseModel
2+
import typing as t
3+
4+
5+
class UserAddBody(BaseModel):
6+
"""
7+
Request body for adding a user
8+
"""
9+
tag: str
10+
name: str
11+
email: str
12+
phone_num: str
13+
14+
15+
class UserRemoveBody(BaseModel):
16+
"""
17+
Request body for removing a user
18+
"""
19+
tag: str
20+
21+
class MemberStatusResponse(BaseModel):
22+
"""
23+
Response for user management operations in teams
24+
msg_code for response:
25+
- (success)
26+
- user_added: 18
27+
- user_removed: 19
28+
29+
- (fail)
30+
- user_already_in_team: 20
31+
- user_not_in_team : 21
32+
- db_error: 0
33+
"""
34+
msg_code: int

src/pwncore/routes/ctf/pre_event.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@
3333
@router.get(
3434
"/list",
3535
response_model=list[PreEventProblem_Pydantic],
36-
response_description="""Returns a list of all available pre-event CTF problems.
37-
Flag field is excluded from response for security.
38-
""")
36+
)
3937
async def ctf_list():
4038
problems = await PreEventProblem_Pydantic.from_queryset(PreEventProblem.all())
4139
return problems
@@ -44,9 +42,7 @@ async def ctf_list():
4442
@router.get(
4543
"/today",
4644
response_model=list[PreEventProblem_Pydantic],
47-
response_description="""Returns list of CTF problems scheduled for current date.
48-
Returns empty list if no problems are scheduled for today.
49-
""")
45+
)
5046
async def ctf_today():
5147
return await PreEventProblem_Pydantic.from_queryset(
5248
PreEventProblem().filter(date=datetime.now(_IST).date())
@@ -56,10 +52,7 @@ async def ctf_today():
5652
@router.get(
5753
"/coins/{tag}",
5854
response_model=CoinsResponse,
59-
response_description="""Get total coins earned by a user in pre-event CTFs.
60-
61-
Note: Returns msg_code : 11 if user_not_found.
62-
""")
55+
)
6356
async def coins_get(tag: str):
6457
try:
6558
return {

src/pwncore/routes/leaderboard.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ async def get_lb(self, req: Request):
6060

6161
@router.get("",
6262
response_model=list[LeaderboardEntry],
63-
response_description=u"""Returns the current CTF leaderboard sorted by total points.
64-
65-
Notes:
66-
- tpoints = sum of (problem points × penalty multiplier) + team points
67-
- Results are cached for 30 seconds
68-
- Cache is force-expired when problems are solved
69-
""")
63+
)
7064
async def fetch_leaderboard(req: Request):
7165
return Response(content=await gcache.get_lb(req), media_type="application/json")

0 commit comments

Comments
 (0)