Skip to content

Commit d5933b4

Browse files
surajitsurajit
authored andcommitted
move company endpoint to company routes
1 parent 9a7bd0d commit d5933b4

File tree

3 files changed

+66
-49
lines changed

3 files changed

+66
-49
lines changed

app.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from fastapi import FastAPI
2+
from fastapi import Request
3+
from fastapi import Depends
4+
from fastapi import HTTPException
5+
from fastapi.templating import Jinja2Templates
6+
from sqlalchemy.orm import Session
7+
8+
from crud.company import CompanyExistException
9+
from dependencies.dependencies import get_db
10+
from schemas import schema
11+
from hubspot_api import utils
12+
from crud import company as _company
13+
from routes import email
14+
from routes import contact
15+
from routes import company
16+
17+
app = FastAPI()
18+
app.include_router(email.router)
19+
app.include_router(contact.router)
20+
app.include_router(company.router)
21+
22+
templates = Jinja2Templates(directory="templates")
23+
24+
25+
@app.get("/")
26+
def read_root(request: Request):
27+
return templates.TemplateResponse(
28+
"charge.html", {"request": request, "name": "surajit"}
29+
)

main.py

Lines changed: 0 additions & 48 deletions
This file was deleted.

routes/company.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,37 @@
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

Comments
 (0)