def first_update(self, user, seller_edit_info, connection): """ [어드민] seller의 본인 상세 정보 수정 : 회원가입 후 첫 수정 Author : Chae hyun Kim Args: connection : 커넥션 user_id : 로그인 유저의 user_id seller_edit_info : 새로 입력될 내용들 Returns : True Note : 필수 입력란에 대한 value가 None일 경우 해당하는 error message 반환 """ seller_dao = SellerDao() if not seller_edit_info['profile']: raise ApiException(400, NOT_PROFILE) if not seller_edit_info['introduce']: raise ApiException(400, NOT_DESCRIPTION) if not seller_edit_info['callName']: raise ApiException(400, NOT_CALL_NAME) if not seller_edit_info['callStart']: raise ApiException(400, NOT_CALL_START) if not seller_edit_info['callEnd']: raise ApiException(400, NOT_CALL_END) if not seller_edit_info['postalCode']: raise ApiException(400, NOT_POSTAL) if not seller_edit_info['address']: raise ApiException(400, NOT_ADDRESS) if not seller_edit_info['detailAddress']: raise ApiException(400, NOT_DETAIL_ADDRESS) if not seller_edit_info['delivery_info']: raise ApiException(400, NOT_SHIPPING_DESCRIPTION) if not seller_edit_info['refund_info']: raise ApiException(400, NOT_ORDER_DESCRIPTION) # 선택 추가사항인 셀러의 상세소개에 대한 값이 들어왔지만 길이가 10자 미만일 경우 if seller_edit_info['description']: if len(seller_edit_info['description']) < 10: raise ApiException(400, SHORT_INPUT_SELLER) # 첫 내용 기입과 이력 생성 seller_dao.update_information(seller_edit_info, connection) seller_dao.create_seller_update_log(user, connection) # return 하기 전 manager도 생성되었는지 count로 확인 check_manager_num = seller_dao.check_seller_manager_number(user, connection) if check_manager_num['totalCount'] == 0: raise ApiException(400, NOT_MANAGER) return True
def manager_service(self, user, seller_edit_info, connection): seller_dao = SellerDao() # 키값 벨리데이션 for one_request_manager in seller_edit_info['managers']: if 'name' not in one_request_manager: raise ApiException(400, NOT_MANAGER_NAME) if 'phoneNumber' not in one_request_manager: raise ApiException(400, NOT_MANAGER_NUMBER) if 'email' not in one_request_manager: raise ApiException(400, NOT_MANAGER_EMAIL) # 중복 벨리데이션 (핸드폰 번호 중복 불허) for one_request_manager in seller_edit_info['managers']: phone = list(filter(lambda d:d['phoneNumber'] == one_request_manager['phoneNumber'], seller_edit_info['managers'])) if len(phone) > 1: raise ApiException(400, EXSISTING_MANAGER_PHONE) # 기존 매니저 리스트 db_managers = seller_dao.get_seller_manager(user, connection) # 삭제 대상 추림 => 삭제전용 메소드로 보내짐(seller_edit_delete) for row in db_managers: find_manager = list(filter(lambda x:x['id'] == row['id'], seller_edit_info['managers'])) if len(find_manager) == 0: one = { 'id' : row['id'], 'manager_id' : row['id'], 'user_id' : user['user_id'], 'changer_id' : user['changer_id'] } SellerService().seller_edit_delete(one, connection) # 수정 대상 수정 for one_request_manager in seller_edit_info['managers']: find_manager = list(filter(lambda x:x['id'] == one_request_manager['id'], db_managers)) # 기존 매니저 요청 매니저가 일치함 if len(find_manager) >= 1: one = { 'id': one_request_manager['id'], 'name': one_request_manager['name'], 'email': one_request_manager['email'], 'phoneNumber': one_request_manager['phoneNumber'], 'user_id': user['user_id'], 'changer_id' : user['changer_id'] } seller_dao.update_manager(one, connection) seller_dao.create_manager_log(one, connection) # 신규 대상을 추가 for one_request_manager in seller_edit_info['managers']: # 추가 전에 이미 soft_delete 되지 않은 manager의 수가 3 이상이면 에러 반환 check_manager_num = seller_dao.check_seller_manager_number(user, connection) if check_manager_num['totalCount'] >= 3: raise ApiException(400, MAX_LIMIT_MANAGER) # 신규는 ID가 전달 되지 않음 if one_request_manager.get('id', None) is None: one = { 'name': one_request_manager['name'], 'email': one_request_manager['email'], 'phoneNumber': one_request_manager['phoneNumber'], 'user_id': user['user_id'], 'changer_id': user['changer_id'] } one['id'] = seller_dao.insert_information_manager(one, connection) seller_dao.create_manager_log(one, connection) return True