ajout de CRUD total pour toute les routes

This commit is contained in:
toine 2025-10-04 17:48:13 +02:00
parent fec74d9f83
commit da45beba93
5 changed files with 166 additions and 25 deletions

View file

@ -12,4 +12,60 @@ services_bp = Blueprint('services', __name__, url_prefix='/api/services')
@services_bp.route('/', methods=['GET'])
def get_services():
services = load_data('services.json')
return jsonify(services)
return jsonify(services)
@services_bp.route('/<service_id>', methods=['GET'])
def get_service(service_id):
services = load_data('services.json')
service = next((s for s in services if str(s.get('id')) == str(service_id)), None)
if not service:
return jsonify({"error": "Service not found"}), 404
return jsonify(service)
@services_bp.route('/', methods=['POST'])
def create_service():
key = request.headers.get('x-api-key')
if key != current_app.config['API_KEY']:
return jsonify({"error": "Unauthorized"}), 401
services = load_json(SERVICES_FILE)
entry = request.json or {}
# generate new id
new_id = max((s.get('id') for s in services), default=0) + 1
model = ServiceModel({**entry, 'id': new_id})
data = model.to_dict()
added = add_entry(SERVICES_FILE, data)
return jsonify(added), 201
@services_bp.route('/<service_id>', methods=['PUT', 'PATCH'])
def update_service(service_id):
key = request.headers.get('x-api-key')
if key != current_app.config['API_KEY']:
return jsonify({"error": "Unauthorized"}), 401
services = load_json(SERVICES_FILE)
service = next((s for s in services if str(s.get('id')) == str(service_id)), None)
if not service:
return jsonify({"error": "Service not found"}), 404
payload = request.json or {}
updated = {**service, **payload}
updated['id'] = service['id']
saved = update_entry(SERVICES_FILE, updated['id'], updated)
return jsonify(saved), 200
@services_bp.route('/<service_id>', methods=['DELETE'])
def delete_service(service_id):
key = request.headers.get('x-api-key')
if key != current_app.config['API_KEY']:
return jsonify({"error": "Unauthorized"}), 401
services = load_json(SERVICES_FILE)
service = next((s for s in services if str(s.get('id')) == str(service_id)), None)
if not service:
return jsonify({"error": "Service not found"}), 404
deleted = delete_entry(SERVICES_FILE, service_id)
return jsonify(deleted), 200