fix: update OPC routers to use request.state.user instead of Depends(_inject_user)
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
"""
|
||||
OPC Projects and Invoicing Router
|
||||
"""
|
||||
from fastapi import APIRouter, Depends, HTTPException, Response
|
||||
from fastapi import APIRouter, Depends, HTTPException, Response, Request
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
from db import opc_db
|
||||
from rbac import User, _inject_user
|
||||
from rbac import User
|
||||
from services import pdf_service
|
||||
from datetime import datetime
|
||||
|
||||
@@ -26,9 +26,10 @@ class InvoiceGenerate(BaseModel):
|
||||
|
||||
@router.get("/projects")
|
||||
async def list_projects(
|
||||
user: User = Depends(_inject_user)
|
||||
request: Request,
|
||||
):
|
||||
"""List all projects"""
|
||||
user: User = request.state.user
|
||||
pool = await opc_db.get_pool()
|
||||
async with pool.acquire() as conn:
|
||||
rows = await conn.fetch("SELECT * FROM projects ORDER BY created_at DESC")
|
||||
@@ -38,9 +39,10 @@ async def list_projects(
|
||||
@router.post("/projects")
|
||||
async def create_project(
|
||||
project: ProjectCreate,
|
||||
user: User = Depends(_inject_user)
|
||||
request: Request,
|
||||
):
|
||||
"""Create a new project"""
|
||||
user: User = request.state.user
|
||||
pool = await opc_db.get_pool()
|
||||
async with pool.acquire() as conn:
|
||||
row = await conn.fetchrow("""
|
||||
@@ -53,9 +55,10 @@ async def create_project(
|
||||
|
||||
@router.get("/clients")
|
||||
async def list_clients(
|
||||
user: User = Depends(_inject_user)
|
||||
request: Request,
|
||||
):
|
||||
"""List all clients"""
|
||||
user: User = request.state.user
|
||||
pool = await opc_db.get_pool()
|
||||
async with pool.acquire() as conn:
|
||||
rows = await conn.fetch("SELECT * FROM clients ORDER BY name")
|
||||
@@ -64,12 +67,13 @@ async def list_clients(
|
||||
|
||||
@router.post("/clients")
|
||||
async def create_client(
|
||||
request: Request,
|
||||
name: str,
|
||||
email: Optional[str] = None,
|
||||
company: Optional[str] = None,
|
||||
user: User = Depends(_inject_user)
|
||||
):
|
||||
"""Create a new client"""
|
||||
user: User = request.state.user
|
||||
pool = await opc_db.get_pool()
|
||||
async with pool.acquire() as conn:
|
||||
row = await conn.fetchrow("""
|
||||
@@ -83,9 +87,10 @@ async def create_client(
|
||||
@router.post("/invoices/generate")
|
||||
async def generate_invoice(
|
||||
invoice: InvoiceGenerate,
|
||||
user: User = Depends(_inject_user)
|
||||
request: Request,
|
||||
):
|
||||
"""Generate PDF invoice for a project"""
|
||||
user: User = request.state.user
|
||||
pool = await opc_db.get_pool()
|
||||
async with pool.acquire() as conn:
|
||||
# Get client
|
||||
@@ -128,9 +133,10 @@ async def generate_invoice(
|
||||
@router.get("/projects/{project_id}/time")
|
||||
async def get_project_time(
|
||||
project_id: int,
|
||||
user: User = Depends(_inject_user)
|
||||
request: Request,
|
||||
):
|
||||
"""Get time entries for a project"""
|
||||
user: User = request.state.user
|
||||
entries = await opc_db.get_time_entries(project_id=project_id)
|
||||
total_minutes = sum(e["duration_minutes"] for e in entries)
|
||||
billable_minutes = sum(e["duration_minutes"] for e in entries if e.get("billable"))
|
||||
|
||||
Reference in New Issue
Block a user