v
This commit is contained in:
43
app/sbin/api
43
app/sbin/api
@@ -59,7 +59,8 @@ def init_db():
|
||||
domains TEXT,
|
||||
status CHAR(20),
|
||||
created DATE,
|
||||
bump DATE
|
||||
bump DATE,
|
||||
secret TEXT
|
||||
)
|
||||
''')
|
||||
conn.commit()
|
||||
@@ -94,7 +95,7 @@ class ContainerModel(BaseModel):
|
||||
status: Optional[str] = None
|
||||
created: Optional[str] = None
|
||||
bump: Optional[str] = None
|
||||
|
||||
secret: Optional[Dict[str, Any]] = None
|
||||
|
||||
class UUIDRequest(BaseModel):
|
||||
UUID: str
|
||||
@@ -109,27 +110,27 @@ def redirect_to_odoo():
|
||||
@app.post("/container/update", dependencies=[Depends(verify_api_key)])
|
||||
def update_container(request: ContainerModel):
|
||||
env_str = json.dumps(request.env) if isinstance(request.env, dict) else request.env
|
||||
|
||||
secret_str = json.dumps(request.secret) if isinstance(request.secret, dict) else request.secret
|
||||
existing = execute_db("SELECT * FROM containers WHERE UUID = ?", (request.UUID,), fetch=True)
|
||||
if existing:
|
||||
execute_db("""
|
||||
UPDATE containers SET email=?, expires=?, tags=?, env=?, affiliate=?, image=?,
|
||||
history=?, comment=?, domains=?, status=?, created=?, bump=?
|
||||
history=?, comment=?, domains=?, status=?, created=?, bump=?, secret=?
|
||||
WHERE UUID=?
|
||||
""", (
|
||||
request.email, request.expires, request.tags, env_str, request.affiliate,
|
||||
request.image, request.history, request.comment, request.domains, request.status,
|
||||
request.created, request.bump, request.UUID
|
||||
request.created, request.bump, secret_str, request.UUID
|
||||
))
|
||||
else:
|
||||
execute_db("""
|
||||
INSERT INTO containers (UUID, email, expires, tags, env, affiliate, image, history,
|
||||
comment, domains, status, created, bump)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
comment, domains, status, created, bump, secret)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""", (
|
||||
request.UUID, request.email, request.expires, request.tags, env_str,
|
||||
request.affiliate, request.image, request.history, request.comment,
|
||||
request.domains, request.status, request.created, request.bump
|
||||
request.domains, request.status, request.created, request.bump, secret_str
|
||||
))
|
||||
return {"message": "Container updated or created"}
|
||||
|
||||
@@ -154,11 +155,31 @@ def nuke_container(request: UUIDRequest):
|
||||
|
||||
@app.post("/container/info", dependencies=[Depends(verify_api_key)])
|
||||
def info_container(request: Optional[UUIDRequest] = None):
|
||||
fields = [
|
||||
"ID", "UUID", "email", "expires", "tags", "env", "affiliate",
|
||||
"image", "history", "comment", "domains", "status", "created"
|
||||
]
|
||||
field_str = ", ".join(fields)
|
||||
|
||||
if request:
|
||||
rows = execute_db("SELECT * FROM containers WHERE UUID=?", (request.UUID,), fetch=True)
|
||||
rows = execute_db(
|
||||
f"SELECT {field_str} FROM containers WHERE UUID=?",
|
||||
(request.UUID,),
|
||||
fetch=True
|
||||
)
|
||||
else:
|
||||
rows = execute_db("SELECT * FROM containers", fetch=True)
|
||||
return {"containers": rows}
|
||||
rows = execute_db(
|
||||
f"SELECT {field_str} FROM containers",
|
||||
fetch=True
|
||||
)
|
||||
|
||||
# Map rows to dicts with field names
|
||||
containers = [dict(zip(fields, row)) for row in rows]
|
||||
|
||||
# Wrap in N8N JSON format
|
||||
n8n_items = [{"json": container} for container in containers]
|
||||
|
||||
return n8n_items
|
||||
|
||||
|
||||
@app.post("/container/bump", dependencies=[Depends(verify_api_key)])
|
||||
|
||||
Reference in New Issue
Block a user