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)
|
||||
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):
|
||||
"""
|
||||
从数据库列出人物
|
||||
|
||||
@@ -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=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):
|
||||
query: Optional[str] = None
|
||||
conds: Optional[dict] = None
|
||||
@@ -128,10 +150,3 @@ async def get_peoples(
|
||||
peoples = [people.to_dict() for people in results]
|
||||
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