sachin commited on
Commit
c8002a8
·
1 Parent(s): 4bf5083
Files changed (1) hide show
  1. src/server/main.py +22 -4
src/server/main.py CHANGED
@@ -16,7 +16,7 @@ import requests
16
  from PIL import Image
17
 
18
  # Import from auth.py
19
- from utils.auth import get_current_user, get_current_user_with_admin, login, refresh_token, register, TokenResponse, Settings, LoginRequest, RegisterRequest, bearer_scheme
20
 
21
  # Assuming these are in your project structure
22
  from config.tts_config import SPEED, ResponseFormat, config as tts_config
@@ -178,8 +178,8 @@ async def refresh(credentials: HTTPAuthorizationCredentials = Depends(bearer_sch
178
 
179
  @app.post("/v1/register",
180
  response_model=TokenResponse,
181
- summary="Register New User",
182
- description="Create a new user account and return an access token and refresh token. Requires admin access (use 'admin' user with password 'adminpass' initially).",
183
  tags=["Authentication"],
184
  responses={
185
  200: {"description": "User registered successfully", "model": TokenResponse},
@@ -192,6 +192,24 @@ async def register_user(
192
  ):
193
  return await register(register_request, current_user)
194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  @app.post("/v1/audio/speech",
196
  summary="Generate Speech from Text",
197
  description="Convert text to speech in the specified format using an external TTS service. Rate limited to 5 requests per minute per user. Requires authentication.",
@@ -649,7 +667,7 @@ async def speech_to_speech(
649
  user_id = await get_current_user(credentials)
650
  logger.info("Processing speech-to-speech request", extra={
651
  "endpoint": "/v1/speech_to_speech",
652
- "audio_filename": file.filename, # Changed from 'filename' to avoid KeyError
653
  "language": language,
654
  "client_ip": get_remote_address(request),
655
  "user_id": user_id
 
16
  from PIL import Image
17
 
18
  # Import from auth.py
19
+ from utils.auth import get_current_user, get_current_user_with_admin, login, refresh_token, register, app_register, TokenResponse, Settings, LoginRequest, RegisterRequest, bearer_scheme
20
 
21
  # Assuming these are in your project structure
22
  from config.tts_config import SPEED, ResponseFormat, config as tts_config
 
178
 
179
  @app.post("/v1/register",
180
  response_model=TokenResponse,
181
+ summary="Register New User (Admin)",
182
+ description="Create a new user account and return an access token and refresh token. Requires admin access (use 'admin' user with password 'admin54321' initially).",
183
  tags=["Authentication"],
184
  responses={
185
  200: {"description": "User registered successfully", "model": TokenResponse},
 
192
  ):
193
  return await register(register_request, current_user)
194
 
195
+ @app.post("/v1/app/register",
196
+ response_model=TokenResponse,
197
+ summary="Register New App User",
198
+ description="Create a new user account for the mobile app using an email and device token. Returns an access token and refresh token. Rate limited to 5 requests per minute per IP.",
199
+ tags=["Authentication"],
200
+ responses={
201
+ 200: {"description": "User registered successfully", "model": TokenResponse},
202
+ 400: {"description": "Email already registered"},
203
+ 429: {"description": "Rate limit exceeded"}
204
+ })
205
+ @limiter.limit(settings.speech_rate_limit)
206
+ async def app_register_user(
207
+ request: Request,
208
+ register_request: RegisterRequest
209
+ ):
210
+ logger.info(f"App registration attempt for email: {register_request.username}")
211
+ return await app_register(register_request)
212
+
213
  @app.post("/v1/audio/speech",
214
  summary="Generate Speech from Text",
215
  description="Convert text to speech in the specified format using an external TTS service. Rate limited to 5 requests per minute per user. Requires authentication.",
 
667
  user_id = await get_current_user(credentials)
668
  logger.info("Processing speech-to-speech request", extra={
669
  "endpoint": "/v1/speech_to_speech",
670
+ "audio_filename": file.filename,
671
  "language": language,
672
  "client_ip": get_remote_address(request),
673
  "user_id": user_id