Skip to content

Commit 46e1ff4

Browse files
surajitsurajit
authored andcommitted
update charge api endpoint
1 parent 6cf7ef1 commit 46e1ff4

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

crud/charge.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33

44
from models import payment
55

6+
67
class ChargeExistException(Exception):
78
pass
89

910

10-
async def add_charge(db: Session, charge):
11+
async def add_charge(db: Session, charge, org_id: int):
1112
try:
12-
db_item = payment.Charge(**charge)
13+
charge_dict = charge.dict()
14+
del charge_dict["company_name"]
15+
charge_dict["org_id"] = org_id
16+
db_item = payment.Charge(**charge_dict)
1317
db.add(db_item)
1418
db.commit()
1519
db.refresh(db_item)

routes/v1/charge.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from logger.log import save_log
1212
from dependencies.dependencies import get_db
1313
from crud import charge as _charge
14+
from schemas.schema import CreateCharge
1415

1516
router = APIRouter(
1617
prefix="/api/v1",
@@ -21,19 +22,11 @@
2122

2223
@router.post("/charges/")
2324
@save_log
24-
async def create_charge(request: Request, db: Session = Depends(get_db)):
25+
async def create_charge(request: Request, charge: CreateCharge, db: Session = Depends(get_db)):
2526
try:
26-
data = await request.json()
27-
company_name = data["company_name"]
27+
company_name = charge.company_name
2828
company = filter_company_by_name(db, company_name).all()[0]
29-
company_data = dict(
30-
currency=data["currency"],
31-
amount=data["amount"],
32-
charge_type=data["charge_type"],
33-
org_id=company.id,
34-
created_at=datetime.datetime.now(),
35-
)
36-
response = await _charge.add_charge(db, company_data)
29+
response = await _charge.add_charge(db, charge, company.id)
3730
except ChargeExistException as exc:
3831
raise HTTPException(status_code=200, detail=str(exc))
3932
return response

schemas/schema.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,15 @@ class CreateContact(ContactBase):
2020

2121
class CreateCompany(CompanyBase):
2222
pass
23+
24+
25+
class ChargeBase(BaseModel):
26+
currency: str
27+
amount: int
28+
charge_type: str
29+
company_name: str
30+
31+
32+
class CreateCharge(ChargeBase):
33+
pass
34+

0 commit comments

Comments
 (0)