rsnarsna commited on
Commit
127f214
·
1 Parent(s): b4b88b8

enpoint mapping correctly ...

Browse files
Files changed (1) hide show
  1. backend/main.py +10 -10
backend/main.py CHANGED
@@ -119,7 +119,7 @@ app.mount("/static", StaticFiles(directory=str(BASE_DIR / "static")), name="stat
119
  templates = Jinja2Templates(directory=str(BASE_DIR / "templates"))
120
 
121
  pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
122
- oauth2_scheme = OAuth2PasswordBearer(tokenUrl="login")
123
 
124
  # --- Helper Functions ---
125
  def verify_password(plain_password, hashed_password):
@@ -132,9 +132,9 @@ def get_user_by_email(db: Session, email: str):
132
  return db.query(User).filter(User.email == email).first()
133
 
134
  # ==========================================
135
- # API Endpoints
136
  # ==========================================
137
- @app.post("/signup", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
138
  def signup(user: UserCreate, db: Session = Depends(get_db)):
139
  db_user = get_user_by_email(db, email=user.email)
140
  if db_user:
@@ -157,7 +157,7 @@ def signup(user: UserCreate, db: Session = Depends(get_db)):
157
 
158
  return new_user
159
 
160
- @app.post("/login", response_model=Token)
161
  def login(form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)):
162
  # OAuth2PasswordRequestForm uses 'username' and 'password'
163
  # We map 'username' to 'email' in our DB
@@ -182,7 +182,7 @@ def login(form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depend
182
 
183
  return {"access_token": access_token, "token_type": "bearer"}
184
 
185
- @app.get("/users/me", response_model=UserResponse)
186
  def read_users_me(token: str = Depends(oauth2_scheme), db: Session = Depends(get_db)):
187
  # This is a mock function since we aren't decoding real JWTs yet
188
  email = token.replace("fake-jwt-token-for-", "")
@@ -203,7 +203,7 @@ from fastapi import UploadFile, File as FastAPIFile
203
  from fastapi.responses import FileResponse
204
  import shutil
205
 
206
- @app.post("/upload")
207
  async def upload_file(
208
  file: UploadFile = FastAPIFile(...),
209
  token: str = Depends(oauth2_scheme),
@@ -241,7 +241,7 @@ async def upload_file(
241
  return {"message": "File uploaded successfully", "file_id": db_file.id, "filename": custom_filename}
242
 
243
 
244
- @app.get("/download/{file_id}")
245
  async def download_file(
246
  file_id: int,
247
  token: str = Depends(oauth2_scheme),
@@ -276,7 +276,7 @@ class FileMetaResponse(BaseModel):
276
  from_attributes = True
277
 
278
 
279
- @app.get("/files", response_model=List[FileMetaResponse])
280
  async def list_files(
281
  token: str = Depends(oauth2_scheme),
282
  db: Session = Depends(get_db)
@@ -291,7 +291,7 @@ async def list_files(
291
  return files
292
 
293
 
294
- @app.put("/files/{file_id}")
295
  async def update_file(
296
  file_id: int,
297
  file: UploadFile = FastAPIFile(...),
@@ -333,7 +333,7 @@ async def update_file(
333
  return {"message": "File updated successfully", "file_id": file_record.id, "filename": custom_filename}
334
 
335
 
336
- @app.delete("/files/{file_id}")
337
  async def delete_file(
338
  file_id: int,
339
  token: str = Depends(oauth2_scheme),
 
119
  templates = Jinja2Templates(directory=str(BASE_DIR / "templates"))
120
 
121
  pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
122
+ oauth2_scheme = OAuth2PasswordBearer(tokenUrl="api/login")
123
 
124
  # --- Helper Functions ---
125
  def verify_password(plain_password, hashed_password):
 
132
  return db.query(User).filter(User.email == email).first()
133
 
134
  # ==========================================
135
+ # JSON API Endpoints (prefixed with /api/)
136
  # ==========================================
137
+ @app.post("/api/signup", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
138
  def signup(user: UserCreate, db: Session = Depends(get_db)):
139
  db_user = get_user_by_email(db, email=user.email)
140
  if db_user:
 
157
 
158
  return new_user
159
 
160
+ @app.post("/api/login", response_model=Token)
161
  def login(form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)):
162
  # OAuth2PasswordRequestForm uses 'username' and 'password'
163
  # We map 'username' to 'email' in our DB
 
182
 
183
  return {"access_token": access_token, "token_type": "bearer"}
184
 
185
+ @app.get("/api/users/me", response_model=UserResponse)
186
  def read_users_me(token: str = Depends(oauth2_scheme), db: Session = Depends(get_db)):
187
  # This is a mock function since we aren't decoding real JWTs yet
188
  email = token.replace("fake-jwt-token-for-", "")
 
203
  from fastapi.responses import FileResponse
204
  import shutil
205
 
206
+ @app.post("/api/upload")
207
  async def upload_file(
208
  file: UploadFile = FastAPIFile(...),
209
  token: str = Depends(oauth2_scheme),
 
241
  return {"message": "File uploaded successfully", "file_id": db_file.id, "filename": custom_filename}
242
 
243
 
244
+ @app.get("/api/download/{file_id}")
245
  async def download_file(
246
  file_id: int,
247
  token: str = Depends(oauth2_scheme),
 
276
  from_attributes = True
277
 
278
 
279
+ @app.get("/api/files", response_model=List[FileMetaResponse])
280
  async def list_files(
281
  token: str = Depends(oauth2_scheme),
282
  db: Session = Depends(get_db)
 
291
  return files
292
 
293
 
294
+ @app.put("/api/files/{file_id}")
295
  async def update_file(
296
  file_id: int,
297
  file: UploadFile = FastAPIFile(...),
 
333
  return {"message": "File updated successfully", "file_id": file_record.id, "filename": custom_filename}
334
 
335
 
336
+ @app.delete("/api/files/{file_id}")
337
  async def delete_file(
338
  file_id: int,
339
  token: str = Depends(oauth2_scheme),