Zion Boggan zionboggan.com ↗
45 lines · python
History for this file →
1
from flask import Flask, jsonify, request
2
 
3
from app.storage import TaskStore
4
 
5
app = Flask(__name__)
6
store = TaskStore()
7
 
8
 
9
@app.get("/health")
10
def health():
11
    return jsonify(status="ok")
12
 
13
 
14
@app.get("/tasks")
15
def list_tasks():
16
    return jsonify(tasks=store.all())
17
 
18
 
19
@app.post("/tasks")
20
def create_task():
21
    payload = request.get_json(silent=True) or {}
22
    title = payload.get("title", "").strip()
23
    if not title:
24
        return jsonify(error="title is required"), 400
25
    task = store.add(title=title, done=bool(payload.get("done", False)))
26
    return jsonify(task=task), 201
27
 
28
 
29
@app.get("/tasks/<int:task_id>")
30
def get_task(task_id):
31
    task = store.get(task_id)
32
    if task is None:
33
        return jsonify(error="not found"), 404
34
    return jsonify(task=task)
35
 
36
 
37
@app.delete("/tasks/<int:task_id>")
38
def delete_task(task_id):
39
    if not store.remove(task_id):
40
        return jsonify(error="not found"), 404
41
    return "", 204
42
 
43
 
44
if __name__ == "__main__":
45
    app.run(host="127.0.0.1", port=8000)