コード例 #1
0
    def patch(self, id):
        """Update a single person using their id"""
        try:
            valid_id = is_uuid(id)
            if valid_id:
                person_data = PersonModel.find_by_id(id)
                if person_data:
                    original_data = person_data.json()
                    request_data = request.get_json()
                    schema = PersonRequestSchema()
                    proposed_modification = schema.load(request_data,
                                                        partial=True)

                    if proposed_modification and is_different(
                            proposed_modification, original_data,
                            USER_INPUT_FIELDS):
                        updated_person = PersonModel(
                            id=person_data.id,
                            first_name=proposed_modification.get('first_name')
                            or original_data.get('first_name'),
                            middle_name=proposed_modification.get(
                                'middle_name')
                            or original_data.get('middle_name'),
                            last_name=proposed_modification.get('last_name')
                            or original_data.get('last_name'),
                            age=proposed_modification.get('age')
                            or original_data.get('age'),
                            email=proposed_modification.get('email')
                            or original_data.get('email'),
                            version=original_data.get('version') + 1,
                            latest=True)
                        updated_person.save_to_db()
                        # The original person object is no longer the latest
                        person_data.latest = False
                        person_data.save_to_db()
                        return {
                            'message':
                            f"Successfully updated person with id: {id}"
                        }
                    else:
                        return {
                            'message':
                            f"No changes detected from user input versus database record"
                        }
                else:
                    return {'message': f"Resource not found"}, 404
            else:
                return {'message': f"Resource not found"}, 404
        except ValidationError as error:
            return error.messages, 400
        except Exception as error:
            print(error)
            return "Internal Server Error", 500
コード例 #2
0
 def post(self):
     data = _person_parse.parse_args()
     person = PersonModel(**data)
     person.estado = 'ACTIVO'
     person.save_to_db()
     try:
         person.save_to_db()
         return {'message': 'user created'}, 201
     except:
         return {
             "message":
             "Ocurrio un error al ingresar un dato a la base de datos."
         }, 500
コード例 #3
0
    def post(self):
        current_user = current_identity.id
        data = CreatePerson.parser.parse_args()
        person = PersonModel(name=data['name'], admin=current_user)

        if PersonModel.find_by_name(data['name']):
            return {
                'message':
                "A person with name '{}' already exists.".format(data['name'])
            }, 400

        person.save_to_db()
        return person.json(), 201
コード例 #4
0
    def put(self, id):
        data = Person.parser.parse_args()
        person = PersonModel.find_by_id(id)
        current_user = current_identity.id

        if person:
            person.name = data['name']
            person.admin = current_user
        else:
            person = PersonModel(name=data['name'], admin=current_user)

        person.save_to_db()
        return person.json(), 200
コード例 #5
0
    def post(self, name):
        if PersonModel.find_by_name(name):
            return {
                'message':
                "A person with name '{}' already exists.".format(name)
            }, 400

        current_user = current_identity.id
        person = PersonModel(name=name, admin=current_user)
        try:
            person.save_to_db()
        except:
            return {"message": "An error occurred creating the site."}, 500

        return person.json(), 201
コード例 #6
0
 def post(self):
     """Create a new person"""
     try:
         request_data = request.get_json()
         schema = PersonRequestSchema()
         new_person_request = schema.load(request_data)
         unique_id = uuid.uuid4()
         first_name = new_person_request.get('first_name')
         middle_name = new_person_request.get('middle_name')
         last_name = new_person_request.get('last_name')
         print(new_person_request)
         is_unique_name = PersonModel.is_unique(first_name, middle_name,
                                                last_name)
         if is_unique_name:
             person = PersonModel(
                 id=unique_id,
                 first_name=new_person_request.get('first_name'),
                 middle_name=new_person_request.get('middle_name'),
                 last_name=new_person_request.get('last_name'),
                 age=new_person_request.get('age'),
                 email=new_person_request.get('email'),
                 version=1,
                 latest=True)
             person.save_to_db()
             return {
                 "message": f"Person successfully created!",
                 "id": str(person.id)
             }, 201
         else:
             return {
                 "message":
                 "Resource with the specified name identifier already exists"
             }, 409
     except ValidationError as error:
         return error.messages, 400
     except Exception as error:
         print(error)
         return "Internal Server Error", 500