Spaces:
Building
Building
Update project_controller.py
Browse files- project_controller.py +28 -0
project_controller.py
CHANGED
@@ -5,6 +5,29 @@ import copy
|
|
5 |
|
6 |
router = APIRouter()
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
@router.post("/project/new")
|
9 |
def create_project(name: str, config: ServiceConfig = Depends(get_config)):
|
10 |
if any(p['name'] == name for p in config.data['projects']):
|
@@ -28,6 +51,11 @@ def delete_project(name: str, config: ServiceConfig = Depends(get_config)):
|
|
28 |
log(f"ποΈ Project '{name}' deleted")
|
29 |
return { "status": "success" }
|
30 |
|
|
|
|
|
|
|
|
|
|
|
31 |
@router.post("/project/new-version")
|
32 |
def create_new_version(project_name: str, base_version_no: int, config: ServiceConfig = Depends(get_config)):
|
33 |
project = next((p for p in config.data['projects'] if p['name'] == project_name), None)
|
|
|
5 |
|
6 |
router = APIRouter()
|
7 |
|
8 |
+
@router.get("/project/details")
|
9 |
+
def get_project_details(config: ServiceConfig = Depends(get_config)):
|
10 |
+
project = config.get_current_project()
|
11 |
+
return project
|
12 |
+
|
13 |
+
@router.post("/project/update")
|
14 |
+
def update_project(config: ServiceConfig = Depends(get_config)):
|
15 |
+
# Implement project update logic here if needed
|
16 |
+
save_service_config(config)
|
17 |
+
log("β
Project updated")
|
18 |
+
return { "status": "updated" }
|
19 |
+
|
20 |
+
@router.post("/project/publish")
|
21 |
+
def publish_project(config: ServiceConfig = Depends(get_config)):
|
22 |
+
project = config.get_current_project()
|
23 |
+
current_version = next((v for v in project['versions'] if not v.get('published', False)), None)
|
24 |
+
if not current_version:
|
25 |
+
raise HTTPException(status_code=400, detail="No unpublished version found")
|
26 |
+
current_version['published'] = True
|
27 |
+
save_service_config(config)
|
28 |
+
log(f"β
Version {current_version['no']} published for project {project['name']}")
|
29 |
+
return { "status": "published" }
|
30 |
+
|
31 |
@router.post("/project/new")
|
32 |
def create_project(name: str, config: ServiceConfig = Depends(get_config)):
|
33 |
if any(p['name'] == name for p in config.data['projects']):
|
|
|
51 |
log(f"ποΈ Project '{name}' deleted")
|
52 |
return { "status": "success" }
|
53 |
|
54 |
+
@router.get("/project/versions")
|
55 |
+
def get_project_versions(config: ServiceConfig = Depends(get_config)):
|
56 |
+
project = config.get_current_project()
|
57 |
+
return project['versions']
|
58 |
+
|
59 |
@router.post("/project/new-version")
|
60 |
def create_new_version(project_name: str, base_version_no: int, config: ServiceConfig = Depends(get_config)):
|
61 |
project = next((p for p in config.data['projects'] if p['name'] == project_name), None)
|