From 36777c45375047cb09e8777c361a6aadcef5f8f9 Mon Sep 17 00:00:00 2001 From: christian Date: Wed, 25 Mar 2026 16:47:08 -0300 Subject: [PATCH] first commit --- app.py | 68 ++++++++++++++++++++++++ models/__pycache__/task.cpython-312.pyc | Bin 0 -> 877 bytes models/task.py | 0 3 files changed, 68 insertions(+) create mode 100644 app.py create mode 100644 models/__pycache__/task.cpython-312.pyc create mode 100644 models/task.py diff --git a/app.py b/app.py new file mode 100644 index 0000000..b67caf0 --- /dev/null +++ b/app.py @@ -0,0 +1,68 @@ +from flask import Flask, request, jsonify + +# Define os parametros utilizadas na API +app = Flask(__name__) +tasks = [] # Lista para armazenar as tarefas +task_id_control = 1 # Controlador de IDs para garantir unicidade + +# Algoritimo para uma rota basica '/' para teste +@app.route("/", methods=["GET"]) +def hello(): + return "Hello, World!" + +# Algoritimo para rota '/tasks' sendo um algoritimo simples de gravação de cabeçalho para depois ser consultado por metodo GET +@app.route("/tasks", methods=["POST"]) +def create_task(): + global task_id_control + data = request.get_json() # Pega os dados enviados no corpo da requisição + new_task = { + "id": task_id_control, + "title": data.get("title"), # Obtém o título enviado + "description": data.get("description", ""), # Descrição opcional + "completed": False # Define que a tarefa começa como incompleta + } + tasks.append(new_task) # Adiciona a nova tarefa à lista + task_id_control += 1 # Incrementa o ID para a próxima tarefa + return jsonify({"message": "Tarefa criada com sucesso!", "task": new_task}), 201 + +# Algoritmo simples para consulta simples para consulta de total de "tasks" gravadas na API +@app.route("/tasks", methods=["GET"]) +def get_tasks(): + return jsonify({"tasks": tasks, "total": len(tasks)}) + +# Algoritimo simples para consulta do dado gravado dado um "ID" de valor inteiro para consulta +@app.route("/tasks/", methods=["GET"]) +def get_task(task_id): + # Procura a tarefa pelo ID + task = next((t for t in tasks if t["id"] == task_id), None) + if not task: + return jsonify({"message": "Tarefa não encontrada"}), 404 + return jsonify(task) + +# Algoritimo simples para atualizar dados de uma tarefa já gravada utilizando o "ID" da tarefa a ser editada +@app.route("/tasks/", methods=["PUT"]) +def update_task(task_id): + task = next((t for t in tasks if t["id"] == task_id), None) + if not task: + return jsonify({"message": "Tarefa não encontrada"}), 404 + + data = request.get_json() + # Atualiza os campos da tarefa com os dados enviados + task["title"] = data.get("title", task["title"]) + task["description"] = data.get("description", task["description"]) + task["completed"] = data.get("completed", task["completed"]) + return jsonify({"message": "Tarefa atualizada com sucesso!", "task": task}) + +# Algoritimo simples para deletar uma tarefa pela "ID" +@app.route("/tasks/", methods=["DELETE"]) +def delete_task(task_id): + global tasks + task = next((t for t in tasks if t["id"] == task_id), None) + if not task: + return jsonify({"message": "Tarefa não encontrada"}), 404 + tasks = [t for t in tasks if t["id"] != task_id] + return jsonify({"message": "Tarefa deletada com sucesso!"}) + +# Essa parte do código deverá estar no final do projeto para realizar o algoritimo acima +if __name__ == "__main__": + app.run(debug=True) \ No newline at end of file diff --git a/models/__pycache__/task.cpython-312.pyc b/models/__pycache__/task.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21ba2be0f92f5966f86c9e82aa7773f80927a8c1 GIT binary patch literal 877 zcmZ`$&rcIU6rS0gZ3|0PBuHD*SUre)k;D^GW1`}Z11TCxLQIopvNNSy+TAiUjX)qN zi3uLzR1O?GYU&^1!He-yQWMF9gNa_aNy>?nGcB#e=sUdmUfz4(_vXDX(dZyhHaYak zyJ74@Sf2W{CM3G|q}%8mq{$)?U32Xq-8xpL8Vz}Sb2Lv`?H~3H9AZCAbM65lu z0Y#+OUbK7Y&%54dgy+;rXe|l=HiYtBBjI&OB6~(ppA6)UIp7SYr6oL3qS7XmyUeQy zFYqOJ;vi{wgjuSa>1D_PHz-$1R8VrHzp$3bU`F#erFt+?Pf$+rs!KT!t~rKYD(85S zN~D*4^jUQ{VHsw0xk|Z^kwq$UMXr=C>U_>4IXCbH3rf;dDK%5)L?K+MP@l-KF7@)O ziWm_ru#EWhRjyN`@0?1VK7Mp3JI^WO*&+#i%-uqEI&iCH>Ij2rcofrn*&GmA1<$7PLdnVv1VR^MZ0Ua1sJTBj4=teS5rRCu`F`FC-6! zN9(bj*zQDY`1--vcztDOr`*QQ@-H!|VBk7hs+kBB}+LcZjy)oAEbOyZPOPTD%2s92+*AhiwxW6J6M0`VAIx(MA9O literal 0 HcmV?d00001 diff --git a/models/task.py b/models/task.py new file mode 100644 index 0000000..e69de29