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
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
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
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
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
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