예제 #1
0
def append_book_impl(args):

    try:
        user = user_by_user_id(args['user_id'])
        books = []
        if args['books'] is None:
            return Response(True, "Books Appended", UserBookSchema(many=True).dumps(books).data).output()
        for book_dict in args['books']:
            validate(book_dict)
            book_name = book_dict['name']
            book = dao.find_book_with_name(book_name)
            if book is None:
                book = Book(book_name, book_dict['author'], book_dict['category'])
                db.session.add(book)
                db.session.commit()
            try:
                user_book = user_book_from_book_name(book_name, user_by_user_id(args['user_id']).id)
                user_book.pages = book_dict['pages']
                user_book.pages_read = book_dict['pages_read']
                user_book.rate = book_dict['rate']
                user_book.loved = book_dict['loved']
                user_book.snippet = book_dict['snippet']
                user_book.cover_url = book_dict['cover_url']
            except Exception as e:
                user_book = UserBooks(user, book,  book_dict['pages_read'],  book_dict['pages'], book_dict['rate'], book_dict["snippet"])
                user_book.cover_url = book_dict['cover_url']
                db.session.add(user_book)
            db.session.commit()
            books.append(user_book)
        return Response(True, "Books Appended", UserBookSchema(many=True).dumps(books).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #2
0
def append_log_impl(args):
    try:
        user = user_by_user_id(args['user_id'])
        logs = []
        if args['logs'] is None:
            return Response(True, "Logs Appended",
                            LogSchema(many=True).dumps(logs).data).output()
        for log_dict in args['logs']:
            validate(log_dict)
            log = None
            if log_dict.has_key('id') and log_dict['id'] is not None:
                log = log_by_id(log_dict['id'])
                if log is None:
                    log = ReadingLog()
            else:
                log = ReadingLog()
            log.book = find_book_with_name(log_dict['book_name']).id
            log.date = parse(log_dict['date'])
            log.pages = log_dict['pages']
            log.uuid = log_dict['uuid']
            log.user = user.user_id
            db.session.add(log)
            logs.append(log)
        db.session.commit()
        return Response(True, "Logs Appended",
                        LogSchema(many=True).dumps(logs).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #3
0
def update_book_impl(args):
    try:
        book = user_book_from_book_id(args['book_id'],
                                      user_by_user_id(args['user_id']).id)

        if args.has_key("pages") and args['pages'] is not None:
            book.pages = int(args['pages'])

        if args.has_key("cover_url") and args['cover_url'] is not None:
            book.cover_url = args['cover_url']

        if args.has_key("loved") and args['loved'] is not None:
            book.loved = args['loved']

        if args.has_key("pages_read") and args['pages_read'] is not None:
            book.pages_read = args['pages_read']

        if args.has_key("snippet") and args['snippet'] is not None:
            book.snippet = args['snippet']

        if args.has_key("rate") and args['rate'] is not None:
            book.rate = args['rate']

        if args.has_key("loved") and args['loved'] is not None:
            book.loved = args['loved']

        db.session.commit()
        return Response(True, "Book Updated",
                        UserBookSchema().dumps(book).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #4
0
def update_book_impl(args):
    try:
        book = user_book_from_book_id(args['book_id'], user_by_user_id(args['user_id']).id)

        if args.has_key("pages") and args['pages'] is not None:
            book.pages = int(args['pages'])

        if args.has_key("cover_url") and args['cover_url'] is not None:
            book.cover_url = args['cover_url']

        if args.has_key("loved") and args['loved'] is not None:
            book.loved = args['loved']

        if args.has_key("pages_read") and args['pages_read'] is not None:
            book.pages_read = args['pages_read']

        if args.has_key("snippet") and args['snippet'] is not None:
            book.snippet = args['snippet']

        if args.has_key("rate") and args['rate'] is not None:
            book.rate = args['rate']

        if args.has_key("loved") and args['loved'] is not None:
            book.loved = args['loved']

        db.session.commit()
        return Response(True, "Book Updated", UserBookSchema().dumps(book).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #5
0
def append_log_impl(args):
    try:
        user = user_by_user_id(args['user_id'])
        logs = []
        if args['logs'] is None:
            return Response(True, "Logs Appended", LogSchema(many=True).dumps(logs).data).output()
        for log_dict in args['logs']:
            validate(log_dict)
            log = None
            if log_dict.has_key('id') and log_dict['id'] is not None:
                log = log_by_id(log_dict['id'])
                if log is None:
                    log = ReadingLog()
            else:
                log = ReadingLog()
            log.book = find_book_with_name(log_dict['book_name']).id
            log.date = parse(log_dict['date'])
            log.pages = log_dict['pages']
            log.uuid = log_dict['uuid']
            log.user = user.user_id
            db.session.add(log)
            logs.append(log)
        db.session.commit()
        return Response(True, "Logs Appended", LogSchema(many=True).dumps(logs).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #6
0
def delete_book_impl(args):
    try:
        book = user_book_from_book_name(args['book_name'], user_by_user_id(args['user_id']).id)
        db.session.delete(book)
        db.session.commit()
        return Response(True, "Book Deleted", None).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #7
0
def get_user_impl(args):
    try:
        return Response(
            True, "User Listed",
            UserSchema().dumps(user_by_user_id(
                args['user_id'])).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #8
0
def delete_log_impl(args):
    try:
        user = user_by_user_id(args['user_id'])
        log = log_by_id(args['log_id'])
        db.session.delete(log)
        db.session.commit()
        return simple_response(True, "Log Deleted")
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #9
0
def delete_log_impl(args):
    try:
        user = user_by_user_id(args['user_id'])
        log = log_by_id(args['log_id'])
        db.session.delete(log)
        db.session.commit()
        return simple_response(True, "Log Deleted")
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #10
0
def delete_book_impl(args):
    try:
        book = user_book_from_book_name(args['book_name'],
                                        user_by_user_id(args['user_id']).id)
        db.session.delete(book)
        db.session.commit()
        return Response(True, "Book Deleted", None).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #11
0
def update_log_impl(args):
    try:
        user = user_by_user_id(args['user_id'])
        log = log_by_id(args['log_id'])
        log.pages = args['pages'] if args['pages'] is not None else log.pages
        log.date = parse(args['date']) if args['date'] is not None else log.date
        db.session.commit()
        return Response(True, "Log Updated", LogSchema().dumps(log).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #12
0
def update_log_impl(args):
    try:
        user = user_by_user_id(args['user_id'])
        log = log_by_id(args['log_id'])
        log.pages = args['pages'] if args['pages'] is not None else log.pages
        log.date = parse(
            args['date']) if args['date'] is not None else log.date
        db.session.commit()
        return Response(True, "Log Updated",
                        LogSchema().dumps(log).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #13
0
def append_book_impl(args):

    try:
        user = user_by_user_id(args['user_id'])
        books = []
        if args['books'] is None:
            return Response(
                True, "Books Appended",
                UserBookSchema(many=True).dumps(books).data).output()
        for book_dict in args['books']:
            validate(book_dict)
            book_name = book_dict['name']
            book = dao.find_book_with_name(book_name)
            if book is None:
                book = Book(book_name, book_dict['author'],
                            book_dict['category'])
                db.session.add(book)
                db.session.commit()
            try:
                user_book = user_book_from_book_name(
                    book_name,
                    user_by_user_id(args['user_id']).id)
                user_book.pages = book_dict['pages']
                user_book.pages_read = book_dict['pages_read']
                user_book.rate = book_dict['rate']
                user_book.loved = book_dict['loved']
                user_book.snippet = book_dict['snippet']
                user_book.cover_url = book_dict['cover_url']
            except Exception as e:
                user_book = UserBooks(user, book, book_dict['pages_read'],
                                      book_dict['pages'], book_dict['rate'],
                                      book_dict["snippet"])
                user_book.cover_url = book_dict['cover_url']
                db.session.add(user_book)
            db.session.commit()
            books.append(user_book)
        return Response(True, "Books Appended",
                        UserBookSchema(many=True).dumps(books).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #14
0
def update_user_impl(args):
    try:
        user = user_by_user_id(args["user_id"])

        if args["auth_token"] is not None:
            user.auth_token = args["auth_token"]

        if args["auth_token_secret"] is not None:
            user.auth_token_secret = args["auth_token_secret"]

        if args["name"] is not None:
            user.name = args["name"]

        db.session.commit()
        return Response(True, "User Updated", UserSchema().dumps(user).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #15
0
def create_new_user_impl(args):
    try:
        validate(args)
        user = None
        try:
            user = user_by_user_id(args["user_id"])
        except Exception as e:
            user = User()
            user.user_id = args["user_id"]
            db.session.add(user)
        user.auth_token = args["auth_token"]
        user.auth_token_secret = args["auth_token_secret"]
        user.name = args["name"]
        db.session.commit()
        return Response(True, "User Created", UserSchema().dumps(user).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #16
0
def update_user_impl(args):
    try:
        user = user_by_user_id(args['user_id'])

        if args['auth_token'] is not None:
            user.auth_token = args['auth_token']

        if args['auth_token_secret'] is not None:
            user.auth_token_secret = args['auth_token_secret']

        if args['name'] is not None:
            user.name = args['name']

        db.session.commit()
        return Response(True, "User Updated",
                        UserSchema().dumps(user).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #17
0
def create_new_user_impl(args):
    try:
        validate(args)
        user = None
        try:
            user = user_by_user_id(args['user_id'])
        except Exception as e:
            user = User()
            user.user_id = args['user_id']
            db.session.add(user)
        user.auth_token = args['auth_token']
        user.auth_token_secret = args['auth_token_secret']
        user.name = args['name']
        db.session.commit()
        return Response(True, "User Created",
                        UserSchema().dumps(user).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #18
0
 def book_ref(self):
     return UserBooks.query.filter(UserBooks.user_id == user_by_user_id(self.user).id, UserBooks.book_id == self.book).first()
예제 #19
0
def list_user_books(user_id):
    list = UserBooks.query.filter(
        UserBooks.user_id == user_by_user_id(user_id).id).all()
    return list
예제 #20
0
def list_user_books(user_id):
    list = UserBooks.query.filter(UserBooks.user_id == user_by_user_id(user_id).id).all()
    return list
예제 #21
0
def delete_user_impl(args):
    try:
        db.session.delete(user_by_user_id(args['user_id']))
        return Response(True, "User Deleted", None).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #22
0
def get_user_impl(args):
    try:
        return Response(True, "User Listed", UserSchema().dumps(user_by_user_id(args["user_id"])).data).output()
    except Exception as e:
        return Response(False, str(e), None).output()
예제 #23
0
def delete_user_impl(args):
    try:
        db.session.delete(user_by_user_id(args["user_id"]))
        return Response(True, "User Deleted", None).output()
    except Exception as e:
        return Response(False, str(e), None).output()