feat: add api routers for updating people
- put /people/{people_id}
This commit is contained in:
@@ -40,6 +40,18 @@ class PeopleService:
|
|||||||
self.rldb.delete(people_orm)
|
self.rldb.delete(people_orm)
|
||||||
return error(0, "")
|
return error(0, "")
|
||||||
|
|
||||||
|
def get(self, people_id: str) -> (People, error):
|
||||||
|
"""
|
||||||
|
从数据库获取人物
|
||||||
|
|
||||||
|
:param people_id: 人物ID
|
||||||
|
:return: 人物对象
|
||||||
|
"""
|
||||||
|
people_orm = self.rldb.get(PeopleRLDBModel, people_id)
|
||||||
|
if not people_orm:
|
||||||
|
return None, error(1, f"people {people_id} not found")
|
||||||
|
return People.from_rldb_model(people_orm), error(0, "")
|
||||||
|
|
||||||
def list(self, conds: dict = {}, limit: int = 10, offset: int = 0) -> (list[People], error):
|
def list(self, conds: dict = {}, limit: int = 10, offset: int = 0) -> (list[People], error):
|
||||||
"""
|
"""
|
||||||
从数据库列出人物
|
从数据库列出人物
|
||||||
|
|||||||
@@ -88,6 +88,28 @@ async def post_people(post_people_request: PostPeopleRequest):
|
|||||||
return BaseResponse(error_code=error.code, error_info=error.info)
|
return BaseResponse(error_code=error.code, error_info=error.info)
|
||||||
return BaseResponse(error_code=0, error_info="success", data=people.id)
|
return BaseResponse(error_code=0, error_info="success", data=people.id)
|
||||||
|
|
||||||
|
@api.put("/people/{people_id}")
|
||||||
|
async def update_people(people_id: str, post_people_request: PostPeopleRequest):
|
||||||
|
logging.debug(f"post_people_request: {post_people_request}")
|
||||||
|
people = People.from_dict(post_people_request.people)
|
||||||
|
people.id = people_id
|
||||||
|
service = get_people_service()
|
||||||
|
res, error = service.get(people_id)
|
||||||
|
if not error.success or not res:
|
||||||
|
return BaseResponse(error_code=error.code, error_info=error.info)
|
||||||
|
_, error = service.save(people)
|
||||||
|
if not error.success:
|
||||||
|
return BaseResponse(error_code=error.code, error_info=error.info)
|
||||||
|
return BaseResponse(error_code=0, error_info="success")
|
||||||
|
|
||||||
|
@api.delete("/people/{people_id}")
|
||||||
|
async def delete_people(people_id: str):
|
||||||
|
service = get_people_service()
|
||||||
|
error = service.delete(people_id)
|
||||||
|
if not error.success:
|
||||||
|
return BaseResponse(error_code=error.code, error_info=error.info)
|
||||||
|
return BaseResponse(error_code=0, error_info="success")
|
||||||
|
|
||||||
class GetPeopleRequest(BaseModel):
|
class GetPeopleRequest(BaseModel):
|
||||||
query: Optional[str] = None
|
query: Optional[str] = None
|
||||||
conds: Optional[dict] = None
|
conds: Optional[dict] = None
|
||||||
@@ -128,10 +150,3 @@ async def get_peoples(
|
|||||||
peoples = [people.to_dict() for people in results]
|
peoples = [people.to_dict() for people in results]
|
||||||
return BaseResponse(error_code=0, error_info="success", data=peoples)
|
return BaseResponse(error_code=0, error_info="success", data=peoples)
|
||||||
|
|
||||||
@api.delete("/people/{people_id}")
|
|
||||||
async def delete_people(people_id: str):
|
|
||||||
service = get_people_service()
|
|
||||||
error = service.delete(people_id)
|
|
||||||
if not error.success:
|
|
||||||
return BaseResponse(error_code=error.code, error_info=error.info)
|
|
||||||
return BaseResponse(error_code=0, error_info="success")
|
|
||||||
Reference in New Issue
Block a user