def save(self): try: session.add(self) session.commit() except Exception: session.rollback() raise
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()
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)
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
def update(self, **kwargs): try: for key, value in kwargs.items(): setattr(self, key, value) session.commit() except Exception: session.rollback() raise
def get_posts(cls): try: posts: list = cls.query.all() session.commit() except Exception: session.rollback() raise return posts
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
def delete(self): try: session.delete(self) session.commit() except Exception: session.rollback() raise
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()
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
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()
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
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
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
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
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
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)
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
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)
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
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()
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
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 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
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()
def wrapper(*args, **kwargs): try: f(*args, **kwargs) except (SQLAlchemyError, DBAPIError) as e: print(e) session.rollback()
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")