예제 #1
0
    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
예제 #2
0
 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
예제 #3
0
    def _list_proposal(self):
        proposal = ProposalModel.list_all()
        return list(map(lambda proposal:{
            'id':proposal.id,
            'number':proposal.number,
            'status':proposal.status
            

        },proposal))
예제 #4
0
    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']
        }
예제 #5
0
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
예제 #6
0
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
    }
예제 #7
0
    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
예제 #8
0
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}"}
예제 #9
0
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'}
예제 #10
0
    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