|
1 | | -# TODO - Move company routes from main.py into this |
| 1 | +from fastapi import APIRouter |
| 2 | +from fastapi import Depends |
| 3 | +from fastapi import HTTPException |
| 4 | +from sqlalchemy.orm import Session |
| 5 | + |
| 6 | +from crud.company import CompanyExistException |
| 7 | +from schemas import schema |
| 8 | +from hubspot_api import utils |
| 9 | +from dependencies.dependencies import get_db |
| 10 | +from crud import company as _company |
| 11 | + |
| 12 | +router = APIRouter( |
| 13 | + tags=["company"], |
| 14 | + responses={404: {"description": "Not found"}}, |
| 15 | +) |
| 16 | + |
| 17 | + |
| 18 | +@router.post("/companies/") |
| 19 | +def create_company(company: schema.CreateCompany, db: Session = Depends(get_db)): |
| 20 | + db_company = None |
| 21 | + try: |
| 22 | + db_company = _company.create_company(db, company) |
| 23 | + company = utils.create_company(data=company.dict()) |
| 24 | + except (utils.ContactException, CompanyExistException) as exc: |
| 25 | + if isinstance(exc, utils.ContactException) and db_company: |
| 26 | + _company.delete_company(db, db_company.id) |
| 27 | + raise HTTPException(status_code=200, detail=str(exc)) |
| 28 | + return company |
| 29 | + |
| 30 | + |
| 31 | +@router.get("/company/{company_name}/") |
| 32 | +def get_company(company_name): |
| 33 | + try: |
| 34 | + company = utils.get_company_by_name(company_name) |
| 35 | + except utils.CompanyException as exc: |
| 36 | + raise HTTPException(status_code=200, detail=str(exc)) |
| 37 | + return company |
0 commit comments