Esempio n. 1
0
def create_author():
    data = request.get_json() or {}
    if 'name' not in data:
        return bad_request('must include name')
    if Author.query.filter_by(name=data['name']).first():
        return bad_request('please use a different name')
    author = Author()
    author.from_dict(data)
    db.session.add(author)
    db.session.commit()
    response = jsonify(author.to_dict())
    response.status_code = 201
    response.headers['Location'] = url_for('api.get_author', id=author.id)
    return response
Esempio n. 2
0
def update_user(id):
    if g.current_user.id != id:
        abort(403)
    user = User.query.get_or_404(id)
    data = request.get_json() or {}
    if 'username' in data and data['username'] != user.username and \
            User.query.filter_by(username=data['username']).first():
        return bad_request('please use a different username')
    if 'email' in data and data['email'] != user.email and \
            User.query.filter_by(email=data['email']).first():
        return bad_request('please use a different email address')
    user.from_dict(data, new_user=False)
    db.session.commit()
    return jsonify(user.to_dict())
Esempio n. 3
0
def create_book():
    data = request.get_json() or {}
    if 'name' not in data or 'isbn' not in data or 'author_id' not in data:
        return bad_request('must include name')
    if Book.query.filter_by(name=data['name']).first():
        return bad_request('please use a different name')
    if Book.query.filter_by(isbn=data['isbn']).first():
        return bad_request('Two books can not have the same ISBN.')
    book = Book()
    book.from_dict(data)
    db.session.add(book)
    db.session.commit()
    response = jsonify(book.to_dict())
    response.status_code = 201
    response.headers['Location'] = url_for('api.get_book', id=book.id)
    return response
Esempio n. 4
0
def create_user():
    data = request.get_json() or {}
    if 'username' not in data or 'email' not in data or 'password' not in data:
        return bad_request('must include username, email and password fields')
    if User.query.filter_by(username=data['username']).first():
        return bad_request('please use a different username')
    if User.query.filter_by(email=data['email']).first():
        return bad_request('please use a different email address')
    user = User()
    user.from_dict(data, new_user=True)
    db.session.add(user)
    db.session.commit()
    response = jsonify(user.to_dict())
    response.status_code = 201
    response.headers['Location'] = url_for('api.get_user', id=user.id)
    return response
Esempio n. 5
0
def remove_translation():
    """Remove Translation
    /*TODO: finish remove_translation docstring*/
    """
    result = None
    response = {}
    from app.service.words import remove
    # check if we received a valid parameters
    data = request.get_json()
    try:
        value = data and data.get('word', "") or ""
        language = data and data.get('lang', "") or "en"
        result = remove(value=value, language=language)
        logger.info(result)
        response.update({'data': result})
    except Exception as ve_err:
        message = str(ve_err)
        logger.error("remove_translation : %s ", message)
        return bad_request(message)

    return response, 200
Esempio n. 6
0
def validation_error(e):
    """Blueprint Validation error handler"""
    return bad_request(e.args[0], "MUN-777")