first commit

This commit is contained in:
mrtoine 2025-09-20 14:16:14 +02:00
parent b216a187bd
commit f73c77f548
119 changed files with 4504 additions and 4829 deletions

View file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

29
backend/routes/contact.py Normal file
View file

@ -0,0 +1,29 @@
from flask import Blueprint, jsonify, request, current_app
from utils.json_crud import load_json, save_json, add_entry, delete_entry, update_entry
from utils.data_loader import load_data
from models.contact_model import ContactModel
import os
DATA_DIR = os.path.join(os.path.dirname(__file__), '../data')
CONTACTS_FILE = os.path.join(DATA_DIR, 'contact.json')
contact_bp = Blueprint('contact', __name__, url_prefix='/api/contact')
@contact_bp.route('/', methods=['GET'])
def get_contact():
contacts = load_data('contact.json')
return jsonify(contacts)
@contact_bp.route('/', methods=['POST'])
def update_contact():
key = request.headers.get('x-api-key')
if key != current_app.config['API_KEY']:
return jsonify({
"error": "Unauthorized"
}), 401
data = request.json
new_entry = ContactModel(data).to_dict()
contact = [new_entry]
save_json(CONTACTS_FILE, contact)
return new_entry

41
backend/routes/cv.py Normal file
View file

@ -0,0 +1,41 @@
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.cv_model import CVModel
import os
DATA_DIR = os.path.join(os.path.dirname(__file__), '../data')
CV_FILE = os.path.join(DATA_DIR, 'cv.json')
cv_bp = Blueprint('cv', __name__, url_prefix='/api/cv')
@cv_bp.route('/', methods=['GET'])
def get_cv():
cv = load_data('cv.json')
return jsonify(cv)
@cv_bp.route('/', methods=['POST'])
def update_cv():
#key = request.headers.get('x-api-key')
#if key != current_app.config['API_KEY']:
# return jsonify({
# "error": "Unauthorized"
# }), 401
data = request.json
new_entry = CVModel(data).to_dict()
cv = [new_entry]
save_json(CV_FILE, cv)
return jsonify(new_entry), 201
@cv_bp.route('/skills/', methods=['GET'])
def get_skills():
cv = load_data('cv.json')
skills = cv[0].get('my_skills')
return jsonify(skills)
@cv_bp.route('/about/', methods=['GET'])
def get_about():
cv = load_data('cv.json')
about = cv[0].get('about_text')
return jsonify(about)

View 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

View file

@ -0,0 +1,15 @@
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.service_model import ServiceModel
import os
DATA_DIR = os.path.join(os.path.dirname(__file__), '../data')
SERVICES_FILE = os.path.join(DATA_DIR, 'services.json')
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)