@fiado/api-invoker 4.1.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/container.config.js +8 -0
- package/bin/index.d.ts +2 -0
- package/bin/index.js +2 -0
- package/bin/messages-connector/api/MessagesConnectorApi.d.ts +17 -0
- package/bin/messages-connector/api/MessagesConnectorApi.js +50 -0
- package/bin/messages-connector/api/interfaces/IMessagesConnectorApi.d.ts +12 -0
- package/bin/messages-connector/api/interfaces/IMessagesConnectorApi.js +1 -0
- package/bin/messages-connector/index.d.ts +4 -0
- package/bin/messages-connector/index.js +4 -0
- package/bin/messages-connector/queue/MessagesConnectorPublisher.d.ts +7 -0
- package/bin/messages-connector/queue/MessagesConnectorPublisher.js +23 -0
- package/bin/messages-connector/queue/interfaces/IMessagesConnectorPublisher.d.ts +4 -0
- package/bin/messages-connector/queue/interfaces/IMessagesConnectorPublisher.js +1 -0
- package/bin/sns-ses-connector/api/SnsSesConnectorApi.d.ts +10 -0
- package/bin/sns-ses-connector/api/SnsSesConnectorApi.js +30 -0
- package/bin/sns-ses-connector/api/interfaces/ISnsSesConnectorApi.d.ts +5 -0
- package/bin/sns-ses-connector/api/interfaces/ISnsSesConnectorApi.js +1 -0
- package/bin/sns-ses-connector/index.d.ts +2 -0
- package/bin/sns-ses-connector/index.js +2 -0
- package/package.json +3 -2
- package/src/container.config.ts +9 -0
- package/src/index.ts +2 -0
- package/src/messages-connector/api/MessagesConnectorApi.ts +50 -0
- package/src/messages-connector/api/interfaces/IMessagesConnectorApi.ts +25 -0
- package/src/messages-connector/index.ts +4 -0
- package/src/messages-connector/queue/MessagesConnectorPublisher.ts +18 -0
- package/src/messages-connector/queue/interfaces/IMessagesConnectorPublisher.ts +5 -0
- package/src/sns-ses-connector/api/SnsSesConnectorApi.ts +17 -0
- package/src/sns-ses-connector/api/interfaces/ISnsSesConnectorApi.ts +6 -0
- package/src/sns-ses-connector/index.ts +2 -0
package/bin/container.config.js
CHANGED
|
@@ -96,6 +96,10 @@ import { AiEngineApi } from "./ai-engine-connector/index.js";
|
|
|
96
96
|
import BenefitsMarketplaceApi from "./benefits-marketplace/api/BenefitsMarketplaceApi.js";
|
|
97
97
|
// UniTeller remittance connector (Fase 2 remittance)
|
|
98
98
|
import { UnitellerConnectorApi } from "./uniteller-connector/index.js";
|
|
99
|
+
// SNS-SES connector + messages-connector
|
|
100
|
+
import { SnsSesConnectorApi } from "./sns-ses-connector/index.js";
|
|
101
|
+
import { MessagesConnectorApi } from "./messages-connector/index.js";
|
|
102
|
+
import MessagesConnectorPublisher from "./messages-connector/queue/MessagesConnectorPublisher.js";
|
|
99
103
|
export const apiInvokerBindings = new ContainerModule(({ bind }) => {
|
|
100
104
|
// UTILS bindings
|
|
101
105
|
bind("InvokerUtils").to(InvokerUtils);
|
|
@@ -201,4 +205,8 @@ export const apiInvokerBindings = new ContainerModule(({ bind }) => {
|
|
|
201
205
|
bind("IBenefitsMarketplaceApi").to(BenefitsMarketplaceApi);
|
|
202
206
|
// UniTeller remittance connector (Fase 2 remittance) - benefits-marketplace → uniteller-connector
|
|
203
207
|
bind("IUnitellerConnectorApi").to(UnitellerConnectorApi);
|
|
208
|
+
// SNS-SES connector (HTTP) y messages-connector (HTTP + SQS publisher)
|
|
209
|
+
bind("ISnsSesConnectorApi").to(SnsSesConnectorApi);
|
|
210
|
+
bind("IMessagesConnectorApi").to(MessagesConnectorApi);
|
|
211
|
+
bind("IMessagesConnectorPublisher").to(MessagesConnectorPublisher);
|
|
204
212
|
});
|
package/bin/index.d.ts
CHANGED
|
@@ -73,3 +73,5 @@ export * from "./countries-business/index.js";
|
|
|
73
73
|
export * from "./ai-engine-connector/index.js";
|
|
74
74
|
export * from "./benefits-marketplace/index.js";
|
|
75
75
|
export * from "./milestone-business/index.js";
|
|
76
|
+
export * from "./sns-ses-connector/index.js";
|
|
77
|
+
export * from "./messages-connector/index.js";
|
package/bin/index.js
CHANGED
|
@@ -73,3 +73,5 @@ export * from "./countries-business/index.js";
|
|
|
73
73
|
export * from "./ai-engine-connector/index.js";
|
|
74
74
|
export * from "./benefits-marketplace/index.js";
|
|
75
75
|
export * from "./milestone-business/index.js";
|
|
76
|
+
export * from "./sns-ses-connector/index.js";
|
|
77
|
+
export * from "./messages-connector/index.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IHttpRequest } from '@fiado/http-client';
|
|
2
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
3
|
+
import { SendMessageRequest, SendMessageResponse, VerifyOtpRequest, VerifyOtpResponse, OtpValidatedResponse, TemplateMessageCreateRequest, TemplateMessageUpdateRequest, TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest } from '@fiado/type-kit/bin/messagesConnector/index.js';
|
|
4
|
+
import { IMessagesConnectorApi } from './interfaces/IMessagesConnectorApi.js';
|
|
5
|
+
export declare class MessagesConnectorApi implements IMessagesConnectorApi {
|
|
6
|
+
private readonly httpRequest;
|
|
7
|
+
private readonly baseUrl;
|
|
8
|
+
constructor(httpRequest: IHttpRequest);
|
|
9
|
+
sendMessage(request: SendMessageRequest): Promise<FiadoApiResponse<SendMessageResponse>>;
|
|
10
|
+
verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>>;
|
|
11
|
+
getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>>;
|
|
12
|
+
createTemplate(request: TemplateMessageCreateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
13
|
+
listTemplates(filters: TemplateMessageListFiltersRequest): Promise<FiadoApiResponse<TemplateMessageListResponse>>;
|
|
14
|
+
getTemplate(id: string): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
15
|
+
updateTemplate(id: string, request: TemplateMessageUpdateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
16
|
+
deleteTemplate(id: string): Promise<FiadoApiResponse<void>>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'inversify';
|
|
14
|
+
let MessagesConnectorApi = class MessagesConnectorApi {
|
|
15
|
+
httpRequest;
|
|
16
|
+
baseUrl = process.env.MESSAGES_CONNECTOR_LAMBDA_URL || '';
|
|
17
|
+
constructor(httpRequest) {
|
|
18
|
+
this.httpRequest = httpRequest;
|
|
19
|
+
}
|
|
20
|
+
async sendMessage(request) {
|
|
21
|
+
return await this.httpRequest.post(`${this.baseUrl}messages/send`, request, { 'operationName': 'privateSendMessage' });
|
|
22
|
+
}
|
|
23
|
+
async verifyOtp(request) {
|
|
24
|
+
return await this.httpRequest.post(`${this.baseUrl}messages/otp/verify`, request, { 'operationName': 'privateVerifyOtp' });
|
|
25
|
+
}
|
|
26
|
+
async getValidatedOtp(directoryId, otpCode) {
|
|
27
|
+
return await this.httpRequest.get(`${this.baseUrl}messages/otp/validated`, { directoryId, otpCode }, { 'operationName': 'privateGetValidatedOtp' });
|
|
28
|
+
}
|
|
29
|
+
async createTemplate(request) {
|
|
30
|
+
return await this.httpRequest.post(`${this.baseUrl}templates`, request, { 'operationName': 'backofficeCreateTemplate' });
|
|
31
|
+
}
|
|
32
|
+
async listTemplates(filters) {
|
|
33
|
+
return await this.httpRequest.get(`${this.baseUrl}templates`, filters, { 'operationName': 'backofficeListTemplates' });
|
|
34
|
+
}
|
|
35
|
+
async getTemplate(id) {
|
|
36
|
+
return await this.httpRequest.get(`${this.baseUrl}templates/${id}`, undefined, { 'operationName': 'backofficeGetTemplate' });
|
|
37
|
+
}
|
|
38
|
+
async updateTemplate(id, request) {
|
|
39
|
+
return await this.httpRequest.put(`${this.baseUrl}templates/${id}`, request, { 'operationName': 'backofficeUpdateTemplate' });
|
|
40
|
+
}
|
|
41
|
+
async deleteTemplate(id) {
|
|
42
|
+
return await this.httpRequest.delete(`${this.baseUrl}templates/${id}`, undefined, { 'operationName': 'backofficeDeleteTemplate' });
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
MessagesConnectorApi = __decorate([
|
|
46
|
+
injectable(),
|
|
47
|
+
__param(0, inject('IHttpRequest')),
|
|
48
|
+
__metadata("design:paramtypes", [Object])
|
|
49
|
+
], MessagesConnectorApi);
|
|
50
|
+
export { MessagesConnectorApi };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
2
|
+
import { SendMessageRequest, SendMessageResponse, VerifyOtpRequest, VerifyOtpResponse, OtpValidatedResponse, TemplateMessageCreateRequest, TemplateMessageUpdateRequest, TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest } from '@fiado/type-kit/bin/messagesConnector/index.js';
|
|
3
|
+
export interface IMessagesConnectorApi {
|
|
4
|
+
sendMessage(request: SendMessageRequest): Promise<FiadoApiResponse<SendMessageResponse>>;
|
|
5
|
+
verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>>;
|
|
6
|
+
getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>>;
|
|
7
|
+
createTemplate(request: TemplateMessageCreateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
8
|
+
listTemplates(filters: TemplateMessageListFiltersRequest): Promise<FiadoApiResponse<TemplateMessageListResponse>>;
|
|
9
|
+
getTemplate(id: string): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
10
|
+
updateTemplate(id: string, request: TemplateMessageUpdateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
11
|
+
deleteTemplate(id: string): Promise<FiadoApiResponse<void>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NotificationQueueMessageRequestV2 } from '@fiado/type-kit/bin/messagesConnector/index.js';
|
|
2
|
+
import { IMessagesConnectorPublisher } from './interfaces/IMessagesConnectorPublisher.js';
|
|
3
|
+
export default class MessagesConnectorPublisher implements IMessagesConnectorPublisher {
|
|
4
|
+
private readonly queueUrl;
|
|
5
|
+
private readonly sqsClient;
|
|
6
|
+
publish(message: NotificationQueueMessageRequestV2): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { injectable } from 'inversify';
|
|
8
|
+
import { SendMessageCommand, SQSClient } from '@aws-sdk/client-sqs';
|
|
9
|
+
let MessagesConnectorPublisher = class MessagesConnectorPublisher {
|
|
10
|
+
queueUrl = process.env.MESSAGES_BUSINESS_QUEUE_URL || '';
|
|
11
|
+
sqsClient = new SQSClient();
|
|
12
|
+
async publish(message) {
|
|
13
|
+
const command = new SendMessageCommand({
|
|
14
|
+
QueueUrl: this.queueUrl,
|
|
15
|
+
MessageBody: JSON.stringify(message),
|
|
16
|
+
});
|
|
17
|
+
await this.sqsClient.send(command);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
MessagesConnectorPublisher = __decorate([
|
|
21
|
+
injectable()
|
|
22
|
+
], MessagesConnectorPublisher);
|
|
23
|
+
export default MessagesConnectorPublisher;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IHttpRequest } from '@fiado/http-client';
|
|
2
|
+
import { MessageDeliveryRequest, MessageDeliveryResponse } from '@fiado/type-kit/bin/messaging/index.js';
|
|
3
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
4
|
+
import { ISnsSesConnectorApi } from './interfaces/ISnsSesConnectorApi.js';
|
|
5
|
+
export declare class SnsSesConnectorApi implements ISnsSesConnectorApi {
|
|
6
|
+
private readonly httpRequest;
|
|
7
|
+
private readonly baseUrl;
|
|
8
|
+
constructor(httpRequest: IHttpRequest);
|
|
9
|
+
send(request: MessageDeliveryRequest): Promise<FiadoApiResponse<MessageDeliveryResponse>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { inject, injectable } from 'inversify';
|
|
14
|
+
let SnsSesConnectorApi = class SnsSesConnectorApi {
|
|
15
|
+
httpRequest;
|
|
16
|
+
baseUrl = process.env.SNS_SES_CONNECTOR_LAMBDA_URL || '';
|
|
17
|
+
constructor(httpRequest) {
|
|
18
|
+
this.httpRequest = httpRequest;
|
|
19
|
+
}
|
|
20
|
+
async send(request) {
|
|
21
|
+
const url = `${this.baseUrl}send`;
|
|
22
|
+
return await this.httpRequest.post(url, request, { 'operationName': 'privateSend' });
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
SnsSesConnectorApi = __decorate([
|
|
26
|
+
injectable(),
|
|
27
|
+
__param(0, inject('IHttpRequest')),
|
|
28
|
+
__metadata("design:paramtypes", [Object])
|
|
29
|
+
], SnsSesConnectorApi);
|
|
30
|
+
export { SnsSesConnectorApi };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MessageDeliveryRequest, MessageDeliveryResponse } from '@fiado/type-kit/bin/messaging/index.js';
|
|
2
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
3
|
+
export interface ISnsSesConnectorApi {
|
|
4
|
+
send(request: MessageDeliveryRequest): Promise<FiadoApiResponse<MessageDeliveryResponse>>;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fiado/api-invoker",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a través de invocaciones http",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "bin/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@fiado/gateway-adapter": "^2.0.2",
|
|
26
26
|
"@fiado/http-client": "^2.0.1",
|
|
27
27
|
"@fiado/logger": "^1.1.3",
|
|
28
|
-
"@fiado/type-kit": "^3.
|
|
28
|
+
"@fiado/type-kit": "^3.33.0",
|
|
29
29
|
"dotenv": "^16.4.7"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^30.0.0",
|
|
37
37
|
"@types/node": "^25.9.1",
|
|
38
|
+
"aws-sdk-client-mock": "^4.1.0",
|
|
38
39
|
"inversify": "^8.1.0",
|
|
39
40
|
"jest": "^30.4.2",
|
|
40
41
|
"reflect-metadata": "^0.2.2",
|
package/src/container.config.ts
CHANGED
|
@@ -152,6 +152,10 @@ import BenefitsMarketplaceApi from "./benefits-marketplace/api/BenefitsMarketpla
|
|
|
152
152
|
|
|
153
153
|
// UniTeller remittance connector (Fase 2 remittance)
|
|
154
154
|
import { IUnitellerConnectorApi, UnitellerConnectorApi } from "./uniteller-connector/index.js";
|
|
155
|
+
// SNS-SES connector + messages-connector
|
|
156
|
+
import { ISnsSesConnectorApi, SnsSesConnectorApi } from "./sns-ses-connector/index.js";
|
|
157
|
+
import { IMessagesConnectorApi, MessagesConnectorApi, IMessagesConnectorPublisher } from "./messages-connector/index.js";
|
|
158
|
+
import MessagesConnectorPublisher from "./messages-connector/queue/MessagesConnectorPublisher.js";
|
|
155
159
|
|
|
156
160
|
export const apiInvokerBindings = new ContainerModule(({ bind }) => {
|
|
157
161
|
// UTILS bindings
|
|
@@ -268,4 +272,9 @@ export const apiInvokerBindings = new ContainerModule(({ bind }) => {
|
|
|
268
272
|
|
|
269
273
|
// UniTeller remittance connector (Fase 2 remittance) - benefits-marketplace → uniteller-connector
|
|
270
274
|
bind<IUnitellerConnectorApi>("IUnitellerConnectorApi").to(UnitellerConnectorApi);
|
|
275
|
+
|
|
276
|
+
// SNS-SES connector (HTTP) y messages-connector (HTTP + SQS publisher)
|
|
277
|
+
bind<ISnsSesConnectorApi>("ISnsSesConnectorApi").to(SnsSesConnectorApi);
|
|
278
|
+
bind<IMessagesConnectorApi>("IMessagesConnectorApi").to(MessagesConnectorApi);
|
|
279
|
+
bind<IMessagesConnectorPublisher>("IMessagesConnectorPublisher").to(MessagesConnectorPublisher);
|
|
271
280
|
});
|
package/src/index.ts
CHANGED
|
@@ -73,3 +73,5 @@ export * from "./countries-business/index.js";
|
|
|
73
73
|
export * from "./ai-engine-connector/index.js";
|
|
74
74
|
export * from "./benefits-marketplace/index.js";
|
|
75
75
|
export * from "./milestone-business/index.js";
|
|
76
|
+
export * from "./sns-ses-connector/index.js";
|
|
77
|
+
export * from "./messages-connector/index.js";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { inject, injectable } from 'inversify';
|
|
2
|
+
import type { IHttpRequest } from '@fiado/http-client';
|
|
3
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
4
|
+
import {
|
|
5
|
+
SendMessageRequest, SendMessageResponse,
|
|
6
|
+
VerifyOtpRequest, VerifyOtpResponse,
|
|
7
|
+
OtpValidatedResponse,
|
|
8
|
+
TemplateMessageCreateRequest, TemplateMessageUpdateRequest,
|
|
9
|
+
TemplateMessageResponse, TemplateMessageListResponse, TemplateMessageListFiltersRequest,
|
|
10
|
+
} from '@fiado/type-kit/bin/messagesConnector/index.js';
|
|
11
|
+
import { IMessagesConnectorApi } from './interfaces/IMessagesConnectorApi.js';
|
|
12
|
+
|
|
13
|
+
@injectable()
|
|
14
|
+
export class MessagesConnectorApi implements IMessagesConnectorApi {
|
|
15
|
+
private readonly baseUrl = process.env.MESSAGES_CONNECTOR_LAMBDA_URL || '';
|
|
16
|
+
|
|
17
|
+
constructor(@inject('IHttpRequest') private readonly httpRequest: IHttpRequest) {}
|
|
18
|
+
|
|
19
|
+
async sendMessage(request: SendMessageRequest): Promise<FiadoApiResponse<SendMessageResponse>> {
|
|
20
|
+
return await this.httpRequest.post(`${this.baseUrl}messages/send`, request, { 'operationName': 'privateSendMessage' });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>> {
|
|
24
|
+
return await this.httpRequest.post(`${this.baseUrl}messages/otp/verify`, request, { 'operationName': 'privateVerifyOtp' });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>> {
|
|
28
|
+
return await this.httpRequest.get(`${this.baseUrl}messages/otp/validated`, { directoryId, otpCode }, { 'operationName': 'privateGetValidatedOtp' });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async createTemplate(request: TemplateMessageCreateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>> {
|
|
32
|
+
return await this.httpRequest.post(`${this.baseUrl}templates`, request, { 'operationName': 'backofficeCreateTemplate' });
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async listTemplates(filters: TemplateMessageListFiltersRequest): Promise<FiadoApiResponse<TemplateMessageListResponse>> {
|
|
36
|
+
return await this.httpRequest.get(`${this.baseUrl}templates`, filters as Record<string, any>, { 'operationName': 'backofficeListTemplates' });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async getTemplate(id: string): Promise<FiadoApiResponse<TemplateMessageResponse>> {
|
|
40
|
+
return await this.httpRequest.get(`${this.baseUrl}templates/${id}`, undefined, { 'operationName': 'backofficeGetTemplate' });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async updateTemplate(id: string, request: TemplateMessageUpdateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>> {
|
|
44
|
+
return await this.httpRequest.put(`${this.baseUrl}templates/${id}`, request, { 'operationName': 'backofficeUpdateTemplate' });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async deleteTemplate(id: string): Promise<FiadoApiResponse<void>> {
|
|
48
|
+
return await this.httpRequest.delete(`${this.baseUrl}templates/${id}`, undefined, { 'operationName': 'backofficeDeleteTemplate' });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
2
|
+
import {
|
|
3
|
+
SendMessageRequest,
|
|
4
|
+
SendMessageResponse,
|
|
5
|
+
VerifyOtpRequest,
|
|
6
|
+
VerifyOtpResponse,
|
|
7
|
+
OtpValidatedResponse,
|
|
8
|
+
TemplateMessageCreateRequest,
|
|
9
|
+
TemplateMessageUpdateRequest,
|
|
10
|
+
TemplateMessageResponse,
|
|
11
|
+
TemplateMessageListResponse,
|
|
12
|
+
TemplateMessageListFiltersRequest,
|
|
13
|
+
} from '@fiado/type-kit/bin/messagesConnector/index.js';
|
|
14
|
+
|
|
15
|
+
export interface IMessagesConnectorApi {
|
|
16
|
+
sendMessage(request: SendMessageRequest): Promise<FiadoApiResponse<SendMessageResponse>>;
|
|
17
|
+
verifyOtp(request: VerifyOtpRequest): Promise<FiadoApiResponse<VerifyOtpResponse>>;
|
|
18
|
+
getValidatedOtp(directoryId: string, otpCode: string): Promise<FiadoApiResponse<OtpValidatedResponse>>;
|
|
19
|
+
|
|
20
|
+
createTemplate(request: TemplateMessageCreateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
21
|
+
listTemplates(filters: TemplateMessageListFiltersRequest): Promise<FiadoApiResponse<TemplateMessageListResponse>>;
|
|
22
|
+
getTemplate(id: string): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
23
|
+
updateTemplate(id: string, request: TemplateMessageUpdateRequest): Promise<FiadoApiResponse<TemplateMessageResponse>>;
|
|
24
|
+
deleteTemplate(id: string): Promise<FiadoApiResponse<void>>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { injectable } from 'inversify';
|
|
2
|
+
import { SendMessageCommand, SQSClient } from '@aws-sdk/client-sqs';
|
|
3
|
+
import { NotificationQueueMessageRequestV2 } from '@fiado/type-kit/bin/messagesConnector/index.js';
|
|
4
|
+
import { IMessagesConnectorPublisher } from './interfaces/IMessagesConnectorPublisher.js';
|
|
5
|
+
|
|
6
|
+
@injectable()
|
|
7
|
+
export default class MessagesConnectorPublisher implements IMessagesConnectorPublisher {
|
|
8
|
+
private readonly queueUrl = process.env.MESSAGES_BUSINESS_QUEUE_URL || '';
|
|
9
|
+
private readonly sqsClient = new SQSClient();
|
|
10
|
+
|
|
11
|
+
async publish(message: NotificationQueueMessageRequestV2): Promise<void> {
|
|
12
|
+
const command = new SendMessageCommand({
|
|
13
|
+
QueueUrl: this.queueUrl,
|
|
14
|
+
MessageBody: JSON.stringify(message),
|
|
15
|
+
});
|
|
16
|
+
await this.sqsClient.send(command);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { inject, injectable } from 'inversify';
|
|
2
|
+
import type { IHttpRequest } from '@fiado/http-client';
|
|
3
|
+
import { MessageDeliveryRequest, MessageDeliveryResponse } from '@fiado/type-kit/bin/messaging/index.js';
|
|
4
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
5
|
+
import { ISnsSesConnectorApi } from './interfaces/ISnsSesConnectorApi.js';
|
|
6
|
+
|
|
7
|
+
@injectable()
|
|
8
|
+
export class SnsSesConnectorApi implements ISnsSesConnectorApi {
|
|
9
|
+
private readonly baseUrl = process.env.SNS_SES_CONNECTOR_LAMBDA_URL || '';
|
|
10
|
+
|
|
11
|
+
constructor(@inject('IHttpRequest') private readonly httpRequest: IHttpRequest) {}
|
|
12
|
+
|
|
13
|
+
async send(request: MessageDeliveryRequest): Promise<FiadoApiResponse<MessageDeliveryResponse>> {
|
|
14
|
+
const url = `${this.baseUrl}send`;
|
|
15
|
+
return await this.httpRequest.post(url, request, { 'operationName': 'privateSend' });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { MessageDeliveryRequest, MessageDeliveryResponse } from '@fiado/type-kit/bin/messaging/index.js';
|
|
2
|
+
import type { FiadoApiResponse } from '@fiado/type-kit/bin/apiResponse/dtos/FiadoApiResponse.js';
|
|
3
|
+
|
|
4
|
+
export interface ISnsSesConnectorApi {
|
|
5
|
+
send(request: MessageDeliveryRequest): Promise<FiadoApiResponse<MessageDeliveryResponse>>;
|
|
6
|
+
}
|