feat(api): expose CC unread count and mark-read endpoints.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
7f8c163c47
commit
fbfbaa6d17
1 file changed
+70
-1
@@ -490,6 +490,11 @@ class OaTaskActionBody(BaseModel):
|
||||
comment: Optional[str] = None
|
||||
|
||||
|
||||
class OaCcReadBatchBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
ids: List[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class OaAddSignBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
user_ids: List[str] = Field(default_factory=list, alias="userIds")
|
||||
@@ -695,9 +700,69 @@ async def get_related_summaries(
|
||||
return success_response({"list": items})
|
||||
|
||||
|
||||
@router.get("/tasks/cc/unread-count")
|
||||
async def oa_cc_unread_count(
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
from app.services.oa_engine import OaEngineError, count_cc_unread
|
||||
|
||||
try:
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
n = count_cc_unread(
|
||||
db, tenant_no=tenant_no, user_id=user.get("user_id") or ""
|
||||
)
|
||||
return success_response({"count": int(n)})
|
||||
except OaEngineError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/tasks/cc/read-batch")
|
||||
async def oa_cc_read_batch(
|
||||
body: OaCcReadBatchBody,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
from app.services.oa_engine import OaEngineError, mark_cc_tasks_read_batch
|
||||
|
||||
try:
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
data = mark_cc_tasks_read_batch(
|
||||
db,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id") or "",
|
||||
ids=body.ids or [],
|
||||
)
|
||||
return success_response(data, message="已标记已读")
|
||||
except OaEngineError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/tasks/{task_id}/read")
|
||||
async def oa_task_mark_read(
|
||||
task_id: str,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
from app.services.oa_engine import OaEngineError, mark_cc_task_read
|
||||
|
||||
try:
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
data = mark_cc_task_read(
|
||||
db,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id") or "",
|
||||
task_id=task_id,
|
||||
)
|
||||
return success_response(data, message="已标记已读")
|
||||
except OaEngineError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/tasks/{kind}")
|
||||
async def list_oa_tasks(
|
||||
kind: str,
|
||||
readStatus: Optional[str] = Query(None, alias="readStatus"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
@@ -706,7 +771,11 @@ async def list_oa_tasks(
|
||||
try:
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
items = list_tasks(
|
||||
db, tenant_no=tenant_no, user_id=user.get("user_id") or "", kind=kind
|
||||
db,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id") or "",
|
||||
kind=kind,
|
||||
read_status=readStatus,
|
||||
)
|
||||
return success_response({"list": items})
|
||||
except OaEngineError as e:
|
||||
|
||||
Reference in new issue
Block a user