def insert_into_insured(item, user): try: if item: # cria a apolice no banco e busca seu id insert_into_policy(item['policy']) policy = PolicyModel.get_by_number(item['policy']['number']) insured_validate(item) insured = InsuredModel() insured.first_name = item['first_name'] insured.last_name = item['last_name'] insured.cpf = item['cpf'] insured.password = item['password'] insured.user_id = user.id insured.policy_id = policy.id insured.save() return {"succes": True, "message": 'Insured created'} else: user.delete() policy.delete() return { "succes": False, "message": 'Not created insured, invalid payload' } except Exception as e: user.delete() return { "succes": False, "message": f'{e} invalid payload', 'type_error': 'insured/utils' }
def select_insured_by_user_id(user_id): try: # phone = PhoneModel.get_by_user_id(user_id) insured = InsuredModel.get_by_user_id(user_id) insured_policy = PolicyModel.get_by_id(insured.policy_id) policy = { 'id': insured_policy.id, 'number': insured_policy.number, 'status': insured_policy.status, 'created_date': insured_policy.created_date.strftime("%d/%m/%Y"), 'plan': select_plan_policy_by_id(insured_policy.plan_policy_id) } if insured is None: return {'success': False, 'message': 'Insured not found'} else: return { 'id': insured.id, 'first_name': insured.first_name, 'last_name': insured.last_name, 'cpf': insured.cpf, 'phone': select_phone_by_user_id(user_id), 'policy': policy } except Exception as e: return {"succes": False, "message": f'{e} invalid payload'}
def delete(self,id): try: policy = PolicyModel.get_by_id(id) policy.delete() return 'No Content', 204 except Exception as e: return f"{e}", 500
def post(self): parser = reqparse.RequestParser() parser.add_argument('policy_name', type=str, required=True, help='policy name required') parser.add_argument('customer_id', type=str, required=True, help='customer id required') parser.add_argument('expiry_date', type=str, required=True, help='expiry date required') parser.add_argument('payment_status', type=str, required=True, help='payment status required') parser.add_argument('payment_due_date', type=str, required=True, help='payment due date required') parser.add_argument('due_amount', type=str, required=True, help='due amount required') parser.add_argument('policy_value', type=str, required=True, help='policy value required') data = parser.parse_args() d, m, y = data['payment_due_date'].split('-') payment_due_date = datetime(int(y), int(m), int(d)) dd, mm, yy = data['expiry_date'].split('-') print('d', d, m, y, payment_due_date) expiry_date = datetime(int(yy), int(mm), int(dd)) print('dd', dd, mm, yy, expiry_date) policy = PolicyModel(policy_name=data['policy_name'], customer_id=data['customer_id'], expiry_date=expiry_date, payment_status=data['payment_status'], payment_due_date=payment_due_date, due_amount=data['due_amount'], policy_value=data['policy_value']) policy.save_to_db() return {'policy': policy.json()}, 201
def _list_policy(self): policy = PolicyModel.list_all() return list(map(lambda policy:{ 'id':policy.id, 'number':policy.number, 'status':policy.status },policy))
def _get_policy(self, id): policy = PolicyModel.get_by_id(id) if policy is None: return {'message': 'Policy not found'}, 404 return { 'id':policy.id, 'number':policy.number, 'status':policy.status, 'created_date':policy.created_date.strftime("%d/%m/%Y"), 'owner':select_insured_by_policy_id(id), 'plan_policy':select_plan_policy_by_id(policy.plan_policy_id) }
def insert_into_policy(item): try: if item: model = PolicyModel() model.number = item['number'] model.plan_policy_id = item['plan_policy_id'] model.created_date = date.today() model.save() return 'created', 201 else: return 'not created, invalid payload', 400 except Exception as e: return f"{e}", 500
def select_emergency_insured_by_policy(policy_number): policy = PolicyModel.get_by_number(policy_number) emergency = EmergencyInsuredModel.get_by_policy(policy.id) insured = InsuredModel.get_by_policy_id(emergency.policy_id) if emergency.provider_id != 0: provider = ProviderModel.get_by_id(emergency.provider_id) provider_associated = { 'id': provider.id, 'fantasy_name': provider.fantasy_name, 'provider_details': f'http://127.0.0.1:8080/api/user/{provider.user_id}' } else: provider_associated = '' insured_pacient = { 'id': insured.id, 'first_name': insured.first_name, 'last_name': insured.last_name, 'cpf': insured.cpf, 'policy': { 'id': policy.id, 'number': policy.number, 'status': policy.status, 'created_date': policy.created_date.strftime("%d/%m/%Y"), 'plan': select_plan_policy_by_id(policy.plan_policy_id) } } return { 'id': emergency.id, 'label': emergency.label, 'call_type': emergency.call_type, 'call': emergency.call, 'latitude': emergency.latitude, 'longitude': emergency.longitude, 'status_emergency': emergency.status, 'created_date': emergency.created_date.strftime("%d/%m/%Y"), 'provider': provider_associated, 'insured_pacient': insured_pacient }
def post(self): item = request.get_json() if request.get_json() else request.form try: if item: model = PolicyModel() model.number = item['number'] model.plan_policy_id = item['plan_policy_id'] model.created_date = date.today() model.save() return 'created', 201 else: return 'not created, invalid payload', 400 except Exception as e: return f"{e}", 500
def delete_insured(id): try: insured = InsuredModel.get_by_user_id(id) policy = PolicyModel.get_by_id(insured.policy_id) pet = PetModel.get_by_insured(insured.insured_id) proposal = ProposalModel.get_by_id(pet.proposal_id) pet_schedule = PetScheduleModel.get_by_pet(pet.id) if pet_schedule: pet_schedule.delete() proposal.delete() pet.delete() policy.delete() insured.delete() return {"success": True, "message": 'insured deleted'} except Exception as e: return {"success": False, "message": f"{e}"}
def put(self, id): item = request.get_json() if request.get_json() else request.form try: if item: model = PolicyModel.get_by_id(id) if 'number' in item: model.number = item['number'] if 'plan_policy_id' in item: model.plan_policy_id = item['plan_policy_id'] if 'status' in item: model.status = item['status'] model.save() return 'edited', 200 else: return 'unedited, invalid payload', 400 except Exception as e: return f"{e}",500
def select_emergency_insured_by_id(id_emergency): emergency = EmergencyInsuredModel.get_by_id(id_emergency) provider = ProviderModel.get_by_id(emergency.provider_id) insured = InsuredModel.get_by_proposal(emergency.policy_id) policy = PolicyModel.get_by_id(emergency.policy_id) insured_pacient = { 'id': insured.id, 'first_name': insured.first_name, 'last_name': insured.last_name, 'cpf': insured.cpf, 'policy': { 'id': policy.id, 'number': policy.number, 'status': policy.status, 'created_date': policy.created_date.strftime("%d/%m/%Y"), 'plan': select_plan_policy_by_id(policy.plan_policy_id) } } provider_associated = { 'id': provider.id, 'fantasy_name': provider.fantasy_name, 'provider_details': f'http://127.0.0.1:8080/api/user/{provider.user_id}' } return { 'id': emergency.id, 'name': emergency.name, 'date': emergency.date, 'time': emergency.time, 'email': emergency.email, 'status_emergency': emergency.status, 'created_date': emergency.created_date.strftime("%d/%m/%Y"), 'provider': provider_associated, 'insured_pacient': insured_pacient }
def delete_policy(policy_name): policy = PolicyModel.find_by_policy_name(policy_name) if policy: policy.delete_to_db() return {'message': 'policy deleted.'} return {'message': 'policy not found.'}, 404
def get_years(self, duration_in_years): policy = PolicyModel.find_by_years(duration_in_years) if policy: return policy.json() return {'message': 'policy not found'}, 404
def get_type(self, policy_id): policy = PolicyModel.find_by_policy_id(policy_id) if policy: return policy.json() return {'message': 'policy not found'}, 404
def get(self, company_name): policy = PolicyModel.find_by_company_name(company_name) if policy: return policy.json() return {'message': 'policy not found'}, 404