update. 完成友链以及分类接口
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
from ninja import Schema
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import Optional, List
|
||||||
|
|
||||||
|
|
||||||
|
class LinkCategorySchema(Schema):
|
||||||
|
id: int
|
||||||
|
name: str
|
||||||
|
code: str
|
||||||
|
order: int
|
||||||
|
is_active: bool
|
||||||
|
created_at: Optional[datetime] = None
|
||||||
|
|
||||||
|
|
||||||
|
class FriendLinkSchema(Schema):
|
||||||
|
id: int
|
||||||
|
category_id: int
|
||||||
|
name: str
|
||||||
|
url: str
|
||||||
|
order: int
|
||||||
|
is_active: bool
|
||||||
|
created_at: Optional[datetime] = None
|
||||||
|
|
||||||
|
|
||||||
|
class LinkCategoryCreateSchema(Schema):
|
||||||
|
name: str
|
||||||
|
code: str
|
||||||
|
order: int = 0
|
||||||
|
is_active: bool = True
|
||||||
|
|
||||||
|
|
||||||
|
class FriendLinkCreateSchema(Schema):
|
||||||
|
category_id: int
|
||||||
|
name: str
|
||||||
|
url: str
|
||||||
|
order: int = 0
|
||||||
|
is_active: bool = True
|
||||||
+70
-7
@@ -1,15 +1,19 @@
|
|||||||
from django.shortcuts import render
|
|
||||||
from ninja import Router
|
|
||||||
from django.http import JsonResponse
|
|
||||||
from django.views.decorators.http import require_http_methods
|
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
|
||||||
from django.conf import settings
|
|
||||||
import os
|
import os
|
||||||
import uuid
|
import uuid
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from typing import Optional, List
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.http import JsonResponse
|
||||||
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
from django.views.decorators.http import require_http_methods
|
||||||
|
from ninja import Router
|
||||||
|
|
||||||
|
from base.models import FriendLink, LinkCategory
|
||||||
|
from base.schema import FriendLinkCreateSchema, FriendLinkSchema, LinkCategoryCreateSchema, LinkCategorySchema
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
router = Router(tags=['content'])
|
router = Router(tags=['base'])
|
||||||
|
|
||||||
|
|
||||||
@csrf_exempt
|
@csrf_exempt
|
||||||
@@ -43,3 +47,62 @@ def custom_upload_file(request):
|
|||||||
"url": file_url,
|
"url": file_url,
|
||||||
"default": file_url
|
"default": file_url
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# 分类 CRUD
|
||||||
|
# =========================
|
||||||
|
@router.get("/link-categories", response=List[LinkCategorySchema])
|
||||||
|
def list_categories(request):
|
||||||
|
return LinkCategory.objects.all()
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/link-categories", response=LinkCategorySchema)
|
||||||
|
def create_category(request, data: LinkCategoryCreateSchema):
|
||||||
|
return LinkCategory.objects.create(**data.dict())
|
||||||
|
|
||||||
|
|
||||||
|
@router.put("/link-categories/{id}", response=LinkCategorySchema)
|
||||||
|
def update_category(request, id: int, data: LinkCategoryCreateSchema):
|
||||||
|
obj = LinkCategory.objects.get(id=id)
|
||||||
|
for k, v in data.dict().items():
|
||||||
|
setattr(obj, k, v)
|
||||||
|
obj.save()
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
|
@router.delete("/link-categories/{id}")
|
||||||
|
def delete_category(request, id: int):
|
||||||
|
LinkCategory.objects.get(id=id).delete()
|
||||||
|
return {"success": True}
|
||||||
|
|
||||||
|
|
||||||
|
# =========================
|
||||||
|
# 友情链接 CRUD
|
||||||
|
# =========================
|
||||||
|
@router.get("/friend-links", response=List[FriendLinkSchema])
|
||||||
|
def list_links(request, category_id: Optional[int] = None):
|
||||||
|
query = FriendLink.objects.all()
|
||||||
|
if category_id:
|
||||||
|
query = query.filter(category_id=category_id)
|
||||||
|
return query
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/friend-links", response=FriendLinkSchema)
|
||||||
|
def create_link(request, data: FriendLinkCreateSchema):
|
||||||
|
return FriendLink.objects.create(**data.dict())
|
||||||
|
|
||||||
|
|
||||||
|
@router.put("/friend-links/{id}", response=FriendLinkSchema)
|
||||||
|
def update_link(request, id: int, data: FriendLinkCreateSchema):
|
||||||
|
obj = FriendLink.objects.get(id=id)
|
||||||
|
for k, v in data.dict().items():
|
||||||
|
setattr(obj, k, v)
|
||||||
|
obj.save()
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
|
@router.delete("/friend-links/{id}")
|
||||||
|
def delete_link(request, id: int):
|
||||||
|
FriendLink.objects.get(id=id).delete()
|
||||||
|
return {"success": True}
|
||||||
|
|||||||
Reference in New Issue
Block a user