Skip to content

Instantly share code, notes, and snippets.

@krakiun

krakiun/vote.py Secret

Created February 26, 2018 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save krakiun/02cc8fd7f375d5bb858d1afc77b26e64 to your computer and use it in GitHub Desktop.
Save krakiun/02cc8fd7f375d5bb858d1afc77b26e64 to your computer and use it in GitHub Desktop.
@app.route('/api/service/<product_id>/vote/<any(up,down):direction>')
@xhr_required
@login_required
def api_service_vote(product_id, direction):
''' thi api need for vote up/down the services'''
product = Product.query.get_or_404(product_id)
query = Product_Vote.query.filter(Product_Vote.voter_id == g.user.id,
Product_Vote.product_id == product.id)
if db.session.query(query.exists()).scalar():
raise APIError('You already vote')
if direction == 'up':
product.votes = Product.votes + 1
else:
product.votes = Product.votes - 1
vote = Product_Vote(
product_id=product.id,
voter_id=g.user.id,
up=direction == 'up',
down=direction == 'down'
)
db.session.add(vote)
db.session.add(product)
db.session.commit()
return json.jsonify()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment