def get_user(self, id): try: user = User.query.get(id) except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) return user_schema.jsonify(user)
def delete_user(self, id): try: user = User.query.get(id) db.session.delete(user) db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) return user_schema.jsonify(user)
def get_users(self): my_logger.debug('Entering get user GET') try: all_users = User.query.all() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) payload = users_schema.dump(all_users) return jsonify(payload.data)
def update_book(self, request, id): my_logger.debug('Entering book PUT') try: book = Book.query.get(id) except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) try: isbn = request.json['isbn'] title = request.json['title'] author = request.json['author'] date = request.json['date'] except requests.exceptions.RequestException as e: error = e payload = {'error': error} my_logger.debug('Check Login Error') return jsonify(payload) book.isbn = isbn book.title = title book.author = author book.date = date try: db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) return book_schema.jsonify(book)
def get_books(self, request, id): my_logger.debug('Entering books GET') userID = request.args['id'] try: all_books = db.session.execute( 'SELECT * FROM book WHERE id in (SELECT bookid FROM owner WHERE userid = :val)', {'val': userID}) except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) payload = books_schema.dump(all_books) return jsonify(payload)
def details(id): #Get book details try: response = requests.get(API + '/book/' + id) except requests.exceptions.RequestException as e: raise SystemExit(e) json_string = response.json() if len(json_string) > 0 and ('error' not in json_string): my_logger.debug('Book was found', json_string) return render_template('details.html', book=json_string) else: my_logger.debug('No book found in json') msg = 'No Book found' return render_template('details.html', msg=msg)
def register(): my_logger.debug('Entering register POST') #Get form validation and details form = RegisterForm(request.form) #IF form is submitted register the user if request.method == 'POST' and form.validate(): #Get form info firstName = form.firstName.data lastName = form.lastName.data email = form.email.data password = sha256_crypt.encrypt(str(form.password.data)) # Build Request headers = {'Content-Type': 'application/json'} payload = { 'firstName': firstName, 'lastName': lastName, 'email': email, 'password': password } try: r = requests.post(API + '/user', data=json.dumps(payload), headers=headers) except requests.exceptions.RequestException as e: raise SystemExit(e) json_string = r.json() if (json_string['status'] == 'success'): flash('You have registered :)', 'success') return redirect(url_for('users.login')) else: return render_template('register.html', error=json_string['error']) return render_template('register.html', form=form)
def new_user(self, request): my_logger.debug('Entering get user POST') try: # Get User details firstName = request.json['firstName'] lastName = request.json['lastName'] email = request.json['email'] password = request.json['password'] except requests.exceptions.RequestException as e: error = e payload = { 'error': error, } my_logger.debug('Check Login Error') return jsonify(payload) #DB instance new_user = User(firstName, lastName, email, password) try: db.session.add(new_user) db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) payload = {'status': 'success'} return jsonify(payload)
def update_user(self, id): try: user = User.query.get(id) except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) try: firstName = request.json['fistName'] lastName = request.json['lastName'] email = request.json['email'] password = request.json['password'] except requests.exceptions.RequestException as e: error = e payload = {'error': error} my_logger.debug('Check Login Error') return jsonify(payload) user.firstName = firstName user.lastName = lastName user.email = email user.password = password try: db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) return user_schema.jsonify(user)
def get_book(self, id): #log the transaction my_logger.debug('Quering a single book') try: payload = Book.query.get(id) except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) if (payload == None): my_logger.debug('None found single book') payload = {'error': 'No book Found'} return book_schema.jsonify(payload)
def delete_book(self, id): my_logger.debug('Entering book DELETE') try: book = Book.query.get(id) db.session.delete(book) db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) #Once a book is delete the ownership mapping should be delete as well try: Owner.query.filter(Owner.bookId == book.id).delete( synchronize_session=False) db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) return book_schema.jsonify(book)
def delete_user(id): my_logger.debug('Entering get user DELETE') payload = service.delete_user(id) return payload
def update_user(id): my_logger.debug('Entering get user id PUT') payload = service.update_user(id) return payload
def get_user(id): my_logger.debug('Entering get user id GET') payload = service.get_user(id) return payload
def get_users(): my_logger.debug('Entering get users GET') payload = service.get_users() return payload
def new_user(): my_logger.debug('Entering get user POST') payload = service.new_user(request) return payload
def check_login(): my_logger.debug('Entering Check Login') payload = service.check_login(request) return payload
def new_book(self, request): try: my_logger.debug('Entering book POST') isbn = request.json['isbn'] title = request.json['title'] author = request.json['author'] date = request.json['date'] userId = request.json['userId'] except requests.exceptions.RequestException as e: error = e payload = {'error': error} my_logger.debug('Returning', payload['error']) return jsonify(payload) #Check to see if there is already that book in the db #Assuming no book has the same ISBN try: old_book = Book.query.filter_by(isbn=isbn).first() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) #If there is no existing book, create one if (old_book == None): new_book = Book(isbn, title, author, date) try: db.session.add(new_book) db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) #Get the id of the book in question try: db_book = Book.query.filter_by(isbn=isbn).first() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) bookId = db_book.id #Mapp the new user ownership to the book new_owner = Owner(userId, bookId) try: db.session.add(new_owner) db.session.commit() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) payload = {'status': 'success'} my_logger.debug('Returning', payload['status']) return jsonify(payload)
def check_login(self, request): #Logs my_logger.debug('Entering Check Login') try: # Get Login details email = request.json['email'] password_candidate = request.json['password_candidate'] except requests.exceptions.RequestException as e: error = e payload = {'error': error, 'email': ''} my_logger.debug('Returning', payload['error']) return jsonify(payload) # Query DB try: user = User.query.filter_by(email=email).first() except Exception as e: payload = {'error': e} my_logger.debug('Returning', payload['error']) return jsonify(payload) # If the user does exist if (user != None): try: password = user.password except Exception as e: payload = {'error': e} my_logger.debug('error', e) return jsonify(payload) # Compare passwords if sha256_crypt.verify(password_candidate, password): my_logger.debug('PASSWORD MATCHED') payload = { 'email': user.email, 'firstName': user.firstName, 'id': user.id } my_logger.debug('Check Login Success') return jsonify(payload) else: my_logger.debug('PASSWORD NOT MATCHED') error = 'Invalid login' payload = {'error': error, 'email': ''} my_logger.debug('Check Login unsuccessful') return jsonify(payload) else: error = 'User email not found' payload = {'error': error, 'email': ''} my_logger.debug('Returning', payload['error']) return jsonify(payload)
def new_book(): my_logger.debug('Entering New book POST') payload = service.new_book(request) return payload
def get_books(): my_logger.debug('Entering book GET') payload = service.get_books(request, id) return payload
def delete_book(id): my_logger.debug('Entering book DELETE') payload = service.delete_book(id) return payload
def update_book(id): my_logger.debug('Entering update book PUT') payload = service.update_book(request, id) return payload
def get_book(id): my_logger.debug('Entering book get single book id POST') book = service.get_book(id) return book