christopher commited on
Commit
552befd
·
1 Parent(s): 64f44e3

logging fixed

Browse files
Files changed (1) hide show
  1. app.py +42 -1
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import logging
2
- from fastapi import FastAPI, HTTPException, BackgroundTasks
3
  from fastapi.middleware.cors import CORSMiddleware
 
4
  from pydantic import BaseModel
5
  from typing import Dict, Optional, List, Any
6
  import uuid
@@ -84,6 +85,46 @@ class JobStatus(BaseModel):
84
  request: PostRequest
85
  result: Optional[Dict[str, Any]] = None
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  @app.post("/index", response_model=JobStatus)
88
  async def create_job(request: PostRequest, background_tasks: BackgroundTasks):
89
  job_id = str(uuid.uuid4())
 
1
  import logging
2
+ from fastapi import FastAPI, HTTPException, BackgroundTasks, Request
3
  from fastapi.middleware.cors import CORSMiddleware
4
+ from fastapi.responses import JSONResponse
5
  from pydantic import BaseModel
6
  from typing import Dict, Optional, List, Any
7
  import uuid
 
85
  request: PostRequest
86
  result: Optional[Dict[str, Any]] = None
87
 
88
+ @app.get("/")
89
+ async def root(request: Request):
90
+ """Root endpoint with API information"""
91
+ logger.info(f"Root access from {request.client.host}")
92
+ return {
93
+ "message": "Kairos News API is running",
94
+ "endpoints": {
95
+ "create_job": {"method": "POST", "path": "/index"},
96
+ "check_status": {"method": "GET", "path": "/loading"},
97
+ "get_logs": {"method": "GET", "path": "/logs"}
98
+ }
99
+ }
100
+
101
+ @app.get("/logs")
102
+ async def get_logs(log_type: str = None):
103
+ """Endpoint for log retrieval"""
104
+ if log_type == "container":
105
+ return {"message": "Container logs endpoint", "status": "Not implemented"}
106
+ return {
107
+ "message": "Available log types: container",
108
+ "usage": "/logs?log_type=container"
109
+ }
110
+
111
+ @app.exception_handler(404)
112
+ async def not_found_exception_handler(request: Request, exc: HTTPException):
113
+ """Custom 404 handler"""
114
+ logger.warning(f"404 Not Found: {request.url}")
115
+ return JSONResponse(
116
+ status_code=404,
117
+ content={
118
+ "message": "Endpoint not found",
119
+ "available_endpoints": [
120
+ {"path": "/", "method": "GET"},
121
+ {"path": "/index", "method": "POST"},
122
+ {"path": "/loading", "method": "GET"},
123
+ {"path": "/logs", "method": "GET"}
124
+ ]
125
+ },
126
+ )
127
+
128
  @app.post("/index", response_model=JobStatus)
129
  async def create_job(request: PostRequest, background_tasks: BackgroundTasks):
130
  job_id = str(uuid.uuid4())