예제 #1
0
    def put(self, id):
        target = PlaceModel.find(id)
        if not target:
            response = {
                'error': "Given ID doesn't match any place in the database"
            }
            # not found
            return make_response(response, 404)
        request_dict = request.get_json()
        if not request_dict:
            response = {'error': 'No input data provided'}
            return make_response(response, 400)  # bad request
        errors = schema.validate(request_dict)
        if errors:
            return make_response(errors, 400)  # bad request

        try:
            place = PlaceModel(request_dict['nome'],
                               request_dict['endereco'],
                               id=id)
            target.delete()
            place.save()
            return self.get(id)
        except SQLAlchemyError as e:
            db.session.rollback()
            resp = jsonify({'error': str(e)})
            return make_response(resp, 500)  # internal server error
예제 #2
0
 def get(self, name):
     place = PlaceModel.find_by_name(name)
     if place:
         return place.json()
     return {
         'message':
         "The Petasos Location '{}' was not found on the Hermes-Venus database"
         .format(name)
     }, 404
예제 #3
0
 def delete(self, id):
     place = PlaceModel.find(id)
     if place:
         try:
             place.delete()
         except Exception as e:
             print(e)
             return {'message': 'An error ocurred trying to delete.'},
         return {'message': 'place deleted.'}, 204  # not found
     return {'message': 'place not found'}, 404
예제 #4
0
    def delete(self, name):
        place = PlaceModel.find_by_name(name)
        if place:
            place.delete_from_db()

        return {
            'message':
            "The Petasos Location '{}' was successfully deleted from the Hermes-Venus"
            .format(name)
        }
예제 #5
0
 def post(self):
     request_dict = request.get_json()
     if not request_dict:
         response = {'places': 'No inpput data provided'}
         return make_response(response, 400)
     errors = schema.validate(request_dict)
     if errors:
         return make_response(errors, 400)  # bad request
     try:
         place = PlaceModel(
             request_dict['nome'],
             request_dict['endereco'],
         )
         place.save()
         query = PlaceModel.find(place.id)
         result = schema.dump(query)
         return make_response(jsonify(result), 201)  # created
     except SQLAlchemyError as e:
         db.session.rollback()
         resp = jsonify({'error': str(e)})
         return make_response(resp, 500)
예제 #6
0
    def put(self, name):
        data = Place.parser.parse_args()

        place = PlaceModel.find_by_name(name)

        if place is None:
            place = PlaceModel(name, **data)
        else:
            place.desc_sv = data['desc_sv']

        place.save_to_db()
        return place.json()
예제 #7
0
    def post(self, name):
        if PlaceModel.find_by_name(name):
            return {
                'message':
                "A place with name '{}' already exists.".format(name)
            }, 400

        data = Place.parser.parse_args()
        place = PlaceModel(name, **data)

        try:
            place.save_to_db()
        except:
            return {'message': 'An error occured inserting the place'}, 500

        return place.json(), 201
예제 #8
0
    def post(self, name):
        if PlaceModel.find_by_name(name):
            return {
                'message':
                "A Petasos Location with the name '{}' already exists on the Hermes-Venus database."
                .format(name)
            }, 400

        data = Place.parser.parse_args()
        place = PlaceModel(name, data['bannerimg_url'], data['abouttext'],
                           data['website_url'], data['phone_number'],
                           data['email_address'], data['placetype'],
                           data['destination_id'], data['destination_name'])

        try:
            place.save_to_db()
        except:
            return {
                "message":
                "An Error occured uploading the Petasos Location with the name '{name}' and '{destination_id}' into the Hermes-Venus database"
                .format(name, data['destination_id'])
            }, 500

        return place.json(), 201
예제 #9
0
 def delete(self, name):
     place = PlaceModel.find_by_name(place)
     if place:
         place.delete_from_db()
예제 #10
0
 def get(self, name):
     place = PlaceModel.find_by_name(name)
     if place:
         return place.json()
     return {'message': 'Place not found'}, 404
예제 #11
0
 def get(self, id):
     place = PlaceModel.find(id)
     if place:
         return schema.dump(place)
     return {'message': 'place not found'}, 404  # not found
예제 #12
0
    def put(self, name):
        data = Place.parser.parse_args()
        place = PlaceModel.find_by_name(name)

        if place is None:
            place = PlaceModel(name, data['bannerimg_url'], data['abouttext'],
                               data['website_url'], data['phone_number'],
                               data['email_address'], data['placetype'],
                               data['destination_id'],
                               data['destination_name'])
        else:
            place.bannerimg_url = data['bannerimg_url']
            place.abouttext = data['abouttext']
            place.website_url = data['website_url']
            place.phone_number = data['phone_number']
            place.email_address = data['email_address']
            place.placetype = data['placetype']
            place.destination_id = data['destination_id']
            place.destination_name = data['destination_name']

        place.save_to_db()

        return place.json()
예제 #13
0
 def get(self):
     return {'places': [place.json() for place in PlaceModel.find_all()]}