@@ -8,6 +8,12 @@ import CustomError from '../errors/custom.error';
8
8
import SkipError from '../errors/skip.error' ;
9
9
import { apiError } from '../api/error.api' ;
10
10
import { formatErrorResponse } from '../errors/mollie.error' ;
11
+ import { createPaymentExtension , deletePaymentExtension } from '../commercetools/extensions.commercetools' ;
12
+ import {
13
+ createCustomPaymentInterfaceInteractionType ,
14
+ createCustomPaymentTransactionCancelReasonType ,
15
+ createCustomPaymentType ,
16
+ } from '../commercetools/customFields.commercetools' ;
11
17
12
18
/**
13
19
* Exposed service endpoint.
@@ -33,24 +39,64 @@ export const post = async (request: Request, response: Response) => {
33
39
data = await paymentController ( action , resource ) ;
34
40
logger . debug ( 'SCTM - Processor - Finish processing payment requests' ) ;
35
41
} else {
42
+ logger . debug ( `SCTM - Processor - Internal Server Error - Resource not recognized. Allowed values are 'payment'.` ) ;
36
43
throw new CustomError ( 500 , `Internal Server Error - Resource not recognized. Allowed values are 'payment'.` ) ;
37
44
}
38
45
39
46
return apiSuccess ( 200 , response , data ?. actions ) ;
40
47
} catch ( error ) {
41
48
if ( error instanceof SkipError ) {
42
- logger . debug ( 'Skip action' , error . message ) ;
49
+ logger . debug ( 'SCTM - Processor - Skip action' , error . message ) ;
43
50
44
51
return apiSuccess ( 200 , response , [ ] ) ;
45
52
}
46
53
if ( error instanceof CustomError ) {
47
- logger . debug ( 'Error occurred when processing request' , error ) ;
54
+ logger . debug ( 'SCTM - Processor - Error occurred when processing request' , error ) ;
48
55
49
56
return apiError ( response , error . errors ) ;
50
57
}
51
58
52
- logger . debug ( 'Unexpected error occurred when processing request' , error ) ;
59
+ logger . debug ( 'SCTM - Processor - Unexpected error occurred when processing request' , error ) ;
53
60
54
61
return apiError ( response , formatErrorResponse ( error ) . errors ) ;
55
62
}
56
63
} ;
64
+
65
+ /**
66
+ * Exposed service endpoint.
67
+ * - Creates the Mollie payment extension, CustomPaymentType, CustomPaymentInterfaceInteractionType and CustomPaymentTransactionCancelReasonType.
68
+ *
69
+ * @param {Request } request The express request
70
+ * @param {Response } response The express response
71
+ * @returns
72
+ */
73
+ export const installation = async ( request : Request , response : Response ) => {
74
+ const { extensionUrl } = request . body ;
75
+
76
+ if ( ! extensionUrl ) {
77
+ logger . debug ( 'SCTM - installation - Missing body parameters {extensionUrl}.' ) ;
78
+ return apiError ( response , formatErrorResponse ( new CustomError ( 400 , 'Missing body parameters.' ) ) . errors ) ;
79
+ }
80
+
81
+ try {
82
+ await createPaymentExtension ( extensionUrl ) ;
83
+ await createCustomPaymentType ( ) ;
84
+ await createCustomPaymentInterfaceInteractionType ( ) ;
85
+ await createCustomPaymentTransactionCancelReasonType ( ) ;
86
+ logger . debug ( 'SCTM - installation - Finish processing installation requests' ) ;
87
+ return apiSuccess ( 200 , response , [ ] ) ;
88
+ } catch ( error ) {
89
+ logger . debug ( 'SCTM - installation - Unexpected error occurred when processing request' , error ) ;
90
+ return apiError ( response , formatErrorResponse ( error ) . errors ) ;
91
+ }
92
+ } ;
93
+
94
+ export const uninstallation = async ( request : Request , response : Response ) => {
95
+ try {
96
+ deletePaymentExtension ( ) ;
97
+ return apiSuccess ( 200 , response , [ ] ) ;
98
+ } catch ( error ) {
99
+ logger . debug ( 'SCTM - uninstallation - Unexpected error occurred when processing request' , error ) ;
100
+ return apiError ( response , formatErrorResponse ( error ) . errors ) ;
101
+ }
102
+ } ;
0 commit comments