@fiado/api-invoker 1.1.7 → 1.1.9

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.
@@ -0,0 +1,10 @@
1
+ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
+ import { IHttpRequest } from "@fiado/http-client";
3
+ import { ActivityMessageResponse } from "@fiado/type-kit/bin/activity";
4
+ import { IActivityApi } from "./interfaces/IActivityApi";
5
+ export default class ActivityApi implements IActivityApi {
6
+ private httpRequest;
7
+ private readonly baseUrl;
8
+ constructor(httpRequest: IHttpRequest);
9
+ getActivityByDirectoryId(directoryId: string, typeOfActivityId: string): Promise<ApiGatewayResponse<ActivityMessageResponse>>;
10
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const inversify_1 = require("inversify");
16
+ let ActivityApi = class ActivityApi {
17
+ constructor(httpRequest) {
18
+ this.httpRequest = httpRequest;
19
+ this.baseUrl = process.env.ACTIVITY_LAMBDA_URL || "";
20
+ }
21
+ async getActivityByDirectoryId(directoryId, typeOfActivityId) {
22
+ const url = `${this.baseUrl}activities/directory/${directoryId}?typeOfActivity=${typeOfActivityId}`;
23
+ return await this.httpRequest.get(url);
24
+ }
25
+ };
26
+ ActivityApi = __decorate([
27
+ __param(0, (0, inversify_1.inject)("IHttpRequest")),
28
+ __metadata("design:paramtypes", [Object])
29
+ ], ActivityApi);
30
+ exports.default = ActivityApi;
@@ -0,0 +1,5 @@
1
+ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
+ import { ActivityMessageResponse } from "@fiado/type-kit/bin/activity";
3
+ export interface IActivityApi {
4
+ getActivityByDirectoryId(directoryId: string, typeOfActivityId: string): Promise<ApiGatewayResponse<ActivityMessageResponse>>;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { ActivityQueueMessage } from "@fiado/type-kit/bin/activity";
2
+ import { IActivityPublisher } from "./IActivityPublisher";
3
+ export default class ActivityPublisher implements IActivityPublisher {
4
+ private readonly ACTIVITY_QUEUE;
5
+ publish(message: ActivityQueueMessage): Promise<void>;
6
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const client_sqs_1 = require("@aws-sdk/client-sqs");
10
+ const inversify_1 = require("inversify");
11
+ let ActivityPublisher = class ActivityPublisher {
12
+ constructor() {
13
+ this.ACTIVITY_QUEUE = process.env.ACTIVITY_QUEUE;
14
+ }
15
+ async publish(message) {
16
+ try {
17
+ const client = new client_sqs_1.SQSClient();
18
+ const sendMessageRequest = {
19
+ QueueUrl: this.ACTIVITY_QUEUE,
20
+ MessageBody: JSON.stringify(message),
21
+ MessageGroupId: message.message.directoryId,
22
+ MessageDeduplicationId: message.message.date
23
+ };
24
+ const command = new client_sqs_1.SendMessageCommand(sendMessageRequest);
25
+ await client.send(command);
26
+ }
27
+ catch (error) {
28
+ throw new Error(`Error publishing message to queue ${': ' + error.message ?? ''}`);
29
+ }
30
+ }
31
+ };
32
+ ActivityPublisher = __decorate([
33
+ (0, inversify_1.injectable)()
34
+ ], ActivityPublisher);
35
+ exports.default = ActivityPublisher;
@@ -0,0 +1,4 @@
1
+ import { ActivityQueueMessage } from "@fiado/type-kit/bin/activity";
2
+ export interface IActivityPublisher {
3
+ publish(message: ActivityQueueMessage): Promise<void>;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +1,11 @@
1
1
  import { IExchangeRatesApi } from "./interfaces/IExchangeRatesApi";
2
2
  import { IHttpRequest } from "@fiado/http-client";
3
3
  import GetExchangeRatesRequest from "@fiado/type-kit/bin/exchangeRate/dtos/GetExchangeRatesRequest";
4
+ import { ExchangeRateCreateRequest } from "@fiado/type-kit/bin/exchangeRate";
4
5
  export default class ExchangeRatesApi implements IExchangeRatesApi {
5
6
  private httpRequest;
6
7
  private readonly baseUrl;
7
8
  constructor(httpRequest: IHttpRequest);
8
9
  getExchangeRates(request: GetExchangeRatesRequest): Promise<any>;
10
+ postExchangeRates(request: ExchangeRateCreateRequest): Promise<any>;
9
11
  }
@@ -24,6 +24,12 @@ let ExchangeRatesApi = class ExchangeRatesApi {
24
24
  };
25
25
  return await this.httpRequest.post(this.baseUrl, request, headers);
26
26
  }
27
+ async postExchangeRates(request) {
28
+ const headers = {
29
+ "operationName": "postExchangeRates"
30
+ };
31
+ return await this.httpRequest.post(this.baseUrl, request, headers);
32
+ }
27
33
  };
28
34
  ExchangeRatesApi = __decorate([
29
35
  (0, inversify_1.injectable)(),
@@ -1,4 +1,6 @@
1
1
  import GetExchangeRatesRequest from "@fiado/type-kit/bin/exchangeRate/dtos/GetExchangeRatesRequest";
2
+ import { ExchangeRateCreateRequest } from "@fiado/type-kit/bin/exchangeRate";
2
3
  export interface IExchangeRatesApi {
3
4
  getExchangeRates(request: GetExchangeRatesRequest): Promise<any>;
5
+ postExchangeRates(request: ExchangeRateCreateRequest): Promise<any>;
4
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/api-invoker",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "Sirve como un puente entre diferentes funciones lambda, facilitando la comunicación entre ellas a traves de invocaciones http",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -13,10 +13,10 @@
13
13
  "license": "ISC",
14
14
  "dependencies": {
15
15
  "@aws-sdk/client-sqs": "^3.572.0",
16
- "@fiado/gateway-adapter": "^1.1.31",
16
+ "@fiado/gateway-adapter": "^1.1.32",
17
17
  "@fiado/http-client": "^1.0.2",
18
18
  "@fiado/logger": "^1.0.2",
19
- "@fiado/type-kit": "^1.2.15",
19
+ "@fiado/type-kit": "^1.2.24",
20
20
  "dotenv": "^16.4.5",
21
21
  "inversify": "^6.0.2",
22
22
  "reflect-metadata": "^0.2.1",
@@ -0,0 +1,22 @@
1
+ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
+ import { IHttpRequest } from "@fiado/http-client";
3
+ import { ActivityMessageResponse } from "@fiado/type-kit/bin/activity";
4
+ import { inject } from "inversify";
5
+ import { IActivityApi } from "./interfaces/IActivityApi";
6
+
7
+
8
+
9
+ export default class ActivityApi implements IActivityApi {
10
+
11
+ private readonly baseUrl = process.env.ACTIVITY_LAMBDA_URL || "";
12
+
13
+ constructor(@inject("IHttpRequest") private httpRequest: IHttpRequest) {
14
+
15
+ }
16
+
17
+ async getActivityByDirectoryId(directoryId: string, typeOfActivityId: string): Promise<ApiGatewayResponse<ActivityMessageResponse>> {
18
+
19
+ const url = `${this.baseUrl}activities/directory/${directoryId}?typeOfActivity=${typeOfActivityId}`;
20
+ return await this.httpRequest.get(url);
21
+ }
22
+ }
@@ -0,0 +1,4 @@
1
+
2
+
3
+ export * from './interfaces/IActivityApi';
4
+ export * from './ActivityApi';
@@ -0,0 +1,11 @@
1
+ import { ApiGatewayResponse } from "@fiado/gateway-adapter";
2
+ import { ActivityMessageResponse } from "@fiado/type-kit/bin/activity";
3
+
4
+
5
+
6
+ export interface IActivityApi {
7
+
8
+ getActivityByDirectoryId(directoryId: string, typeOfActivityId:string): Promise<ApiGatewayResponse<ActivityMessageResponse>>;
9
+
10
+
11
+ }
@@ -0,0 +1,27 @@
1
+ import { SendMessageCommand, SendMessageRequest, SQSClient } from "@aws-sdk/client-sqs";
2
+ import { ActivityQueueMessage } from "@fiado/type-kit/bin/activity";
3
+ import { injectable } from "inversify";
4
+ import { IActivityPublisher } from "./IActivityPublisher";
5
+
6
+
7
+ @injectable()
8
+ export default class ActivityPublisher implements IActivityPublisher {
9
+ private readonly ACTIVITY_QUEUE = process.env.ACTIVITY_QUEUE;
10
+
11
+
12
+ async publish(message: ActivityQueueMessage): Promise<void> {
13
+ try {
14
+ const client: SQSClient = new SQSClient();
15
+ const sendMessageRequest: SendMessageRequest = {
16
+ QueueUrl: this.ACTIVITY_QUEUE,
17
+ MessageBody: JSON.stringify(message),
18
+ MessageGroupId: message.message.directoryId,
19
+ MessageDeduplicationId: message.message.date
20
+ };
21
+ const command: SendMessageCommand = new SendMessageCommand(sendMessageRequest);
22
+ await client.send(command);
23
+ } catch (error) {
24
+ throw new Error(`Error publishing message to queue ${': ' + error.message ?? ''}`);
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,7 @@
1
+ import { ActivityQueueMessage } from "@fiado/type-kit/bin/activity";
2
+
3
+
4
+
5
+ export interface IActivityPublisher {
6
+ publish(message: ActivityQueueMessage): Promise<void>
7
+ }
@@ -2,6 +2,8 @@ import {IExchangeRatesApi} from "./interfaces/IExchangeRatesApi";
2
2
  import {inject, injectable} from "inversify";
3
3
  import {IHttpRequest} from "@fiado/http-client";
4
4
  import GetExchangeRatesRequest from "@fiado/type-kit/bin/exchangeRate/dtos/GetExchangeRatesRequest";
5
+ import {ExchangeRateCreateRequest} from "@fiado/type-kit/bin/exchangeRate";
6
+ import {promises} from "node:dns";
5
7
 
6
8
  @injectable()
7
9
  export default class ExchangeRatesApi implements IExchangeRatesApi {
@@ -16,4 +18,11 @@ export default class ExchangeRatesApi implements IExchangeRatesApi {
16
18
  }
17
19
  return await this.httpRequest.post(this.baseUrl, request, headers);
18
20
  }
21
+
22
+ async postExchangeRates(request: ExchangeRateCreateRequest): Promise<any> {
23
+ const headers = {
24
+ "operationName": "postExchangeRates"
25
+ }
26
+ return await this.httpRequest.post(this.baseUrl, request, headers);
27
+ }
19
28
  }
@@ -1,6 +1,9 @@
1
1
  import GetExchangeRatesRequest from "@fiado/type-kit/bin/exchangeRate/dtos/GetExchangeRatesRequest";
2
+ import {ExchangeRateCreateRequest} from "@fiado/type-kit/bin/exchangeRate";
2
3
 
3
4
 
4
5
  export interface IExchangeRatesApi {
5
6
  getExchangeRates(request: GetExchangeRatesRequest): Promise<any>;
7
+
8
+ postExchangeRates(request: ExchangeRateCreateRequest): Promise<any>;
6
9
  }
@@ -1,17 +0,0 @@
1
- import { IHttpRequest } from "@fiado/http-client";
2
- import { IActivityApi } from './interfaces/IActivityApi';
3
- import { TypeOfDirectoryId } from '@fiado/type-kit/bin/directory';
4
- export declare class ActivityApi implements IActivityApi {
5
- private httpRequest;
6
- private readonly baseUrl;
7
- constructor(httpRequest: IHttpRequest);
8
- getActivities(typeOfActivities: string[]): Promise<any>;
9
- getActivitiesByDirectoryIdAndTypeOfActivity(directoryId: string, typeOfActivities: string[]): Promise<any>;
10
- postActivity(params: {
11
- directoryId: string;
12
- typeOfDirectoryId: TypeOfDirectoryId;
13
- typeOfActivity: string;
14
- amount: string;
15
- date: string;
16
- }): Promise<any>;
17
- }
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ActivityApi = void 0;
19
- const dotenv_1 = __importDefault(require("dotenv"));
20
- const inversify_1 = require("inversify");
21
- dotenv_1.default.config();
22
- let ActivityApi = class ActivityApi {
23
- constructor(httpRequest) {
24
- this.httpRequest = httpRequest;
25
- this.baseUrl = process.env.ACTIVITY_LAMBDA_URL || "";
26
- }
27
- async getActivities(typeOfActivities) {
28
- let url = `${this.baseUrl}activities`;
29
- if (typeOfActivities.length > 0) {
30
- url = `${this.baseUrl}activities?${typeOfActivities.map(id => `typeOfActivities=${encodeURIComponent(id)}`).join('&')}`;
31
- }
32
- const operationName = "getActivities";
33
- return await this.httpRequest.post(`${url}`, null, { 'operationName': operationName });
34
- }
35
- async getActivitiesByDirectoryIdAndTypeOfActivity(directoryId, typeOfActivities) {
36
- if (directoryId == null || directoryId == undefined || directoryId == "") {
37
- throw new Error("At least directory ID is required.");
38
- }
39
- let url = `${this.baseUrl}activities/directory/${directoryId}`;
40
- if (typeOfActivities.length > 0) {
41
- url = `${this.baseUrl}activities/directory/${directoryId}?${typeOfActivities.map(id => `typeOfActivities=${encodeURIComponent(id)}`).join('&')}`;
42
- }
43
- const operationName = "getActivitiesByDirectoryIdAndTypeOfActivity";
44
- return await this.httpRequest.post(`${url}`, null, { 'operationName': operationName });
45
- }
46
- async postActivity(params) {
47
- if (params.directoryId == null || params.directoryId == undefined || params.directoryId == "") {
48
- throw new Error("At least directory ID is required.");
49
- }
50
- if (params.typeOfDirectoryId == null || params.typeOfDirectoryId == undefined) {
51
- throw new Error("At least typeOfDirectoryId is required.");
52
- }
53
- if (params.typeOfActivity == null || params.typeOfActivity == undefined || params.typeOfActivity == "") {
54
- throw new Error("At least typeOfActivity is required.");
55
- }
56
- if (params.amount == null || params.amount == undefined || params.amount == "") {
57
- throw new Error("At least amount is required.");
58
- }
59
- if (params.date == null || params.date == undefined || params.date == "") {
60
- throw new Error("At least date is required.");
61
- }
62
- const url = `${this.baseUrl}/activities/create`;
63
- const operationName = "postActivity";
64
- return await this.httpRequest.post(`${url}`, params, { 'operationName': operationName });
65
- }
66
- };
67
- exports.ActivityApi = ActivityApi;
68
- exports.ActivityApi = ActivityApi = __decorate([
69
- (0, inversify_1.injectable)(),
70
- __param(0, (0, inversify_1.inject)("IHttpRequest")),
71
- __metadata("design:paramtypes", [Object])
72
- ], ActivityApi);
@@ -1,39 +0,0 @@
1
- import { TypeOfDirectoryId } from "@fiado/type-kit/bin/directory";
2
- /**
3
- * Interfaz para el servicio Directory que permite operaciones sobre directorios.
4
- */
5
- export interface IActivityApi {
6
- /**
7
- * Obtiene una lista de entidades de la tabla ActivityDirectory.
8
- * @param directoryId Directorio que se va a consultar.
9
- * @param typeOfActivities Array de tipos de actividades (Opcional).
10
- * @returns Retorna un arreglo de objetos de ActivityDirectory.
11
- * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
12
- */
13
- getActivitiesByDirectoryIdAndTypeOfActivity(directoryId: string, typeOfActivities: string[]): Promise<any>;
14
- /**
15
- * Obtener actividades globales.
16
- * @param typeOfActivity Tipo de actividad
17
- * Puede devolver un arreglo vacío si no se encuentran coincidencias.
18
- * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
19
- */
20
- getActivities(typeOfActivities: string[]): Promise<any>;
21
- /**
22
- * Proceso para agregar a las actividades.
23
- * @param directoryId Directorio
24
- * @param typeOfDirectoryId Tipo de directorio
25
- * @param typeOfActivity Tipo de actividad
26
- * @param amount Monto de la actividad
27
- * @param date Fecha de la actividad
28
- * @returns Retorna un objeto de ActivityDirectory.
29
- * Puede devolver un arreglo vacío si no se encuentran coincidencias.
30
- * @throws {Error} Lanza un error si los parámetros de entrada son inválidos.
31
- */
32
- postActivity(params: {
33
- directoryId: string;
34
- typeOfDirectoryId: TypeOfDirectoryId;
35
- typeOfActivity: string;
36
- amount: string;
37
- date: string;
38
- }): Promise<any>;
39
- }
File without changes
File without changes