import db
This commit is contained in:
36
app/sbin/api
36
app/sbin/api
@@ -24,7 +24,7 @@ from pathlib import Path
|
||||
DB_PATH = "/4server/data/contracts.db"
|
||||
BIN_PATH = "/4server/sbin"
|
||||
API_KEY = os.getenv("API_KEY", "your-secret-api-key")
|
||||
VERSION = "API: 0.0.7"
|
||||
VERSION = "API: 0.0.8"
|
||||
|
||||
# ---------------------- FastAPI App ----------------------
|
||||
app = FastAPI()
|
||||
@@ -124,6 +124,13 @@ class CommandRequest(BaseModel):
|
||||
uuid: str
|
||||
method: int
|
||||
|
||||
class ImportRequest(BaseModel):
|
||||
filename: str
|
||||
|
||||
class MoveRequest(BaseModel):
|
||||
source: str
|
||||
destination: str
|
||||
|
||||
|
||||
# ---------------------- Routes ----------------------
|
||||
@app.get("/", include_in_schema=False)
|
||||
@@ -362,6 +369,7 @@ async def get_odoo_log_summary(uuid: str):
|
||||
re.compile(r"ERROR"), # Errors
|
||||
re.compile(r"WARNING"), # Warnings
|
||||
re.compile(r"Traceback"), # Tracebacks
|
||||
re.compile(r"Error"),
|
||||
]
|
||||
|
||||
def is_important_line(line: str) -> bool:
|
||||
@@ -396,6 +404,32 @@ async def get_odoo_log_summary(uuid: str):
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"Error reading log files: {e}")
|
||||
|
||||
# ------------------------ BACKUP HANDLING -------------------------------------
|
||||
@app.post("/backup/import", dependencies=[Depends(verify_api_key)])
|
||||
def backup_import(request: ImportRequest):
|
||||
if not request.filename:
|
||||
raise HTTPException(status_code=400, detail="Filename is required")
|
||||
|
||||
command = [f"{BIN_PATH}/ODOO_19/import", request.filename]
|
||||
output = run_command(command)
|
||||
return {"message": output}
|
||||
|
||||
@app.post("/backup/move", dependencies=[Depends(verify_api_key)])
|
||||
def backup_move(request: MoveRequest):
|
||||
if not request.source or not request.destination:
|
||||
raise HTTPException(status_code=400, detail="Source and destination are required")
|
||||
|
||||
if not os.path.exists(request.source):
|
||||
raise HTTPException(status_code=404, detail="Source file does not exist")
|
||||
|
||||
# Use shell command to move the file
|
||||
command = ["mv", request.source, request.destination] # Linux/macOS
|
||||
# For Windows, use: command = ["move", request.source, request.destination]
|
||||
|
||||
output = run_command(command)
|
||||
return {"message": f"Moved {request.source} to {request.destination}", "output": output}
|
||||
|
||||
|
||||
# ---------------------- Entry Point ----------------------
|
||||
if __name__ == "__main__":
|
||||
print(VERSION)
|
||||
|
||||
Reference in New Issue
Block a user