@fintekkers/ledger-models 0.1.61 → 0.1.62
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/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/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/transaction/transaction.js +2 -2
- 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 +0 -1
- package/node/wrappers/models/transaction/transaction.ts +2 -2
- 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/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 +6 -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 +8 -8
- package/node/wrappers/models/utils/serialization.util.js +76 -0
- package/node/wrappers/models/utils/serialization.util.js.map +1 -0
- package/node/wrappers/models/utils/serialization.util.test.js +24 -0
- package/node/wrappers/models/utils/serialization.util.test.js.map +1 -0
- package/node/wrappers/models/utils/serialization.util.test.ts +29 -0
- package/node/wrappers/models/utils/serialization.util.ts +85 -0
- package/node/wrappers/services/portfolio-service/PortfolioService.js +5 -5
- package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
- package/node/wrappers/services/portfolio-service/PortfolioService.ts +5 -3
- package/node/wrappers/services/portfolio-service/portfolio.test.js +2 -2
- package/node/wrappers/services/portfolio-service/portfolio.test.js.map +1 -1
- package/node/wrappers/services/portfolio-service/portfolio.test.ts +2 -2
- 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 +17 -8
- package/node/wrappers/services/position-service/position.test.js.map +1 -1
- package/node/wrappers/services/position-service/position.test.ts +10 -7
- package/node/wrappers/services/security-service/SecurityService.js +4 -5
- package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
- package/node/wrappers/services/security-service/SecurityService.ts +3 -3
- package/node/wrappers/services/security-service/security.test.js +15 -7
- package/node/wrappers/services/security-service/security.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.test.ts +6 -6
- package/node/wrappers/services/transaction-service/TransactionService.js +40 -46
- package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
- package/node/wrappers/services/transaction-service/TransactionService.ts +13 -10
- package/node/wrappers/services/transaction-service/transaction.test.js +28 -11
- package/node/wrappers/services/transaction-service/transaction.test.js.map +1 -1
- package/node/wrappers/services/transaction-service/transaction.test.ts +23 -13
- package/package.json +2 -1
- 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
|
@@ -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,7 +12,7 @@ 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
|
|
@@ -20,9 +20,9 @@ import { PortfolioService } from '../../services/portfolio-service/PortfolioServ
|
|
|
20
20
|
import { PositionService } from '../../services/position-service/PositionService';
|
|
21
21
|
import { QueryPositionRequestProto } from '../../../fintekkers/requests/position/query_position_request_pb';
|
|
22
22
|
|
|
23
|
-
test('test getting a position against the api.fintekkers.org position service', () => {
|
|
24
|
-
const isTrue = testPosition();
|
|
25
|
-
expect(isTrue).
|
|
23
|
+
test('test getting a position against the api.fintekkers.org position service', async () => {
|
|
24
|
+
const isTrue = await testPosition();
|
|
25
|
+
expect(isTrue).toBe(true);
|
|
26
26
|
}, 30000);
|
|
27
27
|
|
|
28
28
|
async function get_position(security:SecurityProto,
|
|
@@ -51,7 +51,7 @@ async function get_position(security:SecurityProto,
|
|
|
51
51
|
if (portfolio !== null && portfolio !== undefined) {
|
|
52
52
|
const fieldMapEntry = new FieldMapEntry();
|
|
53
53
|
fieldMapEntry.setField(FieldProto.PORTFOLIO_NAME);
|
|
54
|
-
fieldMapEntry.setFieldValuePacked(
|
|
54
|
+
fieldMapEntry.setFieldValuePacked(pack(portfolio.getPortfolioName()));
|
|
55
55
|
|
|
56
56
|
filters.push(fieldMapEntry);
|
|
57
57
|
}
|
|
@@ -63,7 +63,7 @@ async function get_position(security:SecurityProto,
|
|
|
63
63
|
const filter_fields = new PositionFilterProto();
|
|
64
64
|
filter_fields.setFiltersList(filters);
|
|
65
65
|
|
|
66
|
-
const as_of_proto = as_of.
|
|
66
|
+
const as_of_proto = as_of.toProto();
|
|
67
67
|
|
|
68
68
|
const request = new QueryPositionRequestProto();
|
|
69
69
|
request.setPositionType(position_type);
|
|
@@ -87,7 +87,7 @@ async function testPosition(): Promise<boolean> {
|
|
|
87
87
|
const portfolioService = new PortfolioService();
|
|
88
88
|
|
|
89
89
|
let portfolios = await portfolioService.searchPortfolio(
|
|
90
|
-
now.
|
|
90
|
+
now.toProto(),
|
|
91
91
|
FieldProto.PORTFOLIO_NAME,
|
|
92
92
|
"Federal Reserve SOMA Holdings");
|
|
93
93
|
const fedReservePortfolio = portfolios[0];
|
|
@@ -97,6 +97,9 @@ async function testPosition(): Promise<boolean> {
|
|
|
97
97
|
PositionTypeProto.TRANSACTION,
|
|
98
98
|
[FieldProto.PORTFOLIO_NAME, FieldProto.SECURITY_ID], [], now);
|
|
99
99
|
|
|
100
|
+
|
|
101
|
+
console.log(positions);
|
|
102
|
+
|
|
100
103
|
return true;
|
|
101
104
|
}
|
|
102
105
|
|
|
@@ -37,9 +37,8 @@ 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
|
|
41
|
+
var serialization_util_1 = require("../../models/utils/serialization.util");
|
|
43
42
|
// Model Utils
|
|
44
43
|
var position_filter_pb_1 = require("../../../fintekkers/models/position/position_filter_pb");
|
|
45
44
|
// Requests & Services
|
|
@@ -47,10 +46,10 @@ var security_service_grpc_pb_1 = require("../../../fintekkers/services/security-
|
|
|
47
46
|
var query_security_request_pb_1 = require("../../../fintekkers/requests/security/query_security_request_pb");
|
|
48
47
|
var create_security_request_pb_1 = require("../../../fintekkers/requests/security/create_security_request_pb");
|
|
49
48
|
var security_1 = require("../../models/security/security");
|
|
49
|
+
var requestcontext_1 = require("../../models/utils/requestcontext");
|
|
50
50
|
var SecurityService = /** @class */ (function () {
|
|
51
51
|
function SecurityService() {
|
|
52
|
-
this.client = new security_service_grpc_pb_1.SecurityClient(
|
|
53
|
-
// this.client = new SecurityClient('localhost:8082', grpc.credentials.createInsecure());
|
|
52
|
+
this.client = new security_service_grpc_pb_1.SecurityClient(requestcontext_1.default.apiURL, requestcontext_1.default.apiCredentials);
|
|
54
53
|
}
|
|
55
54
|
SecurityService.prototype.validateCreateSecurity = function (security) {
|
|
56
55
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -125,7 +124,7 @@ var SecurityService = /** @class */ (function () {
|
|
|
125
124
|
positionFilter = new position_filter_pb_1.PositionFilterProto();
|
|
126
125
|
positionFilter.setObjectClass('PositionFilter');
|
|
127
126
|
positionFilter.setVersion('0.0.1');
|
|
128
|
-
fieldMapEntry = (0,
|
|
127
|
+
fieldMapEntry = (0, serialization_util_1.createFieldMapEntry)(fieldProto, fieldValue);
|
|
129
128
|
positionFilter.setFiltersList([fieldMapEntry]);
|
|
130
129
|
searchRequest.setSearchSecurityInput(positionFilter);
|
|
131
130
|
tmpClient = this.client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityService.js","sourceRoot":"","sources":["SecurityService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SecurityService.js","sourceRoot":"","sources":["SecurityService.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { promisify } from 'util';
|
|
|
3
3
|
|
|
4
4
|
// Models
|
|
5
5
|
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
6
|
-
import { createFieldMapEntry } from '../../models/utils/util';
|
|
6
|
+
import { createFieldMapEntry } from '../../models/utils/serialization.util';
|
|
7
7
|
import { LocalTimestampProto } from '../../../fintekkers/models/util/local_timestamp_pb';
|
|
8
8
|
import { SummaryProto } from '../../../fintekkers/requests/util/errors/summary_pb';
|
|
9
9
|
|
|
@@ -18,13 +18,13 @@ import { QuerySecurityResponseProto } from '../../../fintekkers/requests/securit
|
|
|
18
18
|
import { CreateSecurityRequestProto } from '../../../fintekkers/requests/security/create_security_request_pb';
|
|
19
19
|
import { CreateSecurityResponseProto } from '../../../fintekkers/requests/security/create_security_response_pb';
|
|
20
20
|
import Security from '../../models/security/security';
|
|
21
|
+
import EnvConfig from '../../models/utils/requestcontext';
|
|
21
22
|
|
|
22
23
|
class SecurityService {
|
|
23
24
|
private client: SecurityClient;
|
|
24
25
|
|
|
25
26
|
constructor() {
|
|
26
|
-
this.client = new SecurityClient(
|
|
27
|
-
// this.client = new SecurityClient('localhost:8082', grpc.credentials.createInsecure());
|
|
27
|
+
this.client = new SecurityClient(EnvConfig.apiURL, EnvConfig.apiCredentials);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
async validateCreateSecurity(security: SecurityProto): Promise<SummaryProto> {
|
|
@@ -48,10 +48,18 @@ var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
|
|
|
48
48
|
var uuid = require("../../models/utils/uuid");
|
|
49
49
|
var dt = require("../../models/utils/datetime");
|
|
50
50
|
var SecurityService_1 = require("./SecurityService");
|
|
51
|
-
test('test creating a security against the api.fintekkers.org
|
|
52
|
-
var isTrue
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
test('test creating a security against the api.fintekkers.org security service', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
+
var isTrue;
|
|
53
|
+
return __generator(this, function (_a) {
|
|
54
|
+
switch (_a.label) {
|
|
55
|
+
case 0: return [4 /*yield*/, testSecurity()];
|
|
56
|
+
case 1:
|
|
57
|
+
isTrue = _a.sent();
|
|
58
|
+
expect(isTrue).toBe(true);
|
|
59
|
+
return [2 /*return*/];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}); }, 30000);
|
|
55
63
|
function testSecurity() {
|
|
56
64
|
return __awaiter(this, void 0, void 0, function () {
|
|
57
65
|
var id_proto, now, securityService, usd_security, security, faceValue, couponRate, issueDate, maturityDate, validationSummary, createSecurityResponse, searchResults;
|
|
@@ -62,7 +70,7 @@ function testSecurity() {
|
|
|
62
70
|
now = dt.ZonedDateTime.now();
|
|
63
71
|
securityService = new SecurityService_1.SecurityService();
|
|
64
72
|
return [4 /*yield*/, securityService
|
|
65
|
-
.searchSecurity(now.
|
|
73
|
+
.searchSecurity(now.toProto(), field_pb_1.FieldProto.ASSET_CLASS, 'Cash')
|
|
66
74
|
.then(function (securities) {
|
|
67
75
|
return securities[0];
|
|
68
76
|
})];
|
|
@@ -73,7 +81,7 @@ function testSecurity() {
|
|
|
73
81
|
security.setVersion('0.0.1');
|
|
74
82
|
security.setUuid(id_proto);
|
|
75
83
|
security.setSettlementCurrency(usd_security.proto);
|
|
76
|
-
security.setAsOf(now.
|
|
84
|
+
security.setAsOf(now.toProto());
|
|
77
85
|
security.setAssetClass('FixedIncome');
|
|
78
86
|
security.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY);
|
|
79
87
|
security.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED);
|
|
@@ -103,7 +111,7 @@ function testSecurity() {
|
|
|
103
111
|
return [4 /*yield*/, securityService.createSecurity(security)];
|
|
104
112
|
case 3:
|
|
105
113
|
createSecurityResponse = _a.sent();
|
|
106
|
-
return [4 /*yield*/, securityService.searchSecurity(now.
|
|
114
|
+
return [4 /*yield*/, securityService.searchSecurity(now.toProto(), field_pb_1.FieldProto.ASSET_CLASS, 'Fixed Income')];
|
|
107
115
|
case 4:
|
|
108
116
|
searchResults = _a.sent();
|
|
109
117
|
return [2 /*return*/, true];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS;AACT,+EAAgF;AAChF,+FAA+F;AAC/F,qFAAqF;AACrF,qFAAqF;AACrF,yFAAyF;AACzF,+EAA+E;AAE/E,cAAc;AACd,yEAA0E;AAE1E,8CAAgD;AAChD,gDAAkD;AAGlD,qDAAoD;AAEpD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,9 @@ import * as dt from '../../models/utils/datetime';
|
|
|
15
15
|
import { CreateSecurityResponseProto } from '../../../fintekkers/requests/security/create_security_response_pb';
|
|
16
16
|
import { SecurityService } from './SecurityService';
|
|
17
17
|
|
|
18
|
-
test('test creating a security against the api.fintekkers.org
|
|
19
|
-
const isTrue = testSecurity();
|
|
20
|
-
expect(isTrue).
|
|
18
|
+
test('test creating a security against the api.fintekkers.org security service', async () => {
|
|
19
|
+
const isTrue = await testSecurity();
|
|
20
|
+
expect(isTrue).toBe(true);
|
|
21
21
|
}, 30000);
|
|
22
22
|
|
|
23
23
|
async function testSecurity(): Promise<boolean> {
|
|
@@ -27,7 +27,7 @@ async function testSecurity(): Promise<boolean> {
|
|
|
27
27
|
const securityService = new SecurityService();
|
|
28
28
|
|
|
29
29
|
let usd_security = await securityService
|
|
30
|
-
.searchSecurity(now.
|
|
30
|
+
.searchSecurity(now.toProto(), FieldProto.ASSET_CLASS, 'Cash')
|
|
31
31
|
.then((securities) => {
|
|
32
32
|
return securities[0];
|
|
33
33
|
});
|
|
@@ -37,7 +37,7 @@ async function testSecurity(): Promise<boolean> {
|
|
|
37
37
|
security.setVersion('0.0.1');
|
|
38
38
|
security.setUuid(id_proto);
|
|
39
39
|
security.setSettlementCurrency(usd_security.proto);
|
|
40
|
-
security.setAsOf(now.
|
|
40
|
+
security.setAsOf(now.toProto());
|
|
41
41
|
security.setAssetClass('FixedIncome');
|
|
42
42
|
security.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY);
|
|
43
43
|
security.setCouponType(CouponTypeProto.FIXED);
|
|
@@ -71,7 +71,7 @@ async function testSecurity(): Promise<boolean> {
|
|
|
71
71
|
|
|
72
72
|
var createSecurityResponse:CreateSecurityResponseProto = await securityService.createSecurity(security);
|
|
73
73
|
|
|
74
|
-
var searchResults = await securityService.searchSecurity(now.
|
|
74
|
+
var searchResults = await securityService.searchSecurity(now.toProto(), FieldProto.ASSET_CLASS, 'Fixed Income');
|
|
75
75
|
|
|
76
76
|
return true;
|
|
77
77
|
}
|
|
@@ -37,21 +37,20 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.TransactionService = void 0;
|
|
40
|
-
var grpc = require("@grpc/grpc-js");
|
|
41
40
|
var util_1 = require("util");
|
|
42
41
|
// Models
|
|
43
42
|
var transaction_1 = require("../../models/transaction/transaction");
|
|
44
|
-
var
|
|
43
|
+
var serialization_util_1 = require("../../models/utils/serialization.util");
|
|
45
44
|
// Model Utils
|
|
46
45
|
var position_filter_pb_1 = require("../../../fintekkers/models/position/position_filter_pb");
|
|
47
46
|
// Requests & Services
|
|
48
47
|
var transaction_service_grpc_pb_1 = require("../../../fintekkers/services/transaction-service/transaction_service_grpc_pb");
|
|
49
48
|
var create_transaction_request_pb_1 = require("../../../fintekkers/requests/transaction/create_transaction_request_pb");
|
|
50
49
|
var query_transaction_request_pb_1 = require("../../../fintekkers/requests/transaction/query_transaction_request_pb");
|
|
50
|
+
var requestcontext_1 = require("../../models/utils/requestcontext");
|
|
51
51
|
var TransactionService = /** @class */ (function () {
|
|
52
52
|
function TransactionService() {
|
|
53
|
-
this.client = new transaction_service_grpc_pb_1.TransactionClient(
|
|
54
|
-
// this.client = new TransactionClient('localhost:8082', grpc.credentials.createInsecure());
|
|
53
|
+
this.client = new transaction_service_grpc_pb_1.TransactionClient(requestcontext_1.default.apiURL, requestcontext_1.default.apiCredentials);
|
|
55
54
|
}
|
|
56
55
|
TransactionService.prototype.validateCreateTransaction = function (transaction) {
|
|
57
56
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -91,51 +90,46 @@ var TransactionService = /** @class */ (function () {
|
|
|
91
90
|
});
|
|
92
91
|
});
|
|
93
92
|
};
|
|
94
|
-
TransactionService.prototype.searchTransaction = function (asOf, fieldProto, fieldValue) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
93
|
+
TransactionService.prototype.searchTransaction = function (asOf, fieldProto, fieldValue, maxResults) {
|
|
94
|
+
if (maxResults === void 0) { maxResults = 100; }
|
|
95
|
+
var searchRequest = new query_transaction_request_pb_1.QueryTransactionRequestProto();
|
|
96
|
+
searchRequest.setObjectClass('SecurityRequest');
|
|
97
|
+
searchRequest.setVersion('0.0.1');
|
|
98
|
+
searchRequest.setAsOf(asOf);
|
|
99
|
+
var positionFilter = new position_filter_pb_1.PositionFilterProto();
|
|
100
|
+
positionFilter.setObjectClass('PositionFilter');
|
|
101
|
+
positionFilter.setVersion('0.0.1');
|
|
102
|
+
var fieldMapEntry = (0, serialization_util_1.createFieldMapEntry)(fieldProto, fieldValue);
|
|
103
|
+
positionFilter.setFiltersList([fieldMapEntry]);
|
|
104
|
+
searchRequest.setSearchTransactionInput(positionFilter);
|
|
105
|
+
searchRequest.setLimit(maxResults);
|
|
106
|
+
var tmpClient = this.client;
|
|
107
|
+
function processStreamSynchronously() {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
+
var stream2, results;
|
|
110
|
+
return __generator(this, function (_a) {
|
|
111
|
+
stream2 = tmpClient.search(searchRequest);
|
|
112
|
+
results = [];
|
|
113
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
114
|
+
stream2.on('data', function (response) {
|
|
115
|
+
response.getTransactionResponseList().forEach(function (transaction) {
|
|
116
|
+
var txn = new transaction_1.default(transaction);
|
|
117
|
+
results.push(txn);
|
|
113
118
|
});
|
|
114
|
-
})
|
|
115
|
-
|
|
119
|
+
});
|
|
120
|
+
stream2.on('end', function () {
|
|
121
|
+
console.log("Stream ended with ", results.length);
|
|
122
|
+
resolve(results);
|
|
123
|
+
});
|
|
124
|
+
stream2.on('error', function (err) {
|
|
125
|
+
console.error('Error in the stream:', err);
|
|
126
|
+
reject(err);
|
|
127
|
+
});
|
|
128
|
+
})];
|
|
116
129
|
});
|
|
117
|
-
}
|
|
118
|
-
var searchRequest, positionFilter, fieldMapEntry, tmpClient, listTransactions;
|
|
119
|
-
return __generator(this, function (_a) {
|
|
120
|
-
switch (_a.label) {
|
|
121
|
-
case 0:
|
|
122
|
-
searchRequest = new query_transaction_request_pb_1.QueryTransactionRequestProto();
|
|
123
|
-
searchRequest.setObjectClass('SecurityRequest');
|
|
124
|
-
searchRequest.setVersion('0.0.1');
|
|
125
|
-
searchRequest.setAsOf(asOf);
|
|
126
|
-
positionFilter = new position_filter_pb_1.PositionFilterProto();
|
|
127
|
-
positionFilter.setObjectClass('PositionFilter');
|
|
128
|
-
positionFilter.setVersion('0.0.1');
|
|
129
|
-
fieldMapEntry = (0, util_2.createFieldMapEntry)(fieldProto, fieldValue);
|
|
130
|
-
positionFilter.setFiltersList([fieldMapEntry]);
|
|
131
|
-
searchRequest.setSearchTransactionInput(positionFilter);
|
|
132
|
-
tmpClient = this.client;
|
|
133
|
-
listTransactions = [];
|
|
134
|
-
return [4 /*yield*/, processStreamSynchronously()];
|
|
135
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
136
|
-
}
|
|
137
130
|
});
|
|
138
|
-
}
|
|
131
|
+
}
|
|
132
|
+
return processStreamSynchronously();
|
|
139
133
|
};
|
|
140
134
|
return TransactionService;
|
|
141
135
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionService.js","sourceRoot":"","sources":["TransactionService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TransactionService.js","sourceRoot":"","sources":["TransactionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { promisify } from 'util';
|
|
|
3
3
|
|
|
4
4
|
// Models
|
|
5
5
|
import Transaction from '../../models/transaction/transaction';
|
|
6
|
-
import { createFieldMapEntry } from '../../models/utils/util';
|
|
6
|
+
import { createFieldMapEntry } from '../../models/utils/serialization.util';
|
|
7
7
|
import { LocalTimestampProto } from '../../../fintekkers/models/util/local_timestamp_pb';
|
|
8
8
|
import { SummaryProto } from '../../../fintekkers/requests/util/errors/summary_pb';
|
|
9
9
|
|
|
@@ -17,14 +17,14 @@ import { CreateTransactionRequestProto } from '../../../fintekkers/requests/tran
|
|
|
17
17
|
import { CreateTransactionResponseProto } from '../../../fintekkers/requests/transaction/create_transaction_response_pb';
|
|
18
18
|
import { QueryTransactionRequestProto } from '../../../fintekkers/requests/transaction/query_transaction_request_pb';
|
|
19
19
|
import { QueryTransactionResponseProto } from '../../../fintekkers/requests/transaction/query_transaction_response_pb';
|
|
20
|
+
import EnvConfig from '../../models/utils/requestcontext';
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class TransactionService {
|
|
23
24
|
private client: TransactionClient;
|
|
24
25
|
|
|
25
26
|
constructor() {
|
|
26
|
-
this.client = new TransactionClient(
|
|
27
|
-
// this.client = new TransactionClient('localhost:8082', grpc.credentials.createInsecure());
|
|
27
|
+
this.client = new TransactionClient(EnvConfig.apiURL, EnvConfig.apiCredentials);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
async validateCreateTransaction(transaction: Transaction): Promise<SummaryProto> {
|
|
@@ -49,7 +49,8 @@ class TransactionService {
|
|
|
49
49
|
return response;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
searchTransaction(asOf: LocalTimestampProto, fieldProto: FieldProto, fieldValue: string, maxResults: number=100):
|
|
53
|
+
Promise<Transaction[]> {
|
|
53
54
|
const searchRequest = new QueryTransactionRequestProto();
|
|
54
55
|
searchRequest.setObjectClass('SecurityRequest');
|
|
55
56
|
searchRequest.setVersion('0.0.1');
|
|
@@ -63,23 +64,25 @@ class TransactionService {
|
|
|
63
64
|
positionFilter.setFiltersList([fieldMapEntry]);
|
|
64
65
|
|
|
65
66
|
searchRequest.setSearchTransactionInput(positionFilter);
|
|
67
|
+
searchRequest.setLimit(maxResults);
|
|
66
68
|
|
|
67
69
|
const tmpClient = this.client;
|
|
68
70
|
|
|
69
|
-
const listTransactions: Transaction[] = [];
|
|
70
|
-
|
|
71
71
|
async function processStreamSynchronously(): Promise<Transaction[]> {
|
|
72
72
|
const stream2 = tmpClient.search(searchRequest);
|
|
73
|
+
var results:Transaction[] = [];
|
|
73
74
|
|
|
74
75
|
return new Promise<Transaction[]>((resolve, reject) => {
|
|
75
76
|
stream2.on('data', (response:QueryTransactionResponseProto) => {
|
|
76
77
|
response.getTransactionResponseList().forEach((transaction) => {
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
const txn:Transaction = new Transaction(transaction);
|
|
79
|
+
results.push(txn);
|
|
80
|
+
})
|
|
79
81
|
});
|
|
80
82
|
|
|
81
83
|
stream2.on('end', () => {
|
|
82
|
-
|
|
84
|
+
console.log("Stream ended with ", results.length);
|
|
85
|
+
resolve(results);
|
|
83
86
|
});
|
|
84
87
|
|
|
85
88
|
stream2.on('error', (err) => {
|
|
@@ -89,7 +92,7 @@ class TransactionService {
|
|
|
89
92
|
});
|
|
90
93
|
}
|
|
91
94
|
|
|
92
|
-
return
|
|
95
|
+
return processStreamSynchronously();
|
|
93
96
|
}
|
|
94
97
|
}
|
|
95
98
|
|
|
@@ -50,13 +50,22 @@ var price_pb_1 = require("../../../fintekkers/models/price/price_pb");
|
|
|
50
50
|
var PortfolioService_1 = require("../portfolio-service/PortfolioService");
|
|
51
51
|
var TransactionService_1 = require("./TransactionService");
|
|
52
52
|
var transaction_1 = require("../../models/transaction/transaction");
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
var assert = require("assert");
|
|
54
|
+
test('test creating a transaction against the portfolio service', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
+
var isTrue;
|
|
56
|
+
return __generator(this, function (_a) {
|
|
57
|
+
switch (_a.label) {
|
|
58
|
+
case 0: return [4 /*yield*/, testTransaction()];
|
|
59
|
+
case 1:
|
|
60
|
+
isTrue = _a.sent();
|
|
61
|
+
expect(isTrue).toBe(true);
|
|
62
|
+
return [2 /*return*/];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}); }, 30000);
|
|
57
66
|
function testTransaction() {
|
|
58
67
|
return __awaiter(this, void 0, void 0, function () {
|
|
59
|
-
var id_proto, now, today, securityService, portfolioService, transactionService, fixedIncomeSecurities, security, portfolios, portfolio, transaction, createTransactionResponse,
|
|
68
|
+
var id_proto, now, today, securityService, portfolioService, transactionService, fixedIncomeSecurities, security, portfolios, portfolio, transaction, createTransactionResponse, transactionResponse, transactions;
|
|
60
69
|
return __generator(this, function (_a) {
|
|
61
70
|
switch (_a.label) {
|
|
62
71
|
case 0:
|
|
@@ -67,14 +76,14 @@ function testTransaction() {
|
|
|
67
76
|
portfolioService = new PortfolioService_1.PortfolioService();
|
|
68
77
|
transactionService = new TransactionService_1.TransactionService();
|
|
69
78
|
return [4 /*yield*/, securityService
|
|
70
|
-
.searchSecurity(now.
|
|
79
|
+
.searchSecurity(now.toProto(), field_pb_1.FieldProto.ASSET_CLASS, 'Fixed Income')
|
|
71
80
|
.then(function (fixedIncomeSecurities) {
|
|
72
81
|
return fixedIncomeSecurities;
|
|
73
82
|
})];
|
|
74
83
|
case 1:
|
|
75
84
|
fixedIncomeSecurities = _a.sent();
|
|
76
85
|
security = fixedIncomeSecurities[0];
|
|
77
|
-
return [4 /*yield*/, portfolioService.searchPortfolio(now.
|
|
86
|
+
return [4 /*yield*/, portfolioService.searchPortfolio(now.toProto(), field_pb_1.FieldProto.PORTFOLIO_NAME, 'TEST PORTFOLIO')];
|
|
78
87
|
case 2:
|
|
79
88
|
portfolios = _a.sent();
|
|
80
89
|
if (portfolios === undefined) {
|
|
@@ -88,13 +97,13 @@ function testTransaction() {
|
|
|
88
97
|
transaction.setObjectClass('Transaction');
|
|
89
98
|
transaction.setVersion('0.0.1');
|
|
90
99
|
transaction.setUuid(uuid.UUID.random().toUUIDProto());
|
|
91
|
-
transaction.setAsOf(now.
|
|
100
|
+
transaction.setAsOf(now.toProto());
|
|
92
101
|
transaction.setTradeDate(today);
|
|
93
102
|
transaction.setSettlementDate(today); //Same day settlement
|
|
94
103
|
transaction.setTransactionType(transaction_type_pb_1.TransactionTypeProto.BUY);
|
|
95
104
|
transaction.setPrice(new price_pb_1.PriceProto()
|
|
96
105
|
.setObjectClass('Price')
|
|
97
|
-
.setAsOf(now.
|
|
106
|
+
.setAsOf(now.toProto())
|
|
98
107
|
.setVersion('0.0.1')
|
|
99
108
|
.setSecurity(security.proto)
|
|
100
109
|
.setUuid(uuid.UUID.random().toUUIDProto())
|
|
@@ -105,9 +114,17 @@ function testTransaction() {
|
|
|
105
114
|
return [4 /*yield*/, transactionService.createTransaction(new transaction_1.default(transaction))];
|
|
106
115
|
case 3:
|
|
107
116
|
createTransactionResponse = _a.sent();
|
|
108
|
-
|
|
117
|
+
transactionResponse = createTransactionResponse.getTransactionResponse();
|
|
118
|
+
assert(transactionResponse, "No transaction response found");
|
|
119
|
+
return [4 /*yield*/, transactionService.searchTransaction(now.toProto(), field_pb_1.FieldProto.ASSET_CLASS, 'Fixed Income')];
|
|
109
120
|
case 4:
|
|
110
|
-
|
|
121
|
+
transactions = _a.sent();
|
|
122
|
+
if (transactions === undefined) {
|
|
123
|
+
console.log('No transactions found');
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(transactions.length);
|
|
127
|
+
}
|
|
111
128
|
return [2 /*return*/, true];
|
|
112
129
|
}
|
|
113
130
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["transaction.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS;AACT,qFAAqF;AACrF,+EAA+E;AAE/E,cAAc;AACd,yEAA0E;AAE1E,8CAAgD;AAChD,gDAAkD;AAElD,uEAAsE;AACtE,kGAAkG;AAClG,wFAAyF;AACzF,sEAAuE;AACvE,0EAAyE;AACzE,2DAA0D;AAC1D,oEAA+D;AAG/D,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["transaction.test.ts"],"names":[],"mappings":"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"}
|