11from datetime import datetime
22from flask import Flask , request
33
4+ from allocation .domain import events
45from allocation .adapters import orm
5- from allocation .service_layer import services , unit_of_work
6- from allocation .service_layer .services import InvalidSku
6+ from allocation .service_layer import messagebus , unit_of_work
7+ from allocation .service_layer .handlers import InvalidSku
78
89app = Flask (__name__ )
910orm .start_mappers ()
@@ -14,25 +15,21 @@ def add_batch():
1415 eta = request .json ["eta" ]
1516 if eta is not None :
1617 eta = datetime .fromisoformat (eta ).date ()
17- services .add_batch (
18- request .json ["ref" ],
19- request .json ["sku" ],
20- request .json ["qty" ],
21- eta ,
22- unit_of_work .SqlAlchemyUnitOfWork (),
18+ event = events .BatchCreated (
19+ request .json ["ref" ], request .json ["sku" ], request .json ["qty" ], eta
2320 )
21+ messagebus .handle (event , unit_of_work .SqlAlchemyUnitOfWork ())
2422 return "OK" , 201
2523
2624
2725@app .route ("/allocate" , methods = ["POST" ])
2826def allocate_endpoint ():
2927 try :
30- batchref = services .allocate (
31- request .json ["orderid" ],
32- request .json ["sku" ],
33- request .json ["qty" ],
34- unit_of_work .SqlAlchemyUnitOfWork (),
28+ event = events .AllocationRequired (
29+ request .json ["orderid" ], request .json ["sku" ], request .json ["qty" ]
3530 )
31+ results = messagebus .handle (event , unit_of_work .SqlAlchemyUnitOfWork ())
32+ batchref = results .pop (0 )
3633 except InvalidSku as e :
3734 return {"message" : str (e )}, 400
3835
0 commit comments