def register_user(): """User register.""" form = UserForm() resp_message = 'Invalid payload.' if not form.validate(): return BadRequest(resp_message) username = form.username.data email = form.email.data password = form.password.data user = User.query.filter( or_(User.username == username, User.email == email)).first() if not user: with db.auto_commit(resp_message): new_user = User(username, email, password) db.session.add(new_user) # generate auth token auth_token = new_user.encode_auth_token() response_object = { 'status': 'success', 'message': 'Successfully registered.', 'auth_token': auth_token.decode() } return jsonify(response_object), 201 else: return BadRequest('Sorry, that user already existing.')
def delete_single_article(art_id): """Delete single article by `art_id`.""" art_id = convert_to_int_for(art_id) article = Article.query.get_or_404(art_id, description='Invalid path params.') with db.auto_commit('Delete fail'): db.session.delete(article) resp_obj = { 'status': 'success', 'message': f'{article.id}: {article.title} is already deleted.' } return jsonify(resp_obj), 202
def add_article(title, body, category): """Add a new article. :param title(str): the article title :param body(str): the article body :param category(Category instance): the article category. :return Article (instance) """ article = Article(title=title, body=body) article.category = category with db.auto_commit(): db.session.add(article) return article
def add_article(): """Add a new article.""" form = ArticleForm() resp_msg = 'Invalid payload.' if not form.validate(): return BadRequest(resp_msg) title = form.title.data body = form.body.data category = form.category.data article = Article.query.filter_by(title=title).count() if article > 0: return BadRequest('The article already exists') article = Article(title=title, body=body, category_id=category) with db.auto_commit(resp_msg): db.session.add(article) resp_obj = {'status': 'success', 'message': f'article: {title} was added.'} return jsonify(resp_obj), 201
def delete_single_category(cate_id): """Delete category by id.""" resp_message = 'Invalid payload.' try: cate_id = int(cate_id) except ValueError: return BadRequest(resp_message) category = Category.query.get_or_404(cate_id, resp_message) with db.auto_commit(): db.session.delete(category) resp_obj = { 'status': 'success', 'message': f'{category.id}: {category.name} is already deleted.' } # we need return message, so not for 204 # the http status maybe not properly return jsonify(resp_obj), 202
def add_category(): """Add a new category.""" form = CategoryForm() resp_msg = 'Invalid payload.' if not form.validate(): return BadRequest(resp_msg) name = form.name.data category = Category.query.filter_by(name=name).first() if category: return BadRequest('The category already exists.') with db.auto_commit(resp_msg): category = Category(name=name) db.session.add(category) resp_pbj = { 'status': 'success', 'message': f'category: {name} was added.' } return jsonify(resp_pbj), 201
def update_single_article(): """Update singel article by `form.aid.data`.""" form = ArticleForm() resp_msg = 'Invalid payload.' if not form.validate(): return BadRequest(resp_msg) aid = form.aid.data title = form.title.data body = form.body.data category = form.category.data article = Article.query.get_or_404(aid, description=resp_msg) with db.auto_commit(resp_msg): article.title = title article.body = body article.category_id = category resp_obj = { 'status': 'success', 'message': f'{aid}: article is already updated.' } return jsonify(resp_obj), 200
def add_user(): """Add a new user, you must have permissions""" form = UserForm() resp_message = 'Invalid payload.' if not form.validate(): return BadRequest(resp_message) username = form.username.data email = form.email.data password = form.password.data user = User.query.filter_by(email=email).first() if not user: with db.auto_commit(resp_message): user = User(username, email, password) db.session.add(user) response_object = { 'status': 'success', 'message': f'{email} was added' } return jsonify(response_object), 201 else: return BadRequest('Sorry, the email is already existing.')
def add_user(username, email, password, admin=False): user = User(username, email, password, admin=admin) with db.auto_commit(): db.session.add(user) return user
def add_category(name): category = Category(name=name) with db.auto_commit(): db.session.add(category) return category