1
- import inspect
2
1
from typing import Callable
2
+ from allocation .domain import commands , events
3
3
from allocation .adapters import email , orm , redis_eventpublisher
4
4
from allocation .service_layer import handlers , messagebus , unit_of_work
5
5
@@ -14,17 +14,25 @@ def bootstrap(
14
14
if start_orm :
15
15
orm .start_mappers ()
16
16
17
- dependencies = {'uow' : uow , 'send_mail' : send_mail , 'publish' : publish }
18
17
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 )
22
28
]
23
- for event_type , event_handlers in handlers .EVENT_HANDLERS .items ()
24
29
}
25
30
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 ),
28
36
}
29
37
30
38
return messagebus .MessageBus (
0 commit comments