first commit
This commit is contained in:
parent
b216a187bd
commit
f73c77f548
119 changed files with 4504 additions and 4829 deletions
48
backend/routes/projects.py
Normal file
48
backend/routes/projects.py
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
from flask import Blueprint, jsonify, request, current_app
|
||||
from utils.data_loader import load_data
|
||||
from utils.json_crud import load_json, save_json, add_entry, delete_entry, update_entry
|
||||
from models.project_model import ProjectModel
|
||||
import os
|
||||
|
||||
DATA_DIR = os.path.join(os.path.dirname(__file__), '../data')
|
||||
PROJECTS_FILE = os.path.join(DATA_DIR, 'projects.json')
|
||||
|
||||
projects_bp = Blueprint('projects', __name__, url_prefix='/api/projects')
|
||||
|
||||
@projects_bp.route('/', methods=['GET'])
|
||||
def get_projects():
|
||||
projects = load_data('projects.json')
|
||||
return jsonify(projects)
|
||||
|
||||
@projects_bp.route('/<project_id>', methods=['GET'])
|
||||
def get_project(project_id):
|
||||
projects = load_data('projects.json')
|
||||
project = next((p for p in projects if p.get('id') == project_id), None)
|
||||
print(project)
|
||||
return jsonify(project)
|
||||
|
||||
@projects_bp.route('/', methods=['POST'])
|
||||
def create_project():
|
||||
key = request.headers.get('x-api-key')
|
||||
|
||||
if key != current_app.config['API_KEY']:
|
||||
return jsonify({
|
||||
"error": "Unauthorized"
|
||||
}), 401
|
||||
projects = load_data('projects.json')
|
||||
entry = request.json
|
||||
|
||||
project = ProjectModel(entry)
|
||||
|
||||
if not project.is_valid():
|
||||
return jsonify({
|
||||
"error": "Invalid project data"
|
||||
}), 400
|
||||
|
||||
new_id = max((p.get('id') for p in projects), default=0) + 1
|
||||
|
||||
data = project.to_dict()
|
||||
data['id'] = new_id
|
||||
|
||||
added = add_entry(PROJECTS_FILE, data)
|
||||
return jsonify(added), 201
|
||||
Loading…
Add table
Add a link
Reference in a new issue