Пример #1
0
    def post(self):

        parser = reqparse.RequestParser(
        )  # create parameters parser from request

        # define al input parameters need and its type
        parser.add_argument('name',
                            type=str,
                            required=True,
                            help="This field cannot be left blank")
        parser.add_argument('place', type=str)
        parser.add_argument('city', type=str)
        parser.add_argument('date', type=str)
        parser.add_argument('price', type=int)
        parser.add_argument('total_available_tickets', type=int)

        data = parser.parse_args()

        for event in EventModel.query.all():
            if (data['name'] == event.name):
                return {
                    'message': 'Event {} already exists'.format(event.name)
                }, 404

        new_event = EventModel(data['name'], data['place'], data['city'],
                               data['date'], data['price'],
                               data['total_available_tickets'])

        new_event.save_to_db()

        return new_event.json(), 200
Пример #2
0
    def post(self, name):
        """adds a new event"""
        data = Event.parser.parse_args()
        if EventModel.find_event_by_name(name):
            return {
                "message":
                "An event with name '{}' already exists. Please try to use another name"
                .format(name)
            }, 400
        if not LocationModel.find_location_by_id(data["location_id"]):
            return {
                "message": "Location_id not valid".format(data["location_id"])
            }, 400
        if not OrganizerModel.find_organizer_by_id(data["organizer_id"]):
            return {
                "message": "Holder_id not valid".format(data["holder_id"])
            }, 400

        event = EventModel(name, **data)
        try:
            event.save_to_db()
        except Exception as e:
            return {
                "message": "An error ocurred inserting the event: {}".format(e)
            }, 500
        return {"event_result": event.json()}, 201
Пример #3
0
    def put(self, id):
        data = Event.parser.parse_args()
        data.start_time = datetime.datetime.strptime(
            data.start_time, '%Y-%m-%d %H:%M:%S')
        data.end_time = datetime.datetime.strptime(
            data.end_time, '%Y-%m-%d %H:%M:%S')
        data.event_date = datetime.datetime.strptime(
            data.event_date, '%Y-%m-%d %H:%M:%S')

        event = EventModel.find_by_id(id)

        if event is None:
            event = EventModel(**data)
        else:
            event.name = data['name'] or event.name
            event.category = data['category'] or event.category
            event.location = data['location'] or event.location
            event.start_time = data['start_time'] or event.start_time
            event.end_time = data['end_time'] or event.end_time
            event.event_date = data['event_date'] or event.event_date
            event.owner = data['owner'] or event.owner
            event.status = data['status'] or event.status
            event.quota = data['quota'] or event.quota
            event.price = data['price'] or event.price

        event.save_to_db()
        return event.json()
Пример #4
0
    def post(self, group_id):
        data = Event.parser.parse_args()

        event = EventModel(data['name'], data['description'], data['location'],
                           data['date_time'], data['is_private'], group_id)

        event.save_to_db()

        return event.json(), 201
    def post(self, id):
        data = self.parser.parse_args()
        event = EventModel(data.name, data.startdate, data.enddate, data.org,
                           data.place, get_jwt_identity())
        try:
            event.save_to_db()
        except:
            return {"message": "An error occurred creating the event."}, 500

        return event.json(), 201
Пример #6
0
    def put(self, id):
        data = self.parser()
        with lock.lock:
            event = EventModel.find_by_id(id)

            if id and EventModel.find_by_id(id):
                event.delete_from_db()
                event = EventModel(data['name'], data['place'], data['city'],
                                   data['date'], data['price'],
                                   data['available_tickets'])
                event.save_to_db()
                return {'message': "Success, event added"}, 201
            else:
                return {'message': "Not found"}, 404
Пример #7
0
    def post(self):

        parser = reqparse.RequestParser(
        )  # create parameters parser from request
        # define al input parameters need and its type
        parser.add_argument(n.NM,
                            type=str,
                            required=True,
                            help="Name of the event")
        parser.add_argument(n.PLC,
                            type=str,
                            required=True,
                            help="Place or area where the event takes place")
        parser.add_argument(n.CTY,
                            type=str,
                            required=True,
                            help="City that holds the event")
        parser.add_argument(n.DATE,
                            type=str,
                            required=True,
                            help="Date when the event takes place")
        parser.add_argument(n.PRC,
                            type=int,
                            required=True,
                            help="Weighted average price of the event")
        parser.add_argument(n.TAT,
                            type=int,
                            required=True,
                            help="Number of people that can attend the event")
        data = parser.parse_args()

        with lock.lock:
            if EventModel.find_by_uniqueness(data[n.NM], data[n.DATE],
                                             data[n.CTY]):
                return {n.MSG: "Event already in the data base"}, 409

            if data[n.PRC] < 0:
                return {n.MSG: "Negative price not allowed"}, 400

            if data[n.TAT] < 0:
                return {n.MSG: "Negative number of tickets not possible"}, 400

            try:
                new_event = EventModel(data[n.NM], data[n.PLC], data[n.CTY],
                                       data[n.DATE], data[n.PRC], data[n.TAT])
                new_event.save_to_db()
                return new_event.json(), 201
            except:
                return {n.MSG: "Error Description"}, 500
Пример #8
0
    def post(self, name):
        args = Event.parser1.parse_args()
        if EventModel.find_by_name(name):
            return {
                'message':
                "A event with name '{}' already exists.".format(name)
            }, 400

        event = EventModel(name, **args)
        try:
            event.save_to_db()
        except:
            return {
                'message': 'An error occurred while creating the event.'
            }, 500

        return event.json(), 201
Пример #9
0
    def post(self, id=None):
        data = self.parser()
        with lock.lock:
            if id and EventModel.find_by_id(id):
                return {
                    'message': "Event with id [{}] already exists".format(id)
                }, 404
            else:
                event = EventModel(data['name'], data['place'], data['city'],
                                   data['date'], data['price'],
                                   data['available_tickets'])
                print(event)
                try:
                    event.save_to_db()
                except Exception as e:
                    print(e)
                    return {"message": 'error'}, 500

                return event.json(), 201
    def put(self, id):
        data = self.parser.parse_args()

        event = EventModel.find_by_id(id)
        if event:
            try:
                event.update(data.name, data.startdate, data.enddate, data.org,
                             data.place, get_jwt_identity())
            except:
                return {"message": "Non autorizzato"}, 403
        else:
            event = EventModel(data.name, data.startdate, data.enddate,
                               data.org, data.place, get_jwt_identity())
        try:
            event.save_to_db()
        except:
            return {"message": "An error occurred creating the event."}, 500

        return event.json(), 201
Пример #11
0
    def post(self):
        data = EventPost.parser.parse_args()
        data.start_time = datetime.datetime.strptime(
            data.start_time, '%Y-%m-%d %H:%M:%S')
        data.end_time = datetime.datetime.strptime(
            data.end_time, '%Y-%m-%d %H:%M:%S')
        data.event_date = datetime.datetime.strptime(
            data.event_date, '%Y-%m-%d %H:%M:%S')

        event = EventModel(**data)

        try:
            event.save_to_db()

        except Exception as e:
            print('Err: ' + str(e))
            return {'message': 'An error occured inserting the event'}, 500

        return event.json(), 201
Пример #12
0
    def put(self, event_id):
        data = Event.parser.parse_args()

        event = EventModel.find_by_id(event_id)

        if event is None:
            event = EventModel(data['name'], data['description'],
                               data['location'], data['date_time'],
                               data['is_private'], group_id)
        else:
            event.name = data['name']
            event.description = data['description']
            event.location = data['location']
            event.date_time = datetime.strptime(data['date_time'],
                                                '%Y/%m/%d %H:%M')
            event.is_private = data['is_private']

        event.save_to_db()

        return event.json(), 200
Пример #13
0
    def post(cls):
        parser = reqparse.RequestParser()
        parser.add_argument('name', type=str, required=True)
        parser.add_argument('description', type=str, required=False)
        parser.add_argument('start_date', type=datetime.fromisoformat, required=True)
        parser.add_argument('end_date', type=datetime.fromisoformat, required=True)
        parser.add_argument('duration_time', type=int, required=False)
        parser.add_argument('image_url', type=str, required=False)
        data = parser.parse_args()

        current_userid = get_jwt_identity()
        current_user = UserModel.find_by_id(current_userid)

        if not current_user:
            return {"status": Status.USER_NOT_FOUND, "message": "User not found"}, 403

        start_date: datetime = data['start_date']
        end_date: datetime = data['end_date']
        if start_date > end_date:
            return {"status": Status.INVALID_DATA, "message": "End_date cannot be before start_date"}, 403

        duration_time = data['duration_time']
        if duration_time and duration_time < 0:
            return {"status": Status.INVALID_DATA, "message": "Duration_time cannot be less than 0"}, 403

        event = EventModel(name=data['name'], description=data['description'], start_date=start_date, end_date=end_date, image_url=data['image_url'],
                           duration_time=duration_time)

        admin_participant = ParticipantModel(user_id=current_user.id, role=Role.ADMIN)
        event.participants.append(admin_participant)

        event.invitation_link = str(uuid.uuid4())

        event.save_to_db()

        return {"status": Status.SUCCESS,
                "message": "Event created successfully",
                "event": event.json()
                }, 201