비즈니스 로직은 컴퓨터 프로그램에서 데이터를 생성/표시/저장/변경 하는 부분을 말합니다.
현재 진행하고 있는 플라스크 인스타그램 서비스에서의 비즈니스 로직은 주로 api/resources에 정의되어 있습니다.
@classmethod
@jwt_required()
def put(cls, id):
"""
게시물의 전체 내용을 받아서 게시물을 수정
없는 리소스를 수정하려고 한다면 HTTP 404 상태 코드와 에러 메시지를,
그렇지 않은 경우라면 수정을 진행
"""
post_json = request.get_json()
# first-fail 을 위한 입력 데이터 검증
validate_result = post_schema.validate(post_json)
if validate_result:
return validate_result, 400
username = get_jwt_identity()
author_id = UserModel.find_by_username(username).id
post = PostModel.find_by_id(id)
# 게시물의 존재 여부를 먼저 체크한다.
if not post:
return {"Error": "게시물을 찾을 수 없습니다."}, 404
# 게시물의 저자와, 요청을 보낸 사용자가 같다면 수정을 진행할 수 있다.
if post.author_id == author_id:
post.update_to_db(post_json)
else:
return {"Error": "게시물은 작성자만 수정할 수 있습니다."}, 403
return post_schema.dump(post), 200
게시물 수정에는 입력한 데이터를 검증하고, 게시물 존재 여부를 체크하며 게시물의 저자 본인인지를 확인합니다.
'Python > FLASK' 카테고리의 다른 글
Flask - 인스타그램 클론코딩(댓글 수정, 삭제 구현) (0) | 2022.11.20 |
---|---|
플라스크 - WSGI? (0) | 2022.11.13 |
인스타그램 클론코딩하기 (0) | 2022.11.06 |
오류 모음집 (0) | 2022.10.09 |
직렬화/ 역직렬화 처리하기 (0) | 2022.09.12 |