@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.
- package/.env +3 -0
- package/node/fintekkers/models/position/field_pb.d.ts +1 -0
- package/node/fintekkers/models/position/field_pb.js +1 -0
- package/node/fintekkers/models/security/bond/auction_type_grpc_pb.js +1 -0
- package/node/fintekkers/models/security/bond/auction_type_pb.d.ts +12 -0
- package/node/fintekkers/models/security/bond/auction_type_pb.js +33 -0
- package/node/fintekkers/models/security/bond/issuance_grpc_pb.js +1 -0
- package/node/fintekkers/models/security/bond/issuance_pb.d.ts +85 -0
- package/node/fintekkers/models/security/bond/issuance_pb.js +652 -0
- package/node/fintekkers/models/security/security_pb.d.ts +6 -0
- package/node/fintekkers/models/security/security_pb.js +64 -2
- package/node/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +3 -0
- package/node/fintekkers/requests/transaction/query_transaction_request_pb.js +31 -1
- package/node/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +7 -0
- package/node/fintekkers/requests/transaction/query_transaction_response_pb.js +54 -1
- package/node/wrappers/models/portfolio/portfolio.js +41 -0
- package/node/wrappers/models/portfolio/portfolio.js.map +1 -0
- package/node/wrappers/models/portfolio/portfolio.ts +49 -0
- package/node/wrappers/models/position/position.js +14 -9
- package/node/wrappers/models/position/position.js.map +1 -1
- package/node/wrappers/models/position/position.test.js +43 -0
- package/node/wrappers/models/position/position.test.js.map +1 -0
- package/node/wrappers/models/position/position.test.ts +70 -0
- package/node/wrappers/models/position/position.ts +17 -10
- package/node/wrappers/models/position/positionfilter.js +35 -0
- package/node/wrappers/models/position/positionfilter.js.map +1 -0
- package/node/wrappers/models/position/positionfilter.ts +38 -0
- package/node/wrappers/models/security/security.test.js +33 -0
- package/node/wrappers/models/security/security.test.js.map +1 -0
- package/node/wrappers/models/security/security.test.ts +41 -0
- package/node/wrappers/models/transaction/transaction.js +6 -5
- package/node/wrappers/models/transaction/transaction.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.test.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.test.ts +1 -6
- package/node/wrappers/models/transaction/transaction.ts +31 -31
- package/node/wrappers/models/transaction/transaction_type.js +0 -1
- package/node/wrappers/models/transaction/transaction_type.js.map +1 -1
- package/node/wrappers/models/transaction/transaction_type.ts +1 -1
- package/node/wrappers/models/utils/datetime.js +9 -0
- package/node/wrappers/models/utils/datetime.js.map +1 -1
- package/node/wrappers/models/utils/datetime.ts +16 -4
- package/node/wrappers/models/utils/requestcontext.js +55 -0
- package/node/wrappers/models/utils/requestcontext.js.map +1 -0
- package/node/wrappers/models/utils/requestcontext.ts +44 -0
- package/node/wrappers/models/utils/requestcontext_d.js +1 -0
- package/node/wrappers/models/utils/requestcontext_d.js.map +1 -0
- package/node/wrappers/models/utils/requestcontext_d.ts +7 -0
- package/node/wrappers/models/utils/serialization.js +14 -4
- package/node/wrappers/models/utils/serialization.js.map +1 -1
- package/node/wrappers/models/utils/serialization.test.js +8 -9
- package/node/wrappers/models/utils/serialization.test.js.map +1 -1
- package/node/wrappers/models/utils/serialization.test.ts +8 -10
- package/node/wrappers/models/utils/serialization.ts +46 -38
- package/node/wrappers/models/utils/serialization.util.js +108 -0
- package/node/wrappers/models/utils/serialization.util.js.map +1 -0
- package/node/wrappers/models/utils/serialization.util.test.js +36 -0
- package/node/wrappers/models/utils/serialization.util.test.js.map +1 -0
- package/node/wrappers/models/utils/serialization.util.test.ts +47 -0
- package/node/wrappers/models/utils/serialization.util.ts +121 -0
- package/node/wrappers/services/portfolio-service/PortfolioService.js +8 -16
- package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
- package/node/wrappers/services/portfolio-service/PortfolioService.ts +14 -24
- package/node/wrappers/services/portfolio-service/portfolio.test.js +30 -34
- package/node/wrappers/services/portfolio-service/portfolio.test.js.map +1 -1
- package/node/wrappers/services/portfolio-service/portfolio.test.ts +9 -13
- package/node/wrappers/services/position-service/PositionService.js +4 -3
- package/node/wrappers/services/position-service/PositionService.js.map +1 -1
- package/node/wrappers/services/position-service/PositionService.ts +4 -19
- package/node/wrappers/services/position-service/position.test.js +24 -9
- package/node/wrappers/services/position-service/position.test.js.map +1 -1
- package/node/wrappers/services/position-service/position.test.ts +57 -51
- package/node/wrappers/services/security-service/SecurityService.js +16 -15
- package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
- package/node/wrappers/services/security-service/SecurityService.ts +15 -18
- package/node/wrappers/services/security-service/security.maturityLadder.test.js +59 -0
- package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -0
- package/node/wrappers/services/security-service/security.maturityLadder.test.ts +39 -0
- package/node/wrappers/services/security-service/security.test.js +19 -7
- package/node/wrappers/services/security-service/security.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.test.ts +11 -7
- package/node/wrappers/services/transaction-service/TransactionService.js +34 -47
- package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
- package/node/wrappers/services/transaction-service/TransactionService.ts +16 -23
- package/node/wrappers/services/transaction-service/transaction.test.js +45 -12
- package/node/wrappers/services/transaction-service/transaction.test.js.map +1 -1
- package/node/wrappers/services/transaction-service/transaction.test.ts +48 -21
- package/package.json +2 -1
- package/web/fintekkers/models/position/field_pb.d.ts +1 -0
- package/web/fintekkers/models/position/field_pb.js +1 -0
- package/web/fintekkers/models/security/bond/auction_type_pb.d.ts +8 -0
- package/web/fintekkers/models/security/bond/auction_type_pb.js +27 -0
- package/web/fintekkers/models/security/bond/issuance_pb.d.ts +82 -0
- package/web/fintekkers/models/security/bond/issuance_pb.js +646 -0
- package/web/fintekkers/models/security/security_pb.d.ts +7 -0
- package/web/fintekkers/models/security/security_pb.js +64 -2
- package/web/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +4 -0
- package/web/fintekkers/requests/transaction/query_transaction_request_pb.js +31 -1
- package/web/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +7 -0
- package/web/fintekkers/requests/transaction/query_transaction_response_pb.js +54 -1
- package/node/wrappers/models/utils/util.js +0 -28
- package/node/wrappers/models/utils/util.js.map +0 -1
- 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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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(
|
|
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":"
|
|
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 {
|
|
23
|
-
import
|
|
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(
|
|
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
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
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":";AAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAET,8FAA+F;AAC/F,+EAAuG;AAEvG,6EAA8E;AAG9E,cAAc;AACd,yEAA0E;AAC1E,yFAAqF;AACrF,6FAA6F;AAC7F,wDAA4D;AAE5D,
|
|
1
|
+
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 {
|
|
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).
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
42
|
-
|
|
42
|
+
const security_id_packed = new Any();
|
|
43
|
+
security_id_packed.pack(id_proto);
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
const fieldMapEntry = new FieldMapEntry();
|
|
46
|
+
fieldMapEntry.setField(FieldProto.IDENTIFIER);
|
|
47
|
+
fieldMapEntry.setFieldValuePacked(security_id_packed);
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
filters.push(fieldMapEntry);
|
|
50
|
+
}
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
57
|
-
|
|
57
|
+
filters.push(fieldMapEntry);
|
|
58
|
+
}
|
|
58
59
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
if (additional_filters !== null && additional_filters.length > 0) {
|
|
61
|
+
filters.push(...additional_filters);
|
|
62
|
+
}
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
const filter_fields = new PositionFilterProto();
|
|
65
|
+
filter_fields.setFiltersList(filters);
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
const as_of_proto = as_of.toProto();
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
77
|
+
let position_service = new PositionService();
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
91
|
-
|
|
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
|
|
43
|
-
|
|
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
|
|
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(
|
|
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.
|
|
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,
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
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 {
|
|
12
|
-
import
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
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
|
}
|