Ejemplo n.º 1
0
 def save(self):
     try:
         session.add(self)
         session.commit()
     except Exception:
         session.rollback()
         raise
Ejemplo n.º 2
0
def register():

    form = RegistrationForm(request.form)
    print form.validate()
    print form.errors
    if request.method == 'POST' and form.validate():
        user = User(form.username.data, form.email.data,
            form.password.data)
        session.add(user)
        try:
            session.commit()
        except IntegrityError as error:
            flash("Registration is unsucessful. A user with the same username or email address is already in use.")
            print error
            session.rollback()
            return render_template(
                'register.html',
                title="Register",
                form=form
            )
        flash("Registration is successful.")
        return redirect(url_for('login'))
    return render_template(
        'register.html',
        title="Register",
        form=form
        )
def fill_gender():
    try:
        session.add(Gender(name="Male"))
        session.add(Gender(name="Female"))
        session.commit()
    except:
        session.rollback()
Ejemplo n.º 4
0
def book_ticket(**kwargs):
    user_id = get_jwt_identity()
    now_time = datetime.now()
    train_dep_time = session.query(Schedule).get(
        kwargs.get('schedule_id')).departure_time
    late_booking_limit = train_dep_time - timedelta(days=4)
    # late_booking_limit = train_dep_time - timedelta(days=4)
    if (late_booking_limit < now_time):
        print(train_dep_time)
        print(now_time)
        return make_response(
            {'msg': 'can no longer book tickets for this train.'}, 409)
    early_booking_limit = now_time + timedelta(days=30)
    book_end_date = min(early_booking_limit, late_booking_limit)
    print(book_end_date)
    print(kwargs.get('place'))
    ticket = Ticket(user_id=user_id, book_end_date=book_end_date, **kwargs)
    try:
        session.add(ticket)
        session.commit()
    except Exception as e:
        session.rollback()
        logger.warning(f'ticket booking failed with errors: {e}')
        return {'message': str(e)}, 400
    return make_response({'msg': 'ticket succesfully booked'}, 200)
Ejemplo n.º 5
0
    def put(self, bucketlist_id, item_id):
        """ Called with a PUT request """

        bucketlist = session.query(Bucketlist).filter_by(
            id=bucketlist_id, created_by=self.current_user).first()

        if not bucketlist:
            return 'Bucketlist does not exist', 404

        request_args = self.parse_args()

        # Missing item name
        if not request_args.get('name') and not request_args.get('done'):
            return 'Item name needed', 400

        item = session.query(Item).filter_by(id=item_id,
                                             bucketlist=bucketlist).first()

        if not item:
            return 'Item does not exist', 404

        try:
            if request_args.get('name'):
                item.name = request_args.get('name')

            if request_args.get('done'):
                item.completed = request_args.get('done')

            self.save(item)
            return 'Item updated', 200

        except IntegrityError:
            session.rollback()
            return 'Item name already exists', 409
Ejemplo n.º 6
0
 def update(self, **kwargs):
     try:
         for key, value in kwargs.items():
             setattr(self, key, value)
         session.commit()
     except Exception:
         session.rollback()
         raise
Ejemplo n.º 7
0
 def get_posts(cls):
     try:
         posts: list = cls.query.all()
         session.commit()
     except Exception:
         session.rollback()
         raise
     return posts
Ejemplo n.º 8
0
 def get_comments(cls, post_id):
     try:
         comments = cls.query.filter(cls.post_id == post_id)
         session.commit()
     except Exception:
         session.rollback()
         raise
     return comments
Ejemplo n.º 9
0
    def delete(self):
        try:
            session.delete(self)
            session.commit()

        except Exception:
            session.rollback()
            raise
Ejemplo n.º 10
0
def addtodatabase(username):
    try:
        new_person = EbaySellers(username=username)
        session.add(new_person)
        session.commit()
        print("successfully committed")
    except Exception as e:
        print(str(e))
        session.rollback()
Ejemplo n.º 11
0
    def __init__(self, author_id, **kwargs):
        try:
            self.title: str = kwargs.get('title')
            self.content: str = kwargs.get('content')
            self.author_id: int = author_id
            self.publication_datetime: datetime = kwargs.get(
                'publication_datetime', datetime.datetime.now())

        except Exception as e:
            session.rollback()
            raise
Ejemplo n.º 12
0
 def addHome(self, client_id, title, value, description, telephone,
             publicationDate, zipCode, street, neighborhood, number,
             complementf, lat, lng):
     try:
         h = Homes(client_id, title, value, description, telephone,
                   publicationDate, zipCode, street, neighborhood, number,
                   complementf, lat, lng)
         session.add(h)
         session.commit()
     except:
         session.rollback()
Ejemplo n.º 13
0
    def get(cls, user):
        try:
            user: object = cls.query.filter_by(username=user.username).first()

            if not user:
                raise

        except Exception:
            session.rollback()
            raise

        return user
Ejemplo n.º 14
0
    def get(cls, post_id: int, user: object):
        try:
            post: object = cls.query.filter(
                cls.id == post_id, cls.author_id == user.username).first()

            if not post:
                raise Exception('No post with this id')

        except Exception:
            session.rollback()
            raise

        return post
Ejemplo n.º 15
0
    def get(cls, post_id, user, comment_id):
        try:
            comment = cls.query.filter(cls.post_id == post_id,
                                       cls.author_id == user.username,
                                       cls.id == comment_id).first()

            if not comment:
                raise Exception('No comment with this id')

        except Exception:
            session.rollback()
            raise

        return comment
Ejemplo n.º 16
0
    def __init__(self, **kwargs):
        try:
            user: object = User.query.filter_by(
                username=kwargs.get('username')).first()

            if user:
                raise Exception('User with this username is already exist')

            self.email: str = kwargs.get('email')
            self.username: str = kwargs.get('username')
            self.password: str = generate_password_hash(kwargs.get('password'))

        except Exception:
            session.rollback()
            raise
Ejemplo n.º 17
0
def delete_ticket(**kwargs):
    user_id = get_jwt_identity()
    try:
        role = check_access()
        ticket = session.query(Ticket).get(kwargs.get('ticket_id'))
        if ((not ticket.is_booked) & ( role == "manager")) |\
                (ticket.is_booked & ((ticket.user_id == user_id) | (role == "manager"))):
            session.delete(ticket)
            session.commit()
        else:
            return{'msg': "not allowed to delete the ticket" }, 401
    except Exception as e:
        session.rollback()
        logger.warning(
            f'user: {user_id} - failed to delete ticket: {e}')
        return {'message': str(e)}, 400
    logger.info(f'user {user_id} deleted ticket')
    return {"msg": "Successfully deleted ticket"}, 200
Ejemplo n.º 18
0
def place_ticket(**kwargs):
    if kwargs.get('buyer_email') is None:
        user_id = None
    else:
        user = session.query(User).filter(
            User.email == kwargs.get('buyer_email')).one_or_none()
        if user is None:
            return {'msg': "no user with this email"}, 400
        user_id = user.id
    ticket = Ticket(user_id=user_id, **kwargs)
    try:
        session.add(ticket)
        session.commit()
    except Exception as e:
        session.rollback()
        logger.warning(f'ticket booking failed with errors: {e}')
        return {'msg': str(e)}, 400
    return make_response({'msg': 'ticket succesfully booked'}, 200)
Ejemplo n.º 19
0
    def post(self):
        """ Called for a POST request """

        request_args = self.parse_args()

        if not request_args.get('name'):
            return 'Bucketlist name needed', 400

        try:
            new_bucketlist = Bucketlist(name=request_args.get('name'),
                                        created_by=self.current_user)
            self.save(new_bucketlist)
            return 'Bucketlist successfully created', 200

        # Raised by Database API when the unique constraint on name is violated
        except IntegrityError:
            session.rollback()
            return 'Bucketlist name already exists', 409
Ejemplo n.º 20
0
def new_item(category_name):
    '''
    GET: Display Add Form
    POST: Create New Item
    '''
    category = session.query(Category).filter_by(
        name=category_name).one_or_none()

    if request.method == 'POST':
        newItem = Item()
        if request.form['style']:
            style = request.form['style'].strip()
        if request.form['description']:
            description = request.form['description'].strip()
        try:
            newItem = Item(style=style,
                           description=description,
                           category=category,
                           user_id=login_session['user_id'])
        except UnboundLocalError:
            session.rollback()
            flash("You can not add an item without "
                  " a name and/or description.")
            return redirect(
                url_for("item.new_item", category_name=category.name))
        try:
            item = session.query(Item).filter_by(category=category,
                                                 style=style).one_or_none()
            session.add(newItem)
            session.commit()
            flash("Item '{}' Successfully Added".format(newItem.style),
                  "success")
            return redirect('/catalog')
        except exc.SQLAlchemyError:
            session.rollback()
            flash("You can not add this item since another item already "
                  " exists in the database with the same"
                  " style and category.")
            return redirect(
                url_for("item.new_item", category_name=category.name))
    else:
        return render_template('new_item.html', category=category)
Ejemplo n.º 21
0
def addcomment(sub, comment):

    try:
        if sub == 'food' or sub == 'pizza' or sub == 'sushi':
            addcomment_food = FoodStuff(comment=comment)
            session.add(addcomment_food)
            session.commit()

        elif sub == 'funny':
            addcomment_funny = FunnyStuff(comment=comment)
            session.add(addcomment_funny)
            session.commit()
        else:
            pass
    except Exception as e:
        print("Error")
        print(str(e))
        print("")
        session.rollback()
        pass
Ejemplo n.º 22
0
def create_default_users(target, connection, **kw):
    import hashlib
    default_user_details = [{
        'username': '******',
        'password': '******',
    }, {
        'username': '******',
        'password': '******',
    }]
    try:
        for user_details in default_user_details:
            hashed_password = hashlib.sha1(
                user_details['password'].encode('utf-8')).hexdigest()
            user = User(user_details['username'], hashed_password)
            session.add(user)
        session.commit()
        print("Successfully created {0} users".format(
            len(default_user_details)))
    except Exception as e:
        print(e)
        session.rollback()
Ejemplo n.º 23
0
    def post(self, bucketlist_id):
        """ Called with the POST http verb """
        request_args = self.parse_args()
        bucketlist = session.query(Bucketlist).filter_by(
            id=bucketlist_id, created_by=self.current_user).first()

        if not bucketlist:
            return 'Bucketlist does not exist', 404

        if not request_args.get('name'):
            return 'Item name not supplied', 400

        try:
            new_item = Item(name=request_args.get('name'),
                            bucketlist=bucketlist)

            self.save(new_item)
            return 'New item added successfully', 200

        except IntegrityError:
            session.rollback()
            return 'Item name already exists', 409
Ejemplo n.º 24
0
def register():

    form = RegistrationForm(request.form)
    print form.validate()
    print form.errors
    if request.method == 'POST' and form.validate():
        user = User(form.username.data, form.email.data, form.password.data)
        session.add(user)
        try:
            session.commit()
        except IntegrityError as error:
            flash(
                "Registration is unsucessful. A user with the same username or email address is already in use."
            )
            print error
            session.rollback()
            return render_template('register.html',
                                   title="Register",
                                   form=form)
        flash("Registration is successful.")
        return redirect(url_for('login'))
    return render_template('register.html', title="Register", form=form)
Ejemplo n.º 25
0
    def put(self, bucketlist_id):
        """ Called for a PUT request """

        request_args = self.parse_args()
        bucketlist = session.query(Bucketlist).filter_by(
            id=bucketlist_id, created_by=self.current_user).first()

        if bucketlist and request_args.get('name'):
            try:
                # Update bucketlist name and commit to the database
                bucketlist.name = request_args.get('name')
                self.save(bucketlist)
                return 'Bucketlist successfully updated', 200

            except IntegrityError:
                session.rollback()
                return 'Bucketlist name already exists', 409

        elif bucketlist and not request_args.get('name'):
            return 'Supply new bucketlist name', 400

        else:
            return 'Bucketlist does not exist', 404
Ejemplo n.º 26
0
def create_default_users(target, connection, **kw):
    import hashlib
    default_user_details = [{
        'username': '******',
        'password': '******',
        'role': 0
    }, {
        'username': '******',
        'password': '******',
        'role': 1
    }]
    try:
        for user_details in default_user_details:
            hashed_password = hashlib.sha1(
                user_details['password'].encode('utf-8')).hexdigest()
            user = User(user_details['username'], hashed_password,
                        user_details['role'])
            session.add(user)
        session.commit()
        print("Successfully created {0} users".format(
            len(default_user_details)))
    except Exception as e:
        print(e)
        session.rollback()
Ejemplo n.º 27
0
 def wrapper(*args, **kwargs):
     try:
         f(*args, **kwargs)
     except (SQLAlchemyError, DBAPIError) as e:
         print(e)
         session.rollback()
Ejemplo n.º 28
0
from app import base, engine, session
import app.controller as ctr

try:
    base.metadata.create_all(engine)
    ctr.user_add('user', 'user', False)
    ctr.user_add('admin', 'admin', True)
    ctr.order_add('+380971234567', 'ул. Крещатик, 1')
except:
    session.rollback()
    print("Oops, i know, app starts a lot of times")