@fintekkers/ledger-models 0.1.61 → 0.1.63

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.
Files changed (102) hide show
  1. package/.env +3 -0
  2. package/node/fintekkers/models/position/field_pb.d.ts +1 -0
  3. package/node/fintekkers/models/position/field_pb.js +1 -0
  4. package/node/fintekkers/models/security/bond/auction_type_grpc_pb.js +1 -0
  5. package/node/fintekkers/models/security/bond/auction_type_pb.d.ts +12 -0
  6. package/node/fintekkers/models/security/bond/auction_type_pb.js +33 -0
  7. package/node/fintekkers/models/security/bond/issuance_grpc_pb.js +1 -0
  8. package/node/fintekkers/models/security/bond/issuance_pb.d.ts +85 -0
  9. package/node/fintekkers/models/security/bond/issuance_pb.js +652 -0
  10. package/node/fintekkers/models/security/security_pb.d.ts +6 -0
  11. package/node/fintekkers/models/security/security_pb.js +64 -2
  12. package/node/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +3 -0
  13. package/node/fintekkers/requests/transaction/query_transaction_request_pb.js +31 -1
  14. package/node/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +7 -0
  15. package/node/fintekkers/requests/transaction/query_transaction_response_pb.js +54 -1
  16. package/node/wrappers/models/portfolio/portfolio.js +41 -0
  17. package/node/wrappers/models/portfolio/portfolio.js.map +1 -0
  18. package/node/wrappers/models/portfolio/portfolio.ts +49 -0
  19. package/node/wrappers/models/position/position.js +14 -9
  20. package/node/wrappers/models/position/position.js.map +1 -1
  21. package/node/wrappers/models/position/position.test.js +43 -0
  22. package/node/wrappers/models/position/position.test.js.map +1 -0
  23. package/node/wrappers/models/position/position.test.ts +70 -0
  24. package/node/wrappers/models/position/position.ts +17 -10
  25. package/node/wrappers/models/position/positionfilter.js +35 -0
  26. package/node/wrappers/models/position/positionfilter.js.map +1 -0
  27. package/node/wrappers/models/position/positionfilter.ts +38 -0
  28. package/node/wrappers/models/security/security.test.js +33 -0
  29. package/node/wrappers/models/security/security.test.js.map +1 -0
  30. package/node/wrappers/models/security/security.test.ts +41 -0
  31. package/node/wrappers/models/transaction/transaction.js +6 -5
  32. package/node/wrappers/models/transaction/transaction.js.map +1 -1
  33. package/node/wrappers/models/transaction/transaction.test.js.map +1 -1
  34. package/node/wrappers/models/transaction/transaction.test.ts +1 -6
  35. package/node/wrappers/models/transaction/transaction.ts +31 -31
  36. package/node/wrappers/models/transaction/transaction_type.js +0 -1
  37. package/node/wrappers/models/transaction/transaction_type.js.map +1 -1
  38. package/node/wrappers/models/transaction/transaction_type.ts +1 -1
  39. package/node/wrappers/models/utils/datetime.js +9 -0
  40. package/node/wrappers/models/utils/datetime.js.map +1 -1
  41. package/node/wrappers/models/utils/datetime.ts +16 -4
  42. package/node/wrappers/models/utils/requestcontext.js +55 -0
  43. package/node/wrappers/models/utils/requestcontext.js.map +1 -0
  44. package/node/wrappers/models/utils/requestcontext.ts +44 -0
  45. package/node/wrappers/models/utils/requestcontext_d.js +1 -0
  46. package/node/wrappers/models/utils/requestcontext_d.js.map +1 -0
  47. package/node/wrappers/models/utils/requestcontext_d.ts +7 -0
  48. package/node/wrappers/models/utils/serialization.js +14 -4
  49. package/node/wrappers/models/utils/serialization.js.map +1 -1
  50. package/node/wrappers/models/utils/serialization.test.js +8 -9
  51. package/node/wrappers/models/utils/serialization.test.js.map +1 -1
  52. package/node/wrappers/models/utils/serialization.test.ts +8 -10
  53. package/node/wrappers/models/utils/serialization.ts +46 -38
  54. package/node/wrappers/models/utils/serialization.util.js +108 -0
  55. package/node/wrappers/models/utils/serialization.util.js.map +1 -0
  56. package/node/wrappers/models/utils/serialization.util.test.js +36 -0
  57. package/node/wrappers/models/utils/serialization.util.test.js.map +1 -0
  58. package/node/wrappers/models/utils/serialization.util.test.ts +47 -0
  59. package/node/wrappers/models/utils/serialization.util.ts +121 -0
  60. package/node/wrappers/services/portfolio-service/PortfolioService.js +8 -16
  61. package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
  62. package/node/wrappers/services/portfolio-service/PortfolioService.ts +14 -24
  63. package/node/wrappers/services/portfolio-service/portfolio.test.js +30 -34
  64. package/node/wrappers/services/portfolio-service/portfolio.test.js.map +1 -1
  65. package/node/wrappers/services/portfolio-service/portfolio.test.ts +9 -13
  66. package/node/wrappers/services/position-service/PositionService.js +4 -3
  67. package/node/wrappers/services/position-service/PositionService.js.map +1 -1
  68. package/node/wrappers/services/position-service/PositionService.ts +4 -19
  69. package/node/wrappers/services/position-service/position.test.js +24 -9
  70. package/node/wrappers/services/position-service/position.test.js.map +1 -1
  71. package/node/wrappers/services/position-service/position.test.ts +57 -51
  72. package/node/wrappers/services/security-service/SecurityService.js +16 -15
  73. package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
  74. package/node/wrappers/services/security-service/SecurityService.ts +15 -18
  75. package/node/wrappers/services/security-service/security.maturityLadder.test.js +59 -0
  76. package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -0
  77. package/node/wrappers/services/security-service/security.maturityLadder.test.ts +39 -0
  78. package/node/wrappers/services/security-service/security.test.js +19 -7
  79. package/node/wrappers/services/security-service/security.test.js.map +1 -1
  80. package/node/wrappers/services/security-service/security.test.ts +11 -7
  81. package/node/wrappers/services/transaction-service/TransactionService.js +34 -47
  82. package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
  83. package/node/wrappers/services/transaction-service/TransactionService.ts +16 -23
  84. package/node/wrappers/services/transaction-service/transaction.test.js +45 -12
  85. package/node/wrappers/services/transaction-service/transaction.test.js.map +1 -1
  86. package/node/wrappers/services/transaction-service/transaction.test.ts +48 -21
  87. package/package.json +2 -1
  88. package/web/fintekkers/models/position/field_pb.d.ts +1 -0
  89. package/web/fintekkers/models/position/field_pb.js +1 -0
  90. package/web/fintekkers/models/security/bond/auction_type_pb.d.ts +8 -0
  91. package/web/fintekkers/models/security/bond/auction_type_pb.js +27 -0
  92. package/web/fintekkers/models/security/bond/issuance_pb.d.ts +82 -0
  93. package/web/fintekkers/models/security/bond/issuance_pb.js +646 -0
  94. package/web/fintekkers/models/security/security_pb.d.ts +7 -0
  95. package/web/fintekkers/models/security/security_pb.js +64 -2
  96. package/web/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +4 -0
  97. package/web/fintekkers/requests/transaction/query_transaction_request_pb.js +31 -1
  98. package/web/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +7 -0
  99. package/web/fintekkers/requests/transaction/query_transaction_response_pb.js +54 -1
  100. package/node/wrappers/models/utils/util.js +0 -28
  101. package/node/wrappers/models/utils/util.js.map +0 -1
  102. package/node/wrappers/models/utils/util.ts +0 -28
@@ -37,7 +37,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  }
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.testPortfolio = void 0;
41
40
  // Model Utils
42
41
  var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
43
42
  var uuid = require("../../models/utils/uuid");
@@ -45,38 +44,35 @@ var dt = require("../../models/utils/datetime");
45
44
  //Requests & Services
46
45
  var PortfolioService_1 = require("./PortfolioService");
47
46
  var portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb");
48
- test('test creating a portfolio against the api.fintekkers.org portfolio service', function () {
49
- var isTrue = testPortfolio();
50
- expect(isTrue).resolves.toBe(true);
51
- }, 30000);
52
- function testPortfolio() {
53
- return __awaiter(this, void 0, void 0, function () {
54
- var id_proto, now, portfolioService, portfolio, validationSummary, createPortfolioResponse, searchResults;
55
- return __generator(this, function (_a) {
56
- switch (_a.label) {
57
- case 0:
58
- id_proto = uuid.UUID.random().toUUIDProto();
59
- now = dt.ZonedDateTime.now();
60
- portfolioService = new PortfolioService_1.PortfolioService();
61
- portfolio = new portfolio_pb_1.PortfolioProto();
62
- portfolio.setObjectClass('Portfolio');
63
- portfolio.setVersion('0.0.1');
64
- portfolio.setUuid(id_proto);
65
- portfolio.setPortfolioName('TEST PORTFOLIO');
66
- portfolio.setAsOf(now.to_date_proto());
67
- return [4 /*yield*/, portfolioService.validateCreatePortfolio(portfolio)];
68
- case 1:
69
- validationSummary = _a.sent();
70
- return [4 /*yield*/, portfolioService.createPortfolio(portfolio)];
71
- case 2:
72
- createPortfolioResponse = _a.sent();
73
- return [4 /*yield*/, portfolioService.searchPortfolio(now.to_date_proto(), field_pb_1.FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings')];
74
- case 3:
75
- searchResults = _a.sent();
76
- return [2 /*return*/, true];
77
- }
78
- });
47
+ var positionfilter_1 = require("../../models/position/positionfilter");
48
+ test('test creating a portfolio against the api.fintekkers.org portfolio service', function () { return __awaiter(void 0, void 0, void 0, function () {
49
+ var id_proto, now, portfolioService, portfolio, validationSummary, createPortfolioResponse, searchResults;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ id_proto = uuid.UUID.random().toUUIDProto();
54
+ now = dt.ZonedDateTime.now();
55
+ portfolioService = new PortfolioService_1.PortfolioService();
56
+ portfolio = new portfolio_pb_1.PortfolioProto();
57
+ portfolio.setObjectClass('Portfolio');
58
+ portfolio.setVersion('0.0.1');
59
+ portfolio.setUuid(id_proto);
60
+ portfolio.setPortfolioName('TEST PORTFOLIO');
61
+ portfolio.setAsOf(now.toProto());
62
+ return [4 /*yield*/, portfolioService.validateCreatePortfolio(portfolio)];
63
+ case 1:
64
+ validationSummary = _a.sent();
65
+ expect(validationSummary.getErrorsList().length).toBe(0);
66
+ return [4 /*yield*/, portfolioService.createPortfolio(portfolio)];
67
+ case 2:
68
+ createPortfolioResponse = _a.sent();
69
+ expect(createPortfolioResponse.getPortfolioResponseList().length).toBe(1);
70
+ return [4 /*yield*/, portfolioService.searchPortfolio(now.toProto(), new positionfilter_1.PositionFilter().addFilter(field_pb_1.FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings'))];
71
+ case 3:
72
+ searchResults = _a.sent();
73
+ expect(searchResults.length > 0).toBe(true);
74
+ return [2 /*return*/];
75
+ }
79
76
  });
80
- }
81
- exports.testPortfolio = testPortfolio;
77
+ }); }, 30000);
82
78
  //# sourceMappingURL=portfolio.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.test.js","sourceRoot":"","sources":["portfolio.test.ts"],"names":[],"mappings":";AAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,cAAc;AACd,yEAA0E;AAC1E,8CAAgD;AAChD,gDAAkD;AAElD,qBAAqB;AACrB,uDAAsD;AACtD,kFAAmF;AAInF,IAAI,CAAC,4EAA4E,EAAE;IACjF,IAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC,EAAE,KAAK,CAAC,CAAC;AAEV,SAAsB,aAAa;;;;;;oBAC3B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;oBAC5C,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;oBAE7B,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;oBAE1C,SAAS,GAAG,IAAI,6BAAc,EAAE,CAAC;oBACvC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBACtC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC9B,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC5B,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;oBAC7C,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;oBAEf,qBAAM,gBAAgB,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAA;;oBAA7E,iBAAiB,GAAG,SAAyD;oBAEtB,qBAAM,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAA;;oBAAxG,uBAAuB,GAAgC,SAAiD;oBAExF,qBAAM,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,qBAAU,CAAC,cAAc,EAAE,+BAA+B,CAAC,EAAA;;oBAAvI,aAAa,GAAG,SAAuH;oBAE3I,sBAAO,IAAI,EAAC;;;;CACb;AApBD,sCAoBC"}
1
+ {"version":3,"file":"portfolio.test.js","sourceRoot":"","sources":["portfolio.test.ts"],"names":[],"mappings":";AAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,cAAc;AACd,yEAA0E;AAC1E,8CAAgD;AAChD,gDAAkD;AAElD,qBAAqB;AACrB,uDAAsD;AACtD,kFAAmF;AAEnF,uEAAsE;AAGtE,IAAI,CAAC,4EAA4E,EAAE;;;;;gBAC3E,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC5C,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gBAE7B,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;gBAE1C,SAAS,GAAG,IAAI,6BAAc,EAAE,CAAC;gBACvC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACtC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC9B,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5B,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAET,qBAAM,gBAAgB,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAA;;gBAA7E,iBAAiB,GAAG,SAAyD;gBACjF,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEG,qBAAM,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAA;;gBAAzG,uBAAuB,GAAiC,SAAiD;gBAC7G,MAAM,CAAC,uBAAuB,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEtD,qBAAM,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,+BAAc,EAAE,CAAC,SAAS,CAAC,qBAAU,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC,EAAA;;gBAAjK,aAAa,GAAG,SAAiJ;gBACrK,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;KAC7C,EAAE,KAAK,CAAC,CAAC"}
@@ -9,14 +9,10 @@ import * as dt from '../../models/utils/datetime';
9
9
  import { PortfolioService } from './PortfolioService';
10
10
  import { PortfolioProto } from '../../../fintekkers/models/portfolio/portfolio_pb';
11
11
  import { CreatePortfolioResponseProto } from '../../../fintekkers/requests/portfolio/create_portfolio_response_pb';
12
+ import { PositionFilter } from '../../models/position/positionfilter';
12
13
 
13
14
 
14
- test('test creating a portfolio against the api.fintekkers.org portfolio service', () => {
15
- const isTrue = testPortfolio();
16
- expect(isTrue).resolves.toBe(true);
17
- }, 30000);
18
-
19
- export async function testPortfolio(): Promise<boolean> {
15
+ test('test creating a portfolio against the api.fintekkers.org portfolio service', async () => {
20
16
  const id_proto = uuid.UUID.random().toUUIDProto();
21
17
  const now = dt.ZonedDateTime.now();
22
18
 
@@ -27,14 +23,14 @@ export async function testPortfolio(): Promise<boolean> {
27
23
  portfolio.setVersion('0.0.1');
28
24
  portfolio.setUuid(id_proto);
29
25
  portfolio.setPortfolioName('TEST PORTFOLIO');
30
- portfolio.setAsOf(now.to_date_proto());
26
+ portfolio.setAsOf(now.toProto());
31
27
 
32
28
  var validationSummary = await portfolioService.validateCreatePortfolio(portfolio);
29
+ expect(validationSummary.getErrorsList().length).toBe(0);
33
30
 
34
- var createPortfolioResponse:CreatePortfolioResponseProto = await portfolioService.createPortfolio(portfolio);
35
-
36
- var searchResults = await portfolioService.searchPortfolio(now.to_date_proto(), FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings');
37
-
38
- return true;
39
- }
31
+ var createPortfolioResponse: CreatePortfolioResponseProto = await portfolioService.createPortfolio(portfolio);
32
+ expect(createPortfolioResponse.getPortfolioResponseList().length).toBe(1);
40
33
 
34
+ var searchResults = await portfolioService.searchPortfolio(now.toProto(), new PositionFilter().addFilter(FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings'));
35
+ expect(searchResults.length > 0).toBe(true);
36
+ }, 30000);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ // Models
2
3
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
4
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
5
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,13 +38,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
38
  };
38
39
  Object.defineProperty(exports, "__esModule", { value: true });
39
40
  exports.PositionService = void 0;
40
- var grpc = require("@grpc/grpc-js");
41
+ // Model Utils
41
42
  // Requests & Services
42
43
  var position_service_grpc_pb_1 = require("../../../fintekkers/services/position-service/position_service_grpc_pb");
44
+ var requestcontext_1 = require("../../models/utils/requestcontext");
43
45
  var PositionService = /** @class */ (function () {
44
46
  function PositionService() {
45
- this.client = new position_service_grpc_pb_1.PositionClient('api.fintekkers.org:8082', grpc.credentials.createSsl());
46
- // this.client = new PositionClient('localhost:8082', grpc.credentials.createInsecure());
47
+ this.client = new position_service_grpc_pb_1.PositionClient(requestcontext_1.default.apiURL, requestcontext_1.default.apiCredentials);
47
48
  }
48
49
  PositionService.prototype.search = function (request) {
49
50
  return __awaiter(this, void 0, void 0, function () {
@@ -1 +1 @@
1
- {"version":3,"file":"PositionService.js","sourceRoot":"","sources":["PositionService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAsC;AAgBtC,sBAAsB;AACtB,mHAAwG;AAUxG;IAGE;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAc,CAAC,yBAAyB,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,yFAAyF;IAC3F,CAAC;IAEK,gCAAM,GAAZ,UAAa,OAAiC;;YAI5C,SAAe,0BAA0B;;;;wBACjC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAE1C,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;gCAClD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,QAAmC;oCACrD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,UAAC,QAAQ;wCAC3C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC/B,CAAC,CAAC,CAAC;gCACL,CAAC,CAAC,CAAC;gCAEH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;oCAChB,OAAO,CAAC,aAAa,CAAC,CAAC;gCACzB,CAAC,CAAC,CAAC;gCAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,GAAG;oCACtB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;oCAC3C,MAAM,CAAC,GAAG,CAAC,CAAC;gCACd,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,EAAC;;;aACJ;;;;;wBAtBK,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;wBACxB,aAAa,GAAoB,EAAE,CAAC;wBAuBnC,qBAAM,0BAA0B,EAAE,EAAA;4BAAzC,sBAAO,SAAkC,EAAC;;;;KAC3C;IACH,sBAAC;AAAD,CAAC,AAnCD,IAmCC;AAEQ,0CAAe"}
1
+ {"version":3,"file":"PositionService.js","sourceRoot":"","sources":["PositionService.ts"],"names":[],"mappings":";AAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,cAAc;AAEd,sBAAsB;AACtB,mHAAwG;AAKxG,oEAA0D;AAG1D;IAGE;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAc,CAAC,wBAAS,CAAC,MAAM,EAAE,wBAAS,CAAC,cAAc,CAAC,CAAC;IAC/E,CAAC;IAEK,gCAAM,GAAZ,UAAa,OAAiC;;YAI5C,SAAe,0BAA0B;;;;wBACjC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAE1C,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;gCAClD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,QAAmC;oCACrD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,UAAC,QAAQ;wCAC3C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC/B,CAAC,CAAC,CAAC;gCACL,CAAC,CAAC,CAAC;gCAEH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;oCAChB,OAAO,CAAC,aAAa,CAAC,CAAC;gCACzB,CAAC,CAAC,CAAC;gCAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,GAAG;oCACtB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;oCAC3C,MAAM,CAAC,GAAG,CAAC,CAAC;gCACd,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,EAAC;;;aACJ;;;;;wBAtBK,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;wBACxB,aAAa,GAAoB,EAAE,CAAC;wBAuBnC,qBAAM,0BAA0B,EAAE,EAAA;4BAAzC,sBAAO,SAAkC,EAAC;;;;KAC3C;IACH,sBAAC;AAAD,CAAC,AAlCD,IAkCC;AAEQ,0CAAe"}
@@ -1,39 +1,24 @@
1
- import * as grpc from '@grpc/grpc-js';
2
- import { promisify } from 'util';
3
-
4
1
  // Models
5
- import { PortfolioProto } from '../../../fintekkers/models/portfolio/portfolio_pb';
6
- import { createFieldMapEntry } from '../../models/utils/util';
7
- import { LocalTimestampProto } from '../../../fintekkers/models/util/local_timestamp_pb';
8
- import { SummaryProto } from '../../../fintekkers/requests/util/errors/summary_pb';
9
-
10
- import { ZonedDateTime } from '../../models/utils/datetime';
11
- import { packStringIntoAny } from '../../models/utils/util';
12
2
 
13
3
  // Model Utils
14
- import { PositionFilterProto } from '../../../fintekkers/models/position/position_filter_pb';
15
- import { FieldProto } from '../../../fintekkers/models/position/field_pb';
16
4
 
17
5
  // Requests & Services
18
6
  import { PositionClient } from '../../../fintekkers/services/position-service/position_service_grpc_pb';
19
7
  import { QueryPositionRequestProto } from '../../../fintekkers/requests/position/query_position_request_pb';
20
8
  import { QueryPositionResponseProto } from '../../../fintekkers/requests/position/query_position_response_pb';
21
9
 
22
- import { Any } from "google-protobuf/google/protobuf/any_pb";
23
- import { IdentifierProto } from '../../../fintekkers/models/security/identifier/identifier_pb';
24
- import { FieldMapEntry } from '../../../fintekkers/models/position/position_util_pb';
25
- import { PositionProto, PositionViewProto } from '../../../fintekkers/models/position/position_pb';
10
+ import { PositionProto } from '../../../fintekkers/models/position/position_pb';
11
+ import EnvConfig from '../../models/utils/requestcontext';
26
12
 
27
13
 
28
14
  class PositionService {
29
15
  private client: PositionClient;
30
16
 
31
17
  constructor() {
32
- this.client = new PositionClient('api.fintekkers.org:8082', grpc.credentials.createSsl());
33
- // this.client = new PositionClient('localhost:8082', grpc.credentials.createInsecure());
18
+ this.client = new PositionClient(EnvConfig.apiURL, EnvConfig.apiCredentials);
34
19
  }
35
20
 
36
- async search(request:QueryPositionRequestProto) {
21
+ async search(request:QueryPositionRequestProto): Promise<PositionProto[]> {
37
22
  const tmpClient = this.client;
38
23
  const listPositions: PositionProto[] = [];
39
24
 
@@ -45,16 +45,25 @@ var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
45
45
  var position_util_pb_1 = require("../../../fintekkers/models/position/position_util_pb");
46
46
  var position_filter_pb_1 = require("../../../fintekkers/models/position/position_filter_pb");
47
47
  var datetime_1 = require("../../models/utils/datetime");
48
- var util_1 = require("../../models/utils/util");
48
+ var serialization_util_1 = require("../../models/utils/serialization.util");
49
49
  var any_pb_1 = require("google-protobuf/google/protobuf/any_pb");
50
50
  //Requests & Services
51
51
  var PortfolioService_1 = require("../../services/portfolio-service/PortfolioService");
52
52
  var PositionService_1 = require("../../services/position-service/PositionService");
53
53
  var query_position_request_pb_1 = require("../../../fintekkers/requests/position/query_position_request_pb");
54
- test('test getting a position against the api.fintekkers.org position service', function () {
55
- var isTrue = testPosition();
56
- expect(isTrue).resolves.toBe(true);
57
- }, 30000);
54
+ var positionfilter_1 = require("../../models/position/positionfilter");
55
+ test('test getting a position against the api.fintekkers.org position service', function () { return __awaiter(void 0, void 0, void 0, function () {
56
+ var isTrue;
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0: return [4 /*yield*/, testPosition()];
60
+ case 1:
61
+ isTrue = _a.sent();
62
+ expect(isTrue).toBe(true);
63
+ return [2 /*return*/];
64
+ }
65
+ });
66
+ }); }, 30000);
58
67
  function get_position(security, portfolio, measures, position_type, fields, additional_filters, as_of) {
59
68
  if (fields === void 0) { fields = [field_pb_1.FieldProto.PORTFOLIO, field_pb_1.FieldProto.SECURITY]; }
60
69
  if (additional_filters === void 0) { additional_filters = []; }
@@ -79,7 +88,7 @@ function get_position(security, portfolio, measures, position_type, fields, addi
79
88
  if (portfolio !== null && portfolio !== undefined) {
80
89
  fieldMapEntry = new position_util_pb_1.FieldMapEntry();
81
90
  fieldMapEntry.setField(field_pb_1.FieldProto.PORTFOLIO_NAME);
82
- fieldMapEntry.setFieldValuePacked((0, util_1.packStringIntoAny)(portfolio.getPortfolioName()));
91
+ fieldMapEntry.setFieldValuePacked((0, serialization_util_1.pack)(portfolio.getPortfolioName()));
83
92
  filters.push(fieldMapEntry);
84
93
  }
85
94
  if (additional_filters !== null && additional_filters.length > 0) {
@@ -87,7 +96,7 @@ function get_position(security, portfolio, measures, position_type, fields, addi
87
96
  }
88
97
  filter_fields = new position_filter_pb_1.PositionFilterProto();
89
98
  filter_fields.setFiltersList(filters);
90
- as_of_proto = as_of.to_date_proto();
99
+ as_of_proto = as_of.toProto();
91
100
  request = new query_position_request_pb_1.QueryPositionRequestProto();
92
101
  request.setPositionType(position_type);
93
102
  request.setPositionView(position_pb_1.PositionViewProto.DEFAULT_VIEW);
@@ -112,13 +121,19 @@ function testPosition() {
112
121
  case 0:
113
122
  now = datetime_1.ZonedDateTime.now();
114
123
  portfolioService = new PortfolioService_1.PortfolioService();
115
- return [4 /*yield*/, portfolioService.searchPortfolio(now.to_date_proto(), field_pb_1.FieldProto.PORTFOLIO_NAME, "Federal Reserve SOMA Holdings")];
124
+ return [4 /*yield*/, portfolioService.searchPortfolio(now.toProto(), new positionfilter_1.PositionFilter().addFilter(field_pb_1.FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings'))];
116
125
  case 1:
117
126
  portfolios = _a.sent();
118
127
  fedReservePortfolio = portfolios[0];
119
- return [4 /*yield*/, get_position(null, fedReservePortfolio, [measure_pb_1.MeasureProto.DIRECTED_QUANTITY], position_pb_1.PositionTypeProto.TRANSACTION, [field_pb_1.FieldProto.PORTFOLIO_NAME, field_pb_1.FieldProto.SECURITY_ID], [], now)];
128
+ return [4 /*yield*/, get_position(null, fedReservePortfolio.proto, [measure_pb_1.MeasureProto.DIRECTED_QUANTITY], position_pb_1.PositionTypeProto.TRANSACTION, [field_pb_1.FieldProto.PORTFOLIO_NAME, field_pb_1.FieldProto.SECURITY_ID], [], now)];
120
129
  case 2:
121
130
  positions = _a.sent();
131
+ if (positions) {
132
+ console.log(positions.length + " positions returned");
133
+ }
134
+ else {
135
+ console.log("No positions found");
136
+ }
122
137
  return [2 /*return*/, true];
123
138
  }
124
139
  });
@@ -1 +1 @@
1
- {"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":";AAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,8FAA+F;AAC/F,+EAAuG;AAEvG,6EAA8E;AAG9E,cAAc;AACd,yEAA0E;AAC1E,yFAAqF;AACrF,6FAA6F;AAC7F,wDAA4D;AAE5D,4EAA6D;AAC7D,iEAA6D;AAE7D,qBAAqB;AACrB,sFAAqF;AACrF,mFAAkF;AAClF,6GAA4G;AAC5G,uEAAsE;AAEtE,IAAI,CAAC,yEAAyE,EAAE;;;;oBAC/D,qBAAM,YAAY,EAAE,EAAA;;gBAA7B,MAAM,GAAG,SAAoB;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;KAC3B,EAAE,KAAK,CAAC,CAAC;AAEV,SAAe,YAAY,CAAC,QAAuB,EACjD,SAAyB,EACzB,QAAwB,EACxB,aAAgC,EAChC,MAAoD,EACpD,kBAAuB,EAAE,KAA2B;IADpD,uBAAA,EAAA,UAAU,qBAAU,CAAC,SAAS,EAAE,qBAAU,CAAC,QAAQ,CAAC;IACpD,mCAAA,EAAA,uBAAuB;IAAE,sBAAA,EAAA,QAAQ,wBAAa,CAAC,GAAG,EAAE;;;;;;oBAC9C,OAAO,GAAG,EAAE,CAAC;oBAEnB,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;wBACzC,QAAQ,GAAG,IAAI,+BAAe,EAAE,CAAC;wBACvC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;wBAC3E,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;wBAEnE,kBAAkB,GAAG,IAAI,YAAG,EAAE,CAAC;wBACrC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAE5B,aAAa,GAAG,IAAI,gCAAa,EAAE,CAAC;wBAC1C,aAAa,CAAC,QAAQ,CAAC,qBAAU,CAAC,UAAU,CAAC,CAAC;wBAC9C,aAAa,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;wBAEtD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBAC7B;oBAED,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;wBAC3C,aAAa,GAAG,IAAI,gCAAa,EAAE,CAAC;wBAC1C,aAAa,CAAC,QAAQ,CAAC,qBAAU,CAAC,cAAc,CAAC,CAAC;wBAClD,aAAa,CAAC,mBAAmB,CAAC,IAAA,yBAAI,EAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;wBAEtE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBAC7B;oBAED,IAAI,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAChE,OAAO,CAAC,IAAI,OAAZ,OAAO,EAAS,kBAAkB,EAAE;qBACrC;oBAEK,aAAa,GAAG,IAAI,wCAAmB,EAAE,CAAC;oBAChD,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBAEhC,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBAE9B,OAAO,GAAG,IAAI,qDAAyB,EAAE,CAAC;oBAChD,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;oBACvC,OAAO,CAAC,eAAe,CAAC,+BAAiB,CAAC,YAAY,CAAC,CAAC;oBACxD,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC9B,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAClC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;oBACvC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBAEzB,gBAAgB,GAAG,IAAI,iCAAe,EAAE,CAAC;oBAE3B,qBAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;oBAAlD,SAAS,GAAG,SAAsC;oBAExD,sBAAO,SAAS,EAAC;;;;CAClB;AAED,SAAe,YAAY;;;;;;oBAEnB,GAAG,GAAG,wBAAa,CAAC,GAAG,EAAE,CAAC;oBAE1B,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;oBAE/B,qBAAM,gBAAgB,CAAC,eAAe,CACrD,GAAG,CAAC,OAAO,EAAE,EACb,IAAI,+BAAc,EAAE,CAAC,SAAS,CAAC,qBAAU,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC,EAAA;;oBAFzF,UAAU,GAAG,SAE4E;oBACvF,mBAAmB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAE1B,qBAAM,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAChE,CAAC,yBAAY,CAAC,iBAAiB,CAAC,EAChC,+BAAiB,CAAC,WAAW,EAC7B,CAAC,qBAAU,CAAC,cAAc,EAAE,qBAAU,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAA;;oBAH3D,SAAS,GAAG,SAG+C;oBAG/D,IAAI,SAAS,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAA;qBACtD;yBAAM;wBACL,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;qBACnC;oBACD,sBAAO,IAAI,EAAC;;;;CACb"}
@@ -12,72 +12,73 @@ import { FieldMapEntry } from '../../../fintekkers/models/position/position_util
12
12
  import { PositionFilterProto } from '../../../fintekkers/models/position/position_filter_pb';
13
13
  import { ZonedDateTime } from '../../models/utils/datetime';
14
14
 
15
- import { packStringIntoAny } from '../../models/utils/util';
15
+ import { pack } from '../../models/utils/serialization.util';
16
16
  import { Any } from 'google-protobuf/google/protobuf/any_pb';
17
17
 
18
18
  //Requests & Services
19
19
  import { PortfolioService } from '../../services/portfolio-service/PortfolioService';
20
20
  import { PositionService } from '../../services/position-service/PositionService';
21
21
  import { QueryPositionRequestProto } from '../../../fintekkers/requests/position/query_position_request_pb';
22
+ import { PositionFilter } from '../../models/position/positionfilter';
22
23
 
23
- test('test getting a position against the api.fintekkers.org position service', () => {
24
- const isTrue = testPosition();
25
- expect(isTrue).resolves.toBe(true);
24
+ test('test getting a position against the api.fintekkers.org position service', async () => {
25
+ const isTrue = await testPosition();
26
+ expect(isTrue).toBe(true);
26
27
  }, 30000);
27
28
 
28
- async function get_position(security:SecurityProto,
29
- portfolio:PortfolioProto,
30
- measures:MeasureProto[],
31
- position_type:PositionTypeProto,
32
- fields = [FieldProto.PORTFOLIO, FieldProto.SECURITY],
33
- additional_filters = [], as_of = ZonedDateTime.now()) {
34
- const filters = [];
29
+ async function get_position(security: SecurityProto,
30
+ portfolio: PortfolioProto,
31
+ measures: MeasureProto[],
32
+ position_type: PositionTypeProto,
33
+ fields = [FieldProto.PORTFOLIO, FieldProto.SECURITY],
34
+ additional_filters = [], as_of = ZonedDateTime.now()) {
35
+ const filters = [];
35
36
 
36
- if (security !== null && security !== undefined) {
37
- const id_proto = new IdentifierProto();
38
- id_proto.setIdentifierValue(security.getIdentifier().getIdentifierValue());
39
- id_proto.setIdentifierType(security.getIdentifier().getIdentifierType());
37
+ if (security !== null && security !== undefined) {
38
+ const id_proto = new IdentifierProto();
39
+ id_proto.setIdentifierValue(security.getIdentifier().getIdentifierValue());
40
+ id_proto.setIdentifierType(security.getIdentifier().getIdentifierType());
40
41
 
41
- const security_id_packed = new Any();
42
- security_id_packed.pack(id_proto);
42
+ const security_id_packed = new Any();
43
+ security_id_packed.pack(id_proto);
43
44
 
44
- const fieldMapEntry = new FieldMapEntry();
45
- fieldMapEntry.setField(FieldProto.IDENTIFIER);
46
- fieldMapEntry.setFieldValuePacked(security_id_packed);
45
+ const fieldMapEntry = new FieldMapEntry();
46
+ fieldMapEntry.setField(FieldProto.IDENTIFIER);
47
+ fieldMapEntry.setFieldValuePacked(security_id_packed);
47
48
 
48
- filters.push(fieldMapEntry);
49
- }
49
+ filters.push(fieldMapEntry);
50
+ }
50
51
 
51
- if (portfolio !== null && portfolio !== undefined) {
52
- const fieldMapEntry = new FieldMapEntry();
53
- fieldMapEntry.setField(FieldProto.PORTFOLIO_NAME);
54
- fieldMapEntry.setFieldValuePacked(packStringIntoAny(portfolio.getPortfolioName()));
52
+ if (portfolio !== null && portfolio !== undefined) {
53
+ const fieldMapEntry = new FieldMapEntry();
54
+ fieldMapEntry.setField(FieldProto.PORTFOLIO_NAME);
55
+ fieldMapEntry.setFieldValuePacked(pack(portfolio.getPortfolioName()));
55
56
 
56
- filters.push(fieldMapEntry);
57
- }
57
+ filters.push(fieldMapEntry);
58
+ }
58
59
 
59
- if (additional_filters !== null && additional_filters.length > 0) {
60
- filters.push(...additional_filters);
61
- }
60
+ if (additional_filters !== null && additional_filters.length > 0) {
61
+ filters.push(...additional_filters);
62
+ }
62
63
 
63
- const filter_fields = new PositionFilterProto();
64
- filter_fields.setFiltersList(filters);
64
+ const filter_fields = new PositionFilterProto();
65
+ filter_fields.setFiltersList(filters);
65
66
 
66
- const as_of_proto = as_of.to_date_proto();
67
+ const as_of_proto = as_of.toProto();
67
68
 
68
- const request = new QueryPositionRequestProto();
69
- request.setPositionType(position_type);
70
- request.setPositionView(PositionViewProto.DEFAULT_VIEW);
71
- request.setFieldsList(fields);
72
- request.setMeasuresList(measures);
73
- request.setFilterFields(filter_fields);
74
- request.setAsOf(as_of_proto);
69
+ const request = new QueryPositionRequestProto();
70
+ request.setPositionType(position_type);
71
+ request.setPositionView(PositionViewProto.DEFAULT_VIEW);
72
+ request.setFieldsList(fields);
73
+ request.setMeasuresList(measures);
74
+ request.setFilterFields(filter_fields);
75
+ request.setAsOf(as_of_proto);
75
76
 
76
- let position_service = new PositionService();
77
+ let position_service = new PositionService();
77
78
 
78
- const positions = await position_service.search(request);
79
-
80
- return positions;
79
+ const positions = await position_service.search(request);
80
+
81
+ return positions;
81
82
  }
82
83
 
83
84
  async function testPosition(): Promise<boolean> {
@@ -85,18 +86,23 @@ async function testPosition(): Promise<boolean> {
85
86
  const now = ZonedDateTime.now();
86
87
 
87
88
  const portfolioService = new PortfolioService();
88
-
89
+
89
90
  let portfolios = await portfolioService.searchPortfolio(
90
- now.to_date_proto(),
91
- FieldProto.PORTFOLIO_NAME,
92
- "Federal Reserve SOMA Holdings");
91
+ now.toProto(),
92
+ new PositionFilter().addFilter(FieldProto.PORTFOLIO_NAME, 'Federal Reserve SOMA Holdings'));
93
93
  const fedReservePortfolio = portfolios[0];
94
94
 
95
- let positions = await get_position(null, fedReservePortfolio,
96
- [MeasureProto.DIRECTED_QUANTITY],
95
+ let positions = await get_position(null, fedReservePortfolio.proto,
96
+ [MeasureProto.DIRECTED_QUANTITY],
97
97
  PositionTypeProto.TRANSACTION,
98
98
  [FieldProto.PORTFOLIO_NAME, FieldProto.SECURITY_ID], [], now);
99
99
 
100
+
101
+ if (positions) {
102
+ console.log(positions.length + " positions returned")
103
+ } else {
104
+ console.log("No positions found");
105
+ }
100
106
  return true;
101
107
  }
102
108
 
@@ -37,20 +37,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.SecurityService = void 0;
40
- var grpc = require("@grpc/grpc-js");
41
40
  var util_1 = require("util");
42
- var util_2 = require("../../models/utils/util");
43
- // Model Utils
44
- var position_filter_pb_1 = require("../../../fintekkers/models/position/position_filter_pb");
41
+ var security_1 = require("../../models/security/security");
42
+ var dt = require("../../models/utils/datetime");
45
43
  // Requests & Services
46
44
  var security_service_grpc_pb_1 = require("../../../fintekkers/services/security-service/security_service_grpc_pb");
47
45
  var query_security_request_pb_1 = require("../../../fintekkers/requests/security/query_security_request_pb");
48
46
  var create_security_request_pb_1 = require("../../../fintekkers/requests/security/create_security_request_pb");
49
- var security_1 = require("../../models/security/security");
47
+ var requestcontext_1 = require("../../models/utils/requestcontext");
50
48
  var SecurityService = /** @class */ (function () {
51
49
  function SecurityService() {
52
- this.client = new security_service_grpc_pb_1.SecurityClient('api.fintekkers.org:8082', grpc.credentials.createSsl());
53
- // this.client = new SecurityClient('localhost:8082', grpc.credentials.createInsecure());
50
+ this.client = new security_service_grpc_pb_1.SecurityClient(requestcontext_1.default.apiURL, requestcontext_1.default.apiCredentials);
54
51
  }
55
52
  SecurityService.prototype.validateCreateSecurity = function (security) {
56
53
  return __awaiter(this, void 0, void 0, function () {
@@ -90,7 +87,16 @@ var SecurityService = /** @class */ (function () {
90
87
  });
91
88
  });
92
89
  };
93
- SecurityService.prototype.searchSecurity = function (asOf, fieldProto, fieldValue) {
90
+ SecurityService.prototype.searchSecurityAsOfNow = function (positionFilter) {
91
+ return __awaiter(this, void 0, void 0, function () {
92
+ var now;
93
+ return __generator(this, function (_a) {
94
+ now = dt.ZonedDateTime.now().toProto();
95
+ return [2 /*return*/, this.searchSecurity(now, positionFilter)];
96
+ });
97
+ });
98
+ };
99
+ SecurityService.prototype.searchSecurity = function (asOf, positionFilter) {
94
100
  return __awaiter(this, void 0, void 0, function () {
95
101
  function processStreamSynchronously() {
96
102
  return __awaiter(this, void 0, void 0, function () {
@@ -114,7 +120,7 @@ var SecurityService = /** @class */ (function () {
114
120
  });
115
121
  });
116
122
  }
117
- var searchRequest, positionFilter, fieldMapEntry, tmpClient, listSecurities;
123
+ var searchRequest, tmpClient, listSecurities;
118
124
  return __generator(this, function (_a) {
119
125
  switch (_a.label) {
120
126
  case 0:
@@ -122,12 +128,7 @@ var SecurityService = /** @class */ (function () {
122
128
  searchRequest.setObjectClass('SecurityRequest');
123
129
  searchRequest.setVersion('0.0.1');
124
130
  searchRequest.setAsOf(asOf);
125
- positionFilter = new position_filter_pb_1.PositionFilterProto();
126
- positionFilter.setObjectClass('PositionFilter');
127
- positionFilter.setVersion('0.0.1');
128
- fieldMapEntry = (0, util_2.createFieldMapEntry)(fieldProto, fieldValue);
129
- positionFilter.setFiltersList([fieldMapEntry]);
130
- searchRequest.setSearchSecurityInput(positionFilter);
131
+ searchRequest.setSearchSecurityInput(positionFilter.toProto());
131
132
  tmpClient = this.client;
132
133
  listSecurities = [];
133
134
  return [4 /*yield*/, processStreamSynchronously()];
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityService.js","sourceRoot":"","sources":["SecurityService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecurityService.js","sourceRoot":"","sources":["SecurityService.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import * as grpc from '@grpc/grpc-js';
2
1
  import { promisify } from 'util';
3
2
 
4
3
  // Models
5
4
  import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
6
- import { createFieldMapEntry } from '../../models/utils/util';
7
5
  import { LocalTimestampProto } from '../../../fintekkers/models/util/local_timestamp_pb';
8
6
  import { SummaryProto } from '../../../fintekkers/requests/util/errors/summary_pb';
7
+ import Security from '../../models/security/security';
9
8
 
10
9
  // Model Utils
11
- import { PositionFilterProto } from '../../../fintekkers/models/position/position_filter_pb';
12
- import { FieldProto } from '../../../fintekkers/models/position/field_pb';
10
+ import { PositionFilter } from '../../models/position/positionfilter';
11
+ import * as dt from '../../models/utils/datetime';
13
12
 
14
13
  // Requests & Services
15
14
  import { SecurityClient } from '../../../fintekkers/services/security-service/security_service_grpc_pb';
@@ -17,14 +16,14 @@ import { QuerySecurityRequestProto } from '../../../fintekkers/requests/security
17
16
  import { QuerySecurityResponseProto } from '../../../fintekkers/requests/security/query_security_response_pb';
18
17
  import { CreateSecurityRequestProto } from '../../../fintekkers/requests/security/create_security_request_pb';
19
18
  import { CreateSecurityResponseProto } from '../../../fintekkers/requests/security/create_security_response_pb';
20
- import Security from '../../models/security/security';
19
+
20
+ import EnvConfig from '../../models/utils/requestcontext';
21
21
 
22
22
  class SecurityService {
23
23
  private client: SecurityClient;
24
24
 
25
25
  constructor() {
26
- this.client = new SecurityClient('api.fintekkers.org:8082', grpc.credentials.createSsl());
27
- // this.client = new SecurityClient('localhost:8082', grpc.credentials.createInsecure());
26
+ this.client = new SecurityClient(EnvConfig.apiURL, EnvConfig.apiCredentials);
28
27
  }
29
28
 
30
29
  async validateCreateSecurity(security: SecurityProto): Promise<SummaryProto> {
@@ -49,20 +48,18 @@ class SecurityService {
49
48
  return response;
50
49
  }
51
50
 
52
- async searchSecurity(asOf: LocalTimestampProto, fieldProto: FieldProto, fieldValue: string): Promise<Security[]> {
51
+ async searchSecurityAsOfNow(positionFilter: PositionFilter): Promise<Security[]> {
52
+ const now = dt.ZonedDateTime.now().toProto();
53
+ return this.searchSecurity(now, positionFilter);
54
+ }
55
+
56
+ async searchSecurity(asOf: LocalTimestampProto, positionFilter: PositionFilter): Promise<Security[]> {
53
57
  const searchRequest = new QuerySecurityRequestProto();
54
58
  searchRequest.setObjectClass('SecurityRequest');
55
59
  searchRequest.setVersion('0.0.1');
56
60
  searchRequest.setAsOf(asOf);
57
61
 
58
- const positionFilter = new PositionFilterProto();
59
- positionFilter.setObjectClass('PositionFilter');
60
- positionFilter.setVersion('0.0.1');
61
-
62
- const fieldMapEntry = createFieldMapEntry(fieldProto, fieldValue);
63
- positionFilter.setFiltersList([fieldMapEntry]);
64
-
65
- searchRequest.setSearchSecurityInput(positionFilter);
62
+ searchRequest.setSearchSecurityInput(positionFilter.toProto());
66
63
 
67
64
  const tmpClient = this.client;
68
65
 
@@ -72,7 +69,7 @@ class SecurityService {
72
69
  const stream2 = tmpClient.search(searchRequest);
73
70
 
74
71
  return new Promise<Security[]>((resolve, reject) => {
75
- stream2.on('data', (response:QuerySecurityResponseProto) => {
72
+ stream2.on('data', (response: QuerySecurityResponseProto) => {
76
73
  response.getSecurityResponseList().forEach((security) => {
77
74
  listSecurities.push(new Security(security));
78
75
  });
@@ -84,7 +81,7 @@ class SecurityService {
84
81
 
85
82
  stream2.on('error', (err) => {
86
83
  console.error('Error in the stream:', err);
87
- reject(err);
84
+ reject(err);
88
85
  });
89
86
  });
90
87
  }