def post(self): item = request.get_json() if request.get_json() else request.form try: if item: insert_into_proposal(item['proposal']) proposal = ProposalModel.get_by_number( item['proposal']['number']) model = PetModel() model.name = item['name'] model.species = item['species'] model.breed = item['breed'] model.size = item['size'] model.weight = item['weight'] model.insured_id = item['insured_id'] model.proposal_id = proposal.id model.created_date = date.today() model.save() return 'created', 201 else: proposal.delete() return 'not created, invalid payload', 400 except Exception as e: return f"{e}", 500
def delete(self,id): try: proposal = ProposalModel.get_by_id(id) proposal.delete() return 'No Content', 204 except Exception as e: return f"{e}", 500
def _list_proposal(self): proposal = ProposalModel.list_all() return list(map(lambda proposal:{ 'id':proposal.id, 'number':proposal.number, 'status':proposal.status },proposal))
def _get_proposal(self, id): proposal = ProposalModel.get_by_id(id) if proposal is None: return {'message': 'Proposal not found'}, 404 return { 'id':proposal.id, 'number':proposal.number, 'status':proposal.status, 'created_date':proposal.created_date.strftime("%d/%m/%Y"), 'pet':select_pet_by_proposal_id(id)['pet'], 'plan_proposal':select_pet_by_proposal_id(id)['proposal_details']['plan_proposal'] }
def insert_into_proposal(item): try: if item: model = ProposalModel() model.number = item['number'] model.plan_proposal_id = item['plan_proposal_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_pet_by_proposal(proposal_number): proposal = ProposalModel.get_by_number(proposal_number) emergency = EmergencyPetModel.get_by_proposal(proposal.id) pet = PetModel.get_by_proposal(emergency.proposal_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': pet.id, 'name': pet.name, 'species': pet.species, 'breed': pet.breed, 'size': pet.size, 'weight': pet.weight, 'proposal': { 'id': proposal.id, 'number': proposal.number, 'status': proposal.status, 'created_date': proposal.created_date.strftime("%d/%m/%Y"), 'plan': select_plan_proposal_by_id(proposal.plan_proposal_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 = ProposalModel() model.number = item['number'] model.plan_proposal_id = item['plan_proposal_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 select_pet_by_proposal_id(proposal_id): try: pet = PetModel.get_by_proposal(proposal_id) proposal = ProposalModel.get_by_id(proposal_id) plan = PlanProposalModel.get_by_id(proposal.plan_proposal_id) insured = InsuredModel.get_by_id(pet.insured_id) if pet is None: return {'success': False, 'message': 'Insured not found'} else: return { 'pet': { 'id': pet.id, 'name': pet.name, 'species': pet.species, 'breed': pet.breed, 'size': pet.size, 'weight': pet.weight }, 'proposal_details': { 'id': proposal.id, 'number': proposal.number, 'status': proposal.status, 'created_date': proposal.created_date.strftime("%d/%m/%Y"), 'plan_proposal': { 'id': plan.id, 'name': plan.name, 'desc': plan.desc, 'status': plan.status, 'created_date': plan.created_date.strftime("%d/%m/%Y") } }, 'owner': { 'name': f'{insured.first_name} {insured.last_name}', 'details': f'http://127.0.0.1:8080/api/user/{insured.user_id}' } } except Exception as e: return {"succes": False, "message": f'{e} invalid payload'}
def put(self, id): item = request.get_json() if request.get_json() else request.form try: if item: model = ProposalModel.get_by_id(id) if 'number' in item: model.number = item['number'] if 'plan_proposal_id' in item: model.plan_proposal_id = item['plan_proposal_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