1- import inspect
21from typing import Callable
2+ from allocation .domain import commands , events
33from allocation .adapters import email , orm , redis_eventpublisher
44from allocation .service_layer import handlers , messagebus , unit_of_work
55
@@ -14,17 +14,25 @@ def bootstrap(
1414 if start_orm :
1515 orm .start_mappers ()
1616
17- dependencies = {'uow' : uow , 'send_mail' : send_mail , 'publish' : publish }
1817 injected_event_handlers = {
19- event_type : [
20- inject_dependencies (handler , dependencies )
21- for handler in event_handlers
18+ events .Allocated : [
19+ lambda e : handlers .publish_allocated_event (e , publish ),
20+ lambda e : handlers .add_allocation_to_read_model (e , uow ),
21+ ],
22+ events .Deallocated : [
23+ lambda e : handlers .remove_allocation_from_read_model (e , uow ),
24+ lambda e : handlers .reallocate (e , uow ),
25+ ],
26+ events .OutOfStock : [
27+ lambda e : handlers .send_out_of_stock_notification (e , send_mail )
2228 ]
23- for event_type , event_handlers in handlers .EVENT_HANDLERS .items ()
2429 }
2530 injected_command_handlers = {
26- command_type : inject_dependencies (handler , dependencies )
27- for command_type , handler in handlers .COMMAND_HANDLERS .items ()
31+ commands .Allocate : lambda c : handlers .allocate (c , uow ),
32+ commands .CreateBatch : \
33+ lambda c : handlers .add_batch (c , uow ),
34+ commands .ChangeBatchQuantity : \
35+ lambda c : handlers .change_batch_quantity (c , uow ),
2836 }
2937
3038 return messagebus .MessageBus (
0 commit comments