2 lines
4.9 KiB
JSON
2 lines
4.9 KiB
JSON
{"id":"chatcmpl-b02e36e99a0f8c5d","object":"chat.completion","created":1774197158,"model":"NousResearch\/Hermes-3-Llama-3.2-3B","choices":[{"index":0,"message":{"role":"assistant","content":"First, install Flask:\n```\npip install Flask\n```\n\nHere is the complete Flask app with all endpoints:\n\n```python\nfrom flask import Flask, request, jsonify\nfrom task_manager import TaskManager\n\napp = Flask(__name__)\ntask_manager = TaskManager()\n\n@app.route('\/')\ndef index():\n return \"Task Manager API\"\n\n@app.route('\/tasks', methods=['GET'])\ndef get_tasks():\n tasks = task_manager.tasks\n output = []\n for task in tasks:\n task_data = {}\n task_data['id'] = task.id\n task_data['title'] = task.title\n task_data['description'] = task.description\n task_data['completed'] = task.completed\n task_data['priority'] = task.priority\n task_data['due_date'] = task.due_date\n task_data['tags'] = ', '.join(task.tags)\n task_data['depends_on'] = ', '.join([self.tasks_by_id[dep_id][0]['title'] for dep_id in task.depends_on])\n task_data['time_spent'] = task.time_spent\n task_data['progress'] = task.progress\n task_data['assigned_to'] = task.assigned_to\n task_data['estimated_minutes'] = task.estimated_minutes\n output.append(task_data)\n return jsonify({'tasks': output})\n\n@app.route('\/tasks', methods=['POST'])\ndef create_task():\n data = request.get_json()\n title = data['title']\n description = data['description']\n due_date = data.get('due_date')\n tags = data.get('tags')\n depends_on = data.get('depends_on')\n recurrence = data.get('recur')\n next_occurrence = data.get('next_occurrence')\n time_spent = data.get('time_spent')\n progress = data.get('progress')\n assigned_to = data.get('assigned_to')\n estimated_minutes = data.get('estimated_minutes')\n task_manager.add_task(title, description, due_date, tags, depends_on, recurrence, next_occurrence, time_spent, progress, assigned_to, estimated_minutes)\n return jsonify({'message': 'New task created'})\n\n@app.route('\/tasks\/<id>', methods=['GET'])\ndef get_task(id):\n task = next((task for task in task_manager.tasks if task.id == id), None)\n if task:\n task_data = {}\n task_data['id'] = task.id\n task_data['title'] = task.title\n task_data['description'] = task.description\n task_data['completed'] = task.completed\n task_data['priority'] = task.priority\n task_data['due_date'] = task.due_date\n task_data['tags'] = ', '.join(task.tags)\n task_data['depends_on'] = ', '.join([self.tasks_by_id[dep_id][0]['title'] for dep_id in task.depends_on])\n task_data['time_spent'] = task.time_spent\n task_data['progress'] = task.progress\n task_data['assigned_to'] = task.assigned_to\n task_data['estimated_minutes'] = task.estimated_minutes\n return jsonify({'task': task_data})\n return jsonify({'message': 'Task not found'})\n\n@app.route('\/tasks\/<id>', methods=['PUT'])\ndef update_task(id):\n data = request.get_json()\n task = next((task for task in task_manager.tasks if task.id == id), None)\n if task:\n task.title = data['title']\n task.description = data['description']\n task.due_date = data.get('due_date')\n task.tags = data.get('tags')\n task.depends_on = data.get('depends_on')\n task.recurrence = data.get('recur')\n task.next_occurrence = data.get('next_occurrence')\n task.time_spent = data.get('time_spent')\n task.progress = data.get('progress')\n task.assigned_to = data.get('assigned_to')\n task.estimated_minutes = data.get('estimated_minutes')\n return jsonify({'message': 'Task updated'})\n return jsonify({'message': 'Task not found'})\n\n@app.route('\/tasks\/<id>', methods=['DELETE'])\ndef delete_task(id):\n task = next((task for task in task_manager.tasks if task.id == id), None)\n if task:\n task_manager.delete_task(id)\n return jsonify({'message': 'Task deleted'})\n return jsonify({'message': 'Task not found'})\n\nif __name__ == '__main__':\n app.run(debug=True)\n```\n\nTo run the Flask app, use the following command:\n\n```\npython app.py\n```\n\nThis Flask app has the following endpoints:\n- GET \/tasks: List all tasks\n- POST \/tasks: Create a new task\n- GET \/tasks\/<id>: Get a specific task\n- PUT \/tasks\/<id>: Update a task\n- DELETE \/tasks\/<id>: Delete a task\n\nTo use these endpoints, you can send HTTP requests to the corresponding URLs using tools like cURL or Postman.","refusal":null,"annotations":null,"audio":null,"function_call":null,"tool_calls":[],"reasoning":null},"logprobs":null,"finish_reason":"stop","token_ids":null}],"service_tier":null,"system_fingerprint":null,"usage":{"prompt_tokens":26928,"total_tokens":27969,"completion_tokens":1041,"prompt_tokens_details":null},"prompt_token_ids":null,"kv_transfer_params":null}
|