API endpoint to cancel task

This commit is contained in:
Simon 2018-10-26 18:13:47 -04:00
parent 1d3318f6e2
commit db26e851a4
2 changed files with 24 additions and 0 deletions

18
app.py
View File

@ -565,6 +565,23 @@ def api_get_task():
return abort(403) return abort(403)
@app.route("/api/task/cancel", methods=["POST"])
def api_cancel_task():
token = request.form.get("token")
name = db.check_api_token(token)
if name:
website_id = request.form.get("website_id") if "website_id" in request.form else None
if website_id:
db.delete_task(website_id)
return Response("cancelled task")
else:
abort(400)
else:
abort(403)
@app.route("/api/task/complete", methods=["POST"]) @app.route("/api/task/complete", methods=["POST"])
def api_complete_task(): def api_complete_task():
token = request.form.get("token") token = request.form.get("token")
@ -765,5 +782,6 @@ def api_search():
return abort(403) return abort(403)
if __name__ == '__main__': if __name__ == '__main__':
app.run("0.0.0.0", port=12345, threaded=True) app.run("0.0.0.0", port=12345, threaded=True)

View File

@ -400,6 +400,12 @@ class Database:
else: else:
return None return None
def delete_task(self, website_id):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("DELETE FROM Queue WHERE website_id=?", (website_id, ))
def complete_task(self, website_id: int, name: str) -> Task: def complete_task(self, website_id: int, name: str) -> Task:
with sqlite3.connect(self.db_path) as conn: with sqlite3.connect(self.db_path) as conn: