feat: added achievements

This commit is contained in:
Андрей Сумин
2025-03-03 01:54:20 +03:00
parent 0b032100f8
commit ab90d362a2
26 changed files with 163 additions and 37 deletions
+13 -2
View File
@@ -1,6 +1,7 @@
from ninja import ModelSchema
from ninja import ModelSchema, Schema
from pydantic import Field
from apps.achievement.models import Achievement
from apps.achievement.models import Achievement, UserAchievement
class AchievementSchema(ModelSchema):
@@ -12,3 +13,13 @@ class AchievementSchema(ModelSchema):
"description",
"icon",
)
class UserAchievementSchema(Schema):
name: str = Field(..., alias="achievement.name")
description: str = Field(..., alias="achievement.description")
icon: str = Field(..., alias="achievement.icon")
class Meta:
model = UserAchievement
fields = ("received_at",)
+3 -2
View File
@@ -6,15 +6,16 @@ from api.v1.achievement.schemas import AchievementSchema
from api.v1.schemas import UnauthorizedError
from apps.achievement.models import Achievement
router = Router()
router = Router(tags=["achievement"])
@router.get(
"",
"all",
response={
status.OK: list[AchievementSchema],
status.UNAUTHORIZED: UnauthorizedError,
},
auth=None,
)
def get_all_achievements(request):
return Achievement.objects.all()