Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
    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)
Esempio n. 9
0
    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)
Esempio n. 10
0
    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)
Esempio n. 11
0
    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)
Esempio n. 12
0
def delete_user(id):

    my_logger.debug('Entering get user DELETE')
    payload = service.delete_user(id)
    return payload
Esempio n. 13
0
def update_user(id):

    my_logger.debug('Entering get user id PUT')
    payload = service.update_user(id)
    return payload
Esempio n. 14
0
def get_user(id):

    my_logger.debug('Entering get user id GET')
    payload = service.get_user(id)
    return payload
Esempio n. 15
0
def get_users():

    my_logger.debug('Entering get users GET')
    payload = service.get_users()
    return payload
Esempio n. 16
0
def new_user():

    my_logger.debug('Entering get user POST')
    payload = service.new_user(request)
    return payload
Esempio n. 17
0
def check_login():

    my_logger.debug('Entering Check Login')
    payload = service.check_login(request)
    return payload
Esempio n. 18
0
    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)
Esempio n. 19
0
    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)
Esempio n. 20
0
def new_book():

    my_logger.debug('Entering New book POST')
    payload = service.new_book(request)
    return payload
Esempio n. 21
0
def get_books():

    my_logger.debug('Entering book GET')
    payload = service.get_books(request, id)
    return payload
Esempio n. 22
0
def delete_book(id):

    my_logger.debug('Entering book DELETE')
    payload = service.delete_book(id)
    return payload
Esempio n. 23
0
def update_book(id):

    my_logger.debug('Entering update book PUT')
    payload = service.update_book(request, id)
    return payload
Esempio n. 24
0
def get_book(id):

    my_logger.debug('Entering book get single book id POST')
    book = service.get_book(id)
    return book