@@ -26,41 +26,47 @@ class FulfillmentExample(FulfillmentAutomation):
2626 def process_request (self , request ):
2727 # type: (Fulfillment) -> Union[ActivationTemplateResponse, ActivationTileResponse]
2828
29- logger .info ('Processing request {} for contract {}, product {}, marketplace {}'
30- .format (request .id ,
31- request .contract .id ,
32- request .asset .product .name ,
33- request .marketplace .name ))
34-
35- # Custom logic
36- if request .type == 'purchase' :
37- for item in request .asset .items :
38- if item .quantity > 100000 :
39- raise FailRequest (
40- message = 'Is Not possible to purchase product' )
41-
42- for param in request .asset .params :
43- if param .name == 'email' and not param .value :
44- param .value_error = 'Email address has not been provided, please provide one'
45- raise InquireRequest (params = [param ])
46-
47- # Approve by ActivationTile
48- return ActivationTileResponse ('\n # Welcome to Fallball!\n \n Yes, you decided '
49- 'to have an account in our amazing service!' )
50- # Or
51- # return TemplateResource().render(pk='TEMPLATE_ID', request_id=request.id)
52-
53- # Approve by Template
54- # return ActivationTemplateResponse('TL-497-535-242')
55- # Or
56- # return TemplateResource().get(pk='TEMPLATE_ID')
57-
58- elif request .type == 'change' :
59- # Fail
60- raise FailRequest ()
61- else :
62- # Skip request
29+ if request .needs_migration ():
30+ # Skip request if it needs migration (migration is performed by an external service)
31+ logger .info ('Skipping request {} because it needs migration.' .format (request .id ))
6332 raise SkipRequest ()
33+ else :
34+ logger .info ('Processing request {} for contract {}, product {}, marketplace {}'
35+ .format (request .id ,
36+ request .contract .id ,
37+ request .asset .product .name ,
38+ request .marketplace .name ))
39+
40+ # Custom logic
41+ if request .type == 'purchase' :
42+ for item in request .asset .items :
43+ if item .quantity > 100000 :
44+ raise FailRequest (
45+ message = 'Is Not possible to purchase product' )
46+
47+ for param in request .asset .params :
48+ if param .name == 'email' and not param .value :
49+ param .value_error = 'Email address has not been provided, ' \
50+ 'please provide one'
51+ raise InquireRequest (params = [param ])
52+
53+ # Approve by ActivationTile
54+ return ActivationTileResponse ('\n # Welcome to Fallball!\n \n Yes, you decided '
55+ 'to have an account in our amazing service!' )
56+ # Or
57+ # return TemplateResource().render(pk='TEMPLATE_ID', request_id=request.id)
58+
59+ # Approve by Template
60+ # return ActivationTemplateResponse('TL-497-535-242')
61+ # Or
62+ # return TemplateResource().get(pk='TEMPLATE_ID')
63+
64+ elif request .type == 'change' :
65+ # Fail
66+ raise FailRequest ()
67+ else :
68+ # Skip request
69+ raise SkipRequest ()
6470
6571
6672if __name__ == '__main__' :
0 commit comments