JobData/app/api/v1/company/company.py
2026-01-24 17:07:34 +08:00

48 lines
1.5 KiB
Python

from typing import Any, Dict, Optional
from fastapi import APIRouter, Depends
from pydantic import BaseModel, Field
from app.controllers.company import CompanyController, create_company_controller
from app.schemas.base import Fail, Success
router = APIRouter(tags=["公司搜索"])
class ZhilianSearchRequest(BaseModel):
keyword: str = Field(..., description="公司名称关键词")
city: Optional[str] = Field(None, description="城市名称,如北京")
class QcwySearchRequest(BaseModel):
keyword: str = Field(..., description="公司名称关键词")
async def get_company_controller() -> CompanyController:
return create_company_controller()
@router.post("/zhilian/search", summary="智联招聘公司搜索")
async def zhilian_search_company(
request: ZhilianSearchRequest,
controller: CompanyController = Depends(get_company_controller),
) -> Dict[str, Any]:
try:
data = await controller.search_zhilian_company(request.keyword, request.city)
return Success(data=data)
except Exception as exc:
return Fail(msg=f"智联公司搜索失败: {exc}")
@router.post("/qcwy/search", summary="前程无忧公司搜索")
async def qcwy_search_company(
request: QcwySearchRequest,
controller: CompanyController = Depends(get_company_controller),
) -> Dict[str, Any]:
try:
data = await controller.search_qcwy_company(request.keyword)
return Success(data=data)
except Exception as exc:
return Fail(msg=f"前程无忧公司搜索失败: {exc}")