@fintekkers/ledger-models 0.1.78 → 0.1.80
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/wrappers/models/position/position.js +31 -5
- package/node/wrappers/models/position/position.js.map +1 -1
- package/node/wrappers/models/position/position.test.js +57 -11
- package/node/wrappers/models/position/position.test.js.map +1 -1
- package/node/wrappers/models/position/position.test.ts +60 -13
- package/node/wrappers/models/position/position.ts +32 -6
- package/node/wrappers/models/utils/serialization.js +7 -2
- package/node/wrappers/models/utils/serialization.js.map +1 -1
- package/node/wrappers/models/utils/serialization.ts +10 -2
- package/node/wrappers/models/utils/uuid.js +0 -8
- package/node/wrappers/models/utils/uuid.js.map +1 -1
- package/node/wrappers/models/utils/uuid.test.js +17 -0
- package/node/wrappers/models/utils/uuid.test.js.map +1 -0
- package/node/wrappers/models/utils/uuid.test.ts +21 -0
- package/node/wrappers/models/utils/uuid.ts +0 -12
- package/package.json +1 -1
|
@@ -16,6 +16,9 @@ var serialization_1 = require("../utils/serialization");
|
|
|
16
16
|
var wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
|
|
17
17
|
var protoEnum_1 = require("../utils/protoEnum");
|
|
18
18
|
var field_1 = require("./field");
|
|
19
|
+
var strategy_pb_1 = require("../../../fintekkers/models/strategy/strategy_pb");
|
|
20
|
+
var price_pb_1 = require("../../../fintekkers/models/price/price_pb");
|
|
21
|
+
var tenor_pb_1 = require("../../../fintekkers/models/security/tenor_pb");
|
|
19
22
|
var Position = /** @class */ (function () {
|
|
20
23
|
function Position(positionProto) {
|
|
21
24
|
this.proto = positionProto;
|
|
@@ -49,7 +52,18 @@ var Position = /** @class */ (function () {
|
|
|
49
52
|
var proto = protoEnum_1.ProtoEnum.fromEnumName(fieldName, tmpField.getEnumValue());
|
|
50
53
|
return proto;
|
|
51
54
|
}
|
|
55
|
+
else if (tmpField.getEnumValue() == 0 && !tmpField.getStringValue() &&
|
|
56
|
+
!tmpField.getFieldValuePacked()) {
|
|
57
|
+
console.log("Warning: this position has an undefined enum value, which should be fixed in upstream data");
|
|
58
|
+
var fieldName = new field_1.Field(fieldToGet.getField()).getName();
|
|
59
|
+
var proto = protoEnum_1.ProtoEnum.fromEnumName(fieldName, 0);
|
|
60
|
+
return proto;
|
|
61
|
+
}
|
|
52
62
|
var unpackedValue = Position.unpackField(tmpField);
|
|
63
|
+
if (field_pb_1.FieldProto.PRICE == fieldToGet.getField()
|
|
64
|
+
|| field_pb_1.FieldProto.TENOR == fieldToGet.getField()) {
|
|
65
|
+
return unpackedValue; //instanceof PriceProto || TenorProto
|
|
66
|
+
}
|
|
53
67
|
if (field_pb_1.FieldProto.SECURITY == fieldToGet.getField()) {
|
|
54
68
|
return new security_1.default(unpackedValue);
|
|
55
69
|
}
|
|
@@ -102,6 +116,7 @@ var Position = /** @class */ (function () {
|
|
|
102
116
|
switch (fieldToUnpack.getField()) {
|
|
103
117
|
case field_pb_1.FieldProto.PORTFOLIO_ID:
|
|
104
118
|
case field_pb_1.FieldProto.SECURITY_ID:
|
|
119
|
+
case field_pb_1.FieldProto.PRICE_ID:
|
|
105
120
|
case field_pb_1.FieldProto.ID:
|
|
106
121
|
return uuid_pb_1.UUIDProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
107
122
|
case field_pb_1.FieldProto.AS_OF:
|
|
@@ -112,25 +127,36 @@ var Position = /** @class */ (function () {
|
|
|
112
127
|
case field_pb_1.FieldProto.SETTLEMENT_DATE:
|
|
113
128
|
case field_pb_1.FieldProto.TAX_LOT_OPEN_DATE:
|
|
114
129
|
case field_pb_1.FieldProto.TAX_LOT_CLOSE_DATE:
|
|
130
|
+
case field_pb_1.FieldProto.EFFECTIVE_DATE:
|
|
115
131
|
return local_date_pb_1.LocalDateProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
116
132
|
case field_pb_1.FieldProto.IDENTIFIER:
|
|
117
133
|
return identifier_pb_1.IdentifierProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
134
|
+
case field_pb_1.FieldProto.STRATEGY:
|
|
135
|
+
return strategy_pb_1.StrategyProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
136
|
+
case field_pb_1.FieldProto.TENOR:
|
|
137
|
+
return tenor_pb_1.TenorProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
138
|
+
case field_pb_1.FieldProto.PRICE:
|
|
139
|
+
return price_pb_1.PriceProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
118
140
|
case field_pb_1.FieldProto.TRANSACTION_TYPE:
|
|
119
141
|
case field_pb_1.FieldProto.POSITION_STATUS:
|
|
120
|
-
|
|
121
|
-
// const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[fieldToUnpack.field];
|
|
122
|
-
return null; //new ProtoEnum(descriptor, fieldToUnpack.enumValue);
|
|
142
|
+
return fieldToUnpack;
|
|
123
143
|
case field_pb_1.FieldProto.PORTFOLIO_NAME:
|
|
124
144
|
case field_pb_1.FieldProto.SECURITY_DESCRIPTION:
|
|
145
|
+
case field_pb_1.FieldProto.SECURITY_ISSUER_NAME:
|
|
146
|
+
case field_pb_1.FieldProto.ADJUSTED_TENOR:
|
|
125
147
|
case field_pb_1.FieldProto.PRODUCT_TYPE:
|
|
148
|
+
case field_pb_1.FieldProto.PRODUCT_CLASS:
|
|
126
149
|
case field_pb_1.FieldProto.ASSET_CLASS:
|
|
127
150
|
return wrappers_pb_1.StringValue.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
128
151
|
case field_pb_1.FieldProto.PORTFOLIO:
|
|
129
|
-
return fieldToUnpack.getFieldValuePacked();
|
|
130
152
|
case field_pb_1.FieldProto.SECURITY:
|
|
153
|
+
case field_pb_1.FieldProto.CASH_IMPACT_SECURITY:
|
|
154
|
+
return fieldToUnpack.getFieldValuePacked();
|
|
155
|
+
case field_pb_1.FieldProto.IS_CANCELLED:
|
|
156
|
+
console.log("Need to check that IS_CANCELLED IS SUPPORTED CORRECTLY");
|
|
131
157
|
return fieldToUnpack.getFieldValuePacked();
|
|
132
158
|
default:
|
|
133
|
-
throw new Error("Field not found. Could not unpack ".concat(field_pb_1.FieldProto[fieldToUnpack.getField()]));
|
|
159
|
+
throw new Error("Field not found. Could not unpack ".concat(field_pb_1.FieldProto[fieldToUnpack.getField()], ". Mapping missing"));
|
|
134
160
|
}
|
|
135
161
|
};
|
|
136
162
|
return Position;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACR,yEAA0E;AAC1E,+EAAgF;AAChF,yFAAsG;AACtG,oDAA+C;AAC/C,iDAA4C;AAC5C,mEAAoE;AACpE,yFAAyF;AACzF,+EAA+E;AAC/E,8FAA+F;AAC/F,6EAA8E;AAE9E,wDAAgE;AAChE,2EAA0E;AAC1E,gDAA+C;AAC/C,iCAAgC;
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,10 @@ var portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb"
|
|
|
48
48
|
var position_1 = require("./position");
|
|
49
49
|
var date_1 = require("../utils/date");
|
|
50
50
|
var position_status_pb_1 = require("../../../fintekkers/models/position/position_status_pb");
|
|
51
|
+
var transaction_type_pb_1 = require("../../../fintekkers/models/transaction/transaction_type_pb");
|
|
52
|
+
var price_pb_1 = require("../../../fintekkers/models/price/price_pb");
|
|
53
|
+
var tenor_pb_1 = require("../../../fintekkers/models/security/tenor_pb");
|
|
54
|
+
var tenor_type_pb_1 = require("../../../fintekkers/models/security/tenor_type_pb");
|
|
51
55
|
test('test the position wrapper', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
52
56
|
var isTrue;
|
|
53
57
|
return __generator(this, function (_a) {
|
|
@@ -62,6 +66,10 @@ test('test the position wrapper', function () { return __awaiter(void 0, void 0,
|
|
|
62
66
|
expect(isTrue).toBe(true);
|
|
63
67
|
return [4 /*yield*/, testJsonSerialization()];
|
|
64
68
|
case 3:
|
|
69
|
+
isTrue = _a.sent();
|
|
70
|
+
expect(isTrue).toBe(true);
|
|
71
|
+
return [4 /*yield*/, testDeSerializationWithUnknownProto()];
|
|
72
|
+
case 4:
|
|
65
73
|
isTrue = _a.sent();
|
|
66
74
|
expect(isTrue).toBe(true);
|
|
67
75
|
return [2 /*return*/];
|
|
@@ -95,18 +103,16 @@ function testEnumSerialization() {
|
|
|
95
103
|
}
|
|
96
104
|
function testJsonSerialization() {
|
|
97
105
|
return __awaiter(this, void 0, void 0, function () {
|
|
98
|
-
var
|
|
106
|
+
var tradeDate, productType, id, tradeDatePacked, idPacked, positionProto, position, position2, tradeDatePosition;
|
|
99
107
|
return __generator(this, function (_a) {
|
|
100
|
-
security = new security_pb_1.SecurityProto().setAssetClass("Test");
|
|
101
|
-
portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
|
|
102
108
|
tradeDate = date_1.LocalDate.today().toDate();
|
|
103
109
|
productType = "Test product type";
|
|
104
110
|
id = new uuid_1.UUID(uuid_1.UUID.random().toBytes());
|
|
105
111
|
tradeDatePacked = new any_pb_1.Any();
|
|
106
|
-
tradeDatePacked.setTypeUrl("
|
|
112
|
+
tradeDatePacked.setTypeUrl("DUMMYTYPE_DATE");
|
|
107
113
|
tradeDatePacked.setValue(date_1.LocalDate.from(tradeDate).toProto().serializeBinary());
|
|
108
114
|
idPacked = new any_pb_1.Any();
|
|
109
|
-
idPacked.setTypeUrl("
|
|
115
|
+
idPacked.setTypeUrl("DUMMYTYPE_ID");
|
|
110
116
|
idPacked.setValue(id.toUUIDProto().serializeBinary());
|
|
111
117
|
positionProto = new position_pb_1.PositionProto();
|
|
112
118
|
positionProto.setFieldsList([
|
|
@@ -114,6 +120,7 @@ function testJsonSerialization() {
|
|
|
114
120
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
|
|
115
121
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED),
|
|
116
122
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRODUCT_TYPE).setStringValue(productType),
|
|
123
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.SECURITY_DESCRIPTION).setStringValue("Dummy"),
|
|
117
124
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.ID).setFieldValuePacked(idPacked),
|
|
118
125
|
]);
|
|
119
126
|
position = new position_1.Position(positionProto);
|
|
@@ -123,15 +130,16 @@ function testJsonSerialization() {
|
|
|
123
130
|
expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
|
|
124
131
|
expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
|
|
125
132
|
expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
|
|
133
|
+
expect(position2.getFieldValue(field_pb_1.FieldProto.SECURITY_DESCRIPTION)).toBe("Dummy");
|
|
126
134
|
return [2 /*return*/, true];
|
|
127
135
|
});
|
|
128
136
|
});
|
|
129
137
|
}
|
|
130
138
|
function testSerialization() {
|
|
131
139
|
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
-
var _a, position, tradeDate, security, portfolio, productType, id, tradeDatePosition, securityPosition, portfolioPosition, positionID;
|
|
140
|
+
var _a, position, tradeDate, security, portfolio, productType, id, tradeDatePosition, securityPosition, portfolioPosition, positionID, price, tenor;
|
|
133
141
|
return __generator(this, function (_b) {
|
|
134
|
-
_a = getPosition(), position = _a.position, tradeDate = _a.tradeDate, security = _a.security, portfolio = _a.portfolio, productType = _a.productType, id = _a.id;
|
|
142
|
+
_a = getPosition(false), position = _a.position, tradeDate = _a.tradeDate, security = _a.security, portfolio = _a.portfolio, productType = _a.productType, id = _a.id;
|
|
135
143
|
tradeDatePosition = position.getFieldValue(field_pb_1.FieldProto.TRADE_DATE);
|
|
136
144
|
expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
|
|
137
145
|
expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
|
|
@@ -144,32 +152,70 @@ function testSerialization() {
|
|
|
144
152
|
positionID = position.getFieldValue(field_pb_1.FieldProto.ID);
|
|
145
153
|
expect(positionID.toString()).toBe(id.toString());
|
|
146
154
|
expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS).toString()).toBe("EXECUTED");
|
|
155
|
+
expect(position.getMeasureValue(measure_pb_1.MeasureProto.DIRECTED_QUANTITY)).toBe(1);
|
|
156
|
+
price = position.getFieldValue(field_pb_1.FieldProto.PRICE);
|
|
157
|
+
expect(price.getPrice().getArbitraryPrecisionValue()).toBe("1.0");
|
|
158
|
+
tenor = position.getFieldValue(field_pb_1.FieldProto.TENOR);
|
|
159
|
+
expect(tenor.getTermValue()).toBe("3M");
|
|
147
160
|
return [2 /*return*/, true];
|
|
148
161
|
});
|
|
149
162
|
});
|
|
150
163
|
}
|
|
151
|
-
function
|
|
164
|
+
function testDeSerializationWithUnknownProto() {
|
|
165
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
166
|
+
var position;
|
|
167
|
+
return __generator(this, function (_a) {
|
|
168
|
+
position = getPosition(true).position;
|
|
169
|
+
expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS).toString()).toBe("UNKNOWN");
|
|
170
|
+
return [2 /*return*/, true];
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
function getPosition(includeUnknownEnumValue) {
|
|
152
175
|
var security = new security_pb_1.SecurityProto().setAssetClass("Test");
|
|
153
176
|
var portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
|
|
154
177
|
var tradeDate = date_1.LocalDate.today().toDate();
|
|
155
178
|
var productType = "Test product type";
|
|
156
179
|
var id = new uuid_1.UUID(uuid_1.UUID.random().toBytes());
|
|
180
|
+
var price = new price_pb_1.PriceProto()
|
|
181
|
+
.setPrice(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.0"))
|
|
182
|
+
.setUuid(id.toUUIDProto())
|
|
183
|
+
.setSecurity(security);
|
|
184
|
+
var tenor = new tenor_pb_1.TenorProto()
|
|
185
|
+
.setTenorType(tenor_type_pb_1.TenorTypeProto.TERM)
|
|
186
|
+
.setTermValue("3M");
|
|
187
|
+
;
|
|
157
188
|
var measure = measure_pb_1.MeasureProto.DIRECTED_QUANTITY;
|
|
158
189
|
var measureValue = new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.0");
|
|
159
190
|
var tradeDatePacked = new any_pb_1.Any();
|
|
160
|
-
tradeDatePacked.setTypeUrl("
|
|
191
|
+
tradeDatePacked.setTypeUrl("DUMMYTYPE_DATE");
|
|
161
192
|
tradeDatePacked.setValue(date_1.LocalDate.from(tradeDate).toProto().serializeBinary());
|
|
162
193
|
var idPacked = new any_pb_1.Any();
|
|
163
|
-
idPacked.setTypeUrl("
|
|
194
|
+
idPacked.setTypeUrl("DUMMYTYPE_ID");
|
|
164
195
|
idPacked.setValue(id.toUUIDProto().serializeBinary());
|
|
196
|
+
var pricePacked = new any_pb_1.Any();
|
|
197
|
+
pricePacked.setTypeUrl("DUMMYTYPE_PRICE");
|
|
198
|
+
pricePacked.setValue(price.serializeBinary());
|
|
199
|
+
var tenorPacked = new any_pb_1.Any();
|
|
200
|
+
tenorPacked.setTypeUrl("DUMMYTYPE_TENOR");
|
|
201
|
+
tenorPacked.setValue(tenor.serializeBinary());
|
|
202
|
+
var positionStatus = includeUnknownEnumValue ?
|
|
203
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.UNKNOWN) :
|
|
204
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED);
|
|
165
205
|
var positionProto = new position_pb_1.PositionProto();
|
|
166
206
|
positionProto.setFieldsList([
|
|
167
207
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.SECURITY).setFieldValuePacked(security),
|
|
168
208
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PORTFOLIO).setFieldValuePacked(portfolio),
|
|
169
209
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
|
|
170
|
-
|
|
210
|
+
positionStatus,
|
|
211
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRANSACTION_TYPE).setEnumValue(transaction_type_pb_1.TransactionTypeProto.BUY),
|
|
212
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TENOR).setFieldValuePacked(tenorPacked),
|
|
171
213
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRODUCT_TYPE).setStringValue(productType),
|
|
172
214
|
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.ID).setFieldValuePacked(idPacked),
|
|
215
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRICE).setFieldValuePacked(pricePacked)
|
|
216
|
+
]);
|
|
217
|
+
positionProto.setMeasuresList([
|
|
218
|
+
new position_util_pb_1.MeasureMapEntry().setMeasure(measure).setMeasureDecimalValue(measureValue)
|
|
173
219
|
]);
|
|
174
220
|
var position = new position_1.Position(positionProto);
|
|
175
221
|
return { position: position, tradeDate: tradeDate, security: security, portfolio: portfolio, productType: productType, id: id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAqC;AACrC,iEAA6D;
|
|
1
|
+
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { UUID } from '../utils/uuid';
|
|
2
2
|
import { Any } from 'google-protobuf/google/protobuf/any_pb';
|
|
3
3
|
|
|
4
|
-
import assert = require('assert');
|
|
5
|
-
|
|
6
4
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
7
5
|
import { PositionProto } from '../../../fintekkers/models/position/position_pb';
|
|
8
6
|
import { FieldMapEntry, MeasureMapEntry } from '../../../fintekkers/models/position/position_util_pb';
|
|
@@ -14,6 +12,10 @@ import { Position } from './position';
|
|
|
14
12
|
import { LocalDate } from '../utils/date';
|
|
15
13
|
import { PositionStatusProto } from '../../../fintekkers/models/position/position_status_pb';
|
|
16
14
|
import { ProtoEnum } from '../utils/protoEnum';
|
|
15
|
+
import { TransactionTypeProto } from '../../../fintekkers/models/transaction/transaction_type_pb';
|
|
16
|
+
import { PriceProto } from '../../../fintekkers/models/price/price_pb';
|
|
17
|
+
import { TenorProto } from '../../../fintekkers/models/security/tenor_pb';
|
|
18
|
+
import { TenorTypeProto } from '../../../fintekkers/models/security/tenor_type_pb';
|
|
17
19
|
|
|
18
20
|
test('test the position wrapper', async () => {
|
|
19
21
|
let isTrue = await testEnumSerialization();
|
|
@@ -25,6 +27,8 @@ test('test the position wrapper', async () => {
|
|
|
25
27
|
isTrue = await testJsonSerialization();
|
|
26
28
|
expect(isTrue).toBe(true);
|
|
27
29
|
|
|
30
|
+
isTrue = await testDeSerializationWithUnknownProto();
|
|
31
|
+
expect(isTrue).toBe(true);
|
|
28
32
|
});
|
|
29
33
|
|
|
30
34
|
async function testEnumSerialization(): Promise<boolean> {
|
|
@@ -53,20 +57,17 @@ async function testEnumSerialization(): Promise<boolean> {
|
|
|
53
57
|
return true;
|
|
54
58
|
}
|
|
55
59
|
|
|
56
|
-
|
|
57
60
|
async function testJsonSerialization(): Promise<boolean> {
|
|
58
|
-
let security = new SecurityProto().setAssetClass("Test");
|
|
59
|
-
let portfolio = new PortfolioProto().setPortfolioName("Test portfolio");
|
|
60
61
|
let tradeDate = LocalDate.today().toDate();
|
|
61
62
|
let productType = "Test product type";
|
|
62
63
|
let id = new UUID(UUID.random().toBytes());
|
|
63
64
|
|
|
64
65
|
const tradeDatePacked = new Any();
|
|
65
|
-
tradeDatePacked.setTypeUrl(`
|
|
66
|
+
tradeDatePacked.setTypeUrl(`DUMMYTYPE_DATE`);
|
|
66
67
|
tradeDatePacked.setValue(LocalDate.from(tradeDate).toProto().serializeBinary());
|
|
67
68
|
|
|
68
69
|
const idPacked = new Any();
|
|
69
|
-
idPacked.setTypeUrl(`
|
|
70
|
+
idPacked.setTypeUrl(`DUMMYTYPE_ID`);
|
|
70
71
|
idPacked.setValue(id.toUUIDProto().serializeBinary());
|
|
71
72
|
|
|
72
73
|
let positionProto = new PositionProto();
|
|
@@ -75,25 +76,27 @@ async function testJsonSerialization(): Promise<boolean> {
|
|
|
75
76
|
new FieldMapEntry().setField(FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
|
|
76
77
|
new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.EXECUTED),
|
|
77
78
|
new FieldMapEntry().setField(FieldProto.PRODUCT_TYPE).setStringValue(productType),
|
|
79
|
+
new FieldMapEntry().setField(FieldProto.SECURITY_DESCRIPTION).setStringValue("Dummy"),
|
|
78
80
|
new FieldMapEntry().setField(FieldProto.ID).setFieldValuePacked(idPacked),
|
|
79
81
|
]);
|
|
80
82
|
let position = new Position(positionProto);
|
|
81
83
|
|
|
82
84
|
let position2 = Position.fromJSON(position.toJSON());
|
|
83
85
|
|
|
84
|
-
|
|
85
86
|
let tradeDatePosition = position2.getFieldValue(FieldProto.TRADE_DATE);
|
|
86
87
|
expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
|
|
87
88
|
expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
|
|
88
89
|
expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
|
|
89
90
|
expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
|
|
90
91
|
|
|
92
|
+
expect(position2.getFieldValue(FieldProto.SECURITY_DESCRIPTION)).toBe("Dummy");
|
|
93
|
+
|
|
91
94
|
return true;
|
|
92
95
|
}
|
|
93
96
|
|
|
94
97
|
|
|
95
98
|
async function testSerialization(): Promise<boolean> {
|
|
96
|
-
let { position, tradeDate, security, portfolio, productType, id } = getPosition();
|
|
99
|
+
let { position, tradeDate, security, portfolio, productType, id } = getPosition(false);
|
|
97
100
|
|
|
98
101
|
let tradeDatePosition = position.getFieldValue(FieldProto.TRADE_DATE);
|
|
99
102
|
expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
|
|
@@ -113,36 +116,80 @@ async function testSerialization(): Promise<boolean> {
|
|
|
113
116
|
|
|
114
117
|
expect(position.getFieldValue(FieldProto.POSITION_STATUS).toString()).toBe("EXECUTED");
|
|
115
118
|
|
|
119
|
+
expect(position.getMeasureValue(MeasureProto.DIRECTED_QUANTITY)).toBe(1);
|
|
120
|
+
|
|
121
|
+
let price: PriceProto = position.getFieldValue(FieldProto.PRICE);
|
|
122
|
+
expect(price.getPrice().getArbitraryPrecisionValue()).toBe("1.0");
|
|
123
|
+
|
|
124
|
+
let tenor: TenorProto = position.getFieldValue(FieldProto.TENOR);
|
|
125
|
+
expect(tenor.getTermValue()).toBe("3M");
|
|
126
|
+
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async function testDeSerializationWithUnknownProto(): Promise<boolean> {
|
|
131
|
+
let { position } = getPosition(true);
|
|
132
|
+
|
|
133
|
+
expect(position.getFieldValue(FieldProto.POSITION_STATUS).toString()).toBe("UNKNOWN");
|
|
116
134
|
return true;
|
|
117
135
|
}
|
|
118
136
|
|
|
119
|
-
function getPosition() {
|
|
137
|
+
function getPosition(includeUnknownEnumValue: boolean) {
|
|
120
138
|
let security = new SecurityProto().setAssetClass("Test");
|
|
121
139
|
let portfolio = new PortfolioProto().setPortfolioName("Test portfolio");
|
|
122
140
|
let tradeDate = LocalDate.today().toDate();
|
|
123
141
|
let productType = "Test product type";
|
|
124
142
|
let id = new UUID(UUID.random().toBytes());
|
|
125
143
|
|
|
144
|
+
let price = new PriceProto()
|
|
145
|
+
.setPrice(new DecimalValueProto().setArbitraryPrecisionValue("1.0"))
|
|
146
|
+
.setUuid(id.toUUIDProto())
|
|
147
|
+
.setSecurity(security);
|
|
148
|
+
|
|
149
|
+
let tenor = new TenorProto()
|
|
150
|
+
.setTenorType(TenorTypeProto.TERM)
|
|
151
|
+
.setTermValue("3M");;
|
|
152
|
+
|
|
126
153
|
let measure = MeasureProto.DIRECTED_QUANTITY;
|
|
127
154
|
let measureValue = new DecimalValueProto().setArbitraryPrecisionValue("1.0");
|
|
128
155
|
|
|
129
156
|
const tradeDatePacked = new Any();
|
|
130
|
-
tradeDatePacked.setTypeUrl(`
|
|
157
|
+
tradeDatePacked.setTypeUrl(`DUMMYTYPE_DATE`);
|
|
131
158
|
tradeDatePacked.setValue(LocalDate.from(tradeDate).toProto().serializeBinary());
|
|
132
159
|
|
|
133
160
|
const idPacked = new Any();
|
|
134
|
-
idPacked.setTypeUrl(`
|
|
161
|
+
idPacked.setTypeUrl(`DUMMYTYPE_ID`);
|
|
135
162
|
idPacked.setValue(id.toUUIDProto().serializeBinary());
|
|
136
163
|
|
|
164
|
+
const pricePacked = new Any();
|
|
165
|
+
pricePacked.setTypeUrl(`DUMMYTYPE_PRICE`);
|
|
166
|
+
pricePacked.setValue(price.serializeBinary());
|
|
167
|
+
|
|
168
|
+
const tenorPacked = new Any();
|
|
169
|
+
tenorPacked.setTypeUrl(`DUMMYTYPE_TENOR`);
|
|
170
|
+
tenorPacked.setValue(tenor.serializeBinary());
|
|
171
|
+
|
|
172
|
+
let positionStatus = includeUnknownEnumValue ?
|
|
173
|
+
new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.UNKNOWN) :
|
|
174
|
+
new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.EXECUTED);
|
|
175
|
+
|
|
137
176
|
let positionProto = new PositionProto();
|
|
138
177
|
positionProto.setFieldsList([
|
|
139
178
|
new FieldMapEntry().setField(FieldProto.SECURITY).setFieldValuePacked(security),
|
|
140
179
|
new FieldMapEntry().setField(FieldProto.PORTFOLIO).setFieldValuePacked(portfolio),
|
|
141
180
|
new FieldMapEntry().setField(FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
|
|
142
|
-
|
|
181
|
+
positionStatus,
|
|
182
|
+
new FieldMapEntry().setField(FieldProto.TRANSACTION_TYPE).setEnumValue(TransactionTypeProto.BUY),
|
|
183
|
+
new FieldMapEntry().setField(FieldProto.TENOR).setFieldValuePacked(tenorPacked),
|
|
143
184
|
new FieldMapEntry().setField(FieldProto.PRODUCT_TYPE).setStringValue(productType),
|
|
144
185
|
new FieldMapEntry().setField(FieldProto.ID).setFieldValuePacked(idPacked),
|
|
186
|
+
new FieldMapEntry().setField(FieldProto.PRICE).setFieldValuePacked(pricePacked)
|
|
187
|
+
]);
|
|
188
|
+
|
|
189
|
+
positionProto.setMeasuresList([
|
|
190
|
+
new MeasureMapEntry().setMeasure(measure).setMeasureDecimalValue(measureValue)
|
|
145
191
|
]);
|
|
192
|
+
|
|
146
193
|
let position = new Position(positionProto);
|
|
147
194
|
return { position, tradeDate, security, portfolio, productType, id };
|
|
148
195
|
}
|
|
@@ -16,6 +16,9 @@ import { ProtoEnum } from "../utils/protoEnum";
|
|
|
16
16
|
import { Field } from "./field";
|
|
17
17
|
import { UUID } from "../utils/uuid";
|
|
18
18
|
import { ZonedDateTime } from "../utils/datetime";
|
|
19
|
+
import { StrategyProto } from "../../../fintekkers/models/strategy/strategy_pb";
|
|
20
|
+
import { PriceProto } from "../../../fintekkers/models/price/price_pb";
|
|
21
|
+
import { TenorProto } from "../../../fintekkers/models/security/tenor_pb";
|
|
19
22
|
|
|
20
23
|
export class Position {
|
|
21
24
|
proto: PositionProto;
|
|
@@ -44,7 +47,7 @@ export class Position {
|
|
|
44
47
|
return this.getField(new FieldMapEntry().setField(field));
|
|
45
48
|
}
|
|
46
49
|
|
|
47
|
-
public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number {
|
|
50
|
+
public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number | PriceProto {
|
|
48
51
|
for (const tmpField of this.proto.getFieldsList()) {
|
|
49
52
|
if (tmpField.getField() === fieldToGet.getField()) {
|
|
50
53
|
|
|
@@ -56,10 +59,21 @@ export class Position {
|
|
|
56
59
|
let fieldName: string = new Field(fieldToGet.getField()).getName();
|
|
57
60
|
let proto: ProtoEnum = ProtoEnum.fromEnumName(fieldName, tmpField.getEnumValue());
|
|
58
61
|
return proto;
|
|
62
|
+
} else if (tmpField.getEnumValue() == 0 && !tmpField.getStringValue() &&
|
|
63
|
+
!tmpField.getFieldValuePacked()) {
|
|
64
|
+
console.log("Warning: this position has an undefined enum value, which should be fixed in upstream data");
|
|
65
|
+
let fieldName: string = new Field(fieldToGet.getField()).getName();
|
|
66
|
+
let proto: ProtoEnum = ProtoEnum.fromEnumName(fieldName, 0);
|
|
67
|
+
return proto;
|
|
59
68
|
}
|
|
60
69
|
|
|
61
70
|
const unpackedValue = Position.unpackField(tmpField);
|
|
62
71
|
|
|
72
|
+
if (FieldProto.PRICE == fieldToGet.getField()
|
|
73
|
+
|| FieldProto.TENOR == fieldToGet.getField()) {
|
|
74
|
+
return unpackedValue; //instanceof PriceProto || TenorProto
|
|
75
|
+
}
|
|
76
|
+
|
|
63
77
|
if (FieldProto.SECURITY == fieldToGet.getField()) {
|
|
64
78
|
return new Security(unpackedValue);
|
|
65
79
|
}
|
|
@@ -123,6 +137,7 @@ export class Position {
|
|
|
123
137
|
switch (fieldToUnpack.getField()) {
|
|
124
138
|
case FieldProto.PORTFOLIO_ID:
|
|
125
139
|
case FieldProto.SECURITY_ID:
|
|
140
|
+
case FieldProto.PRICE_ID:
|
|
126
141
|
case FieldProto.ID:
|
|
127
142
|
return UUIDProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
128
143
|
case FieldProto.AS_OF:
|
|
@@ -133,25 +148,36 @@ export class Position {
|
|
|
133
148
|
case FieldProto.SETTLEMENT_DATE:
|
|
134
149
|
case FieldProto.TAX_LOT_OPEN_DATE:
|
|
135
150
|
case FieldProto.TAX_LOT_CLOSE_DATE:
|
|
151
|
+
case FieldProto.EFFECTIVE_DATE:
|
|
136
152
|
return LocalDateProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
137
153
|
case FieldProto.IDENTIFIER:
|
|
138
154
|
return IdentifierProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
155
|
+
case FieldProto.STRATEGY:
|
|
156
|
+
return StrategyProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
157
|
+
case FieldProto.TENOR:
|
|
158
|
+
return TenorProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
159
|
+
case FieldProto.PRICE:
|
|
160
|
+
return PriceProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
139
161
|
case FieldProto.TRANSACTION_TYPE:
|
|
140
162
|
case FieldProto.POSITION_STATUS:
|
|
141
|
-
|
|
142
|
-
// const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[fieldToUnpack.field];
|
|
143
|
-
return null; //new ProtoEnum(descriptor, fieldToUnpack.enumValue);
|
|
163
|
+
return fieldToUnpack;
|
|
144
164
|
case FieldProto.PORTFOLIO_NAME:
|
|
145
165
|
case FieldProto.SECURITY_DESCRIPTION:
|
|
166
|
+
case FieldProto.SECURITY_ISSUER_NAME:
|
|
167
|
+
case FieldProto.ADJUSTED_TENOR:
|
|
146
168
|
case FieldProto.PRODUCT_TYPE:
|
|
169
|
+
case FieldProto.PRODUCT_CLASS:
|
|
147
170
|
case FieldProto.ASSET_CLASS:
|
|
148
171
|
return StringValue.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
149
172
|
case FieldProto.PORTFOLIO:
|
|
150
|
-
return fieldToUnpack.getFieldValuePacked();
|
|
151
173
|
case FieldProto.SECURITY:
|
|
174
|
+
case FieldProto.CASH_IMPACT_SECURITY:
|
|
175
|
+
return fieldToUnpack.getFieldValuePacked();
|
|
176
|
+
case FieldProto.IS_CANCELLED:
|
|
177
|
+
console.log("Need to check that IS_CANCELLED IS SUPPORTED CORRECTLY");
|
|
152
178
|
return fieldToUnpack.getFieldValuePacked();
|
|
153
179
|
default:
|
|
154
|
-
throw new Error(`Field not found. Could not unpack ${FieldProto[fieldToUnpack.getField()]}`);
|
|
180
|
+
throw new Error(`Field not found. Could not unpack ${FieldProto[fieldToUnpack.getField()]}. Mapping missing`);
|
|
155
181
|
}
|
|
156
182
|
}
|
|
157
183
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProtoSerializationUtil = void 0;
|
|
4
|
+
var identifier_pb_1 = require("../../../fintekkers/models/security/identifier/identifier_pb");
|
|
4
5
|
var decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
|
|
5
6
|
var local_date_pb_1 = require("../../../fintekkers/models/util/local_date_pb");
|
|
6
7
|
var local_timestamp_pb_1 = require("../../../fintekkers/models/util/local_timestamp_pb");
|
|
7
8
|
var uuid_pb_1 = require("../../../fintekkers/models/util/uuid_pb");
|
|
8
9
|
var datetime_1 = require("./datetime");
|
|
10
|
+
var protoEnum_1 = require("./protoEnum");
|
|
9
11
|
var uuid_1 = require("./uuid");
|
|
10
12
|
var wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
|
|
11
13
|
var ProtoSerializationUtil = /** @class */ (function () {
|
|
@@ -44,8 +46,8 @@ var ProtoSerializationUtil = /** @class */ (function () {
|
|
|
44
46
|
if (obj instanceof local_timestamp_pb_1.LocalTimestampProto) {
|
|
45
47
|
return new datetime_1.ZonedDateTime(obj);
|
|
46
48
|
}
|
|
47
|
-
if (obj
|
|
48
|
-
return
|
|
49
|
+
if (obj instanceof identifier_pb_1.IdentifierProto) {
|
|
50
|
+
return obj.getIdentifierType() + ":" + obj.getIdentifierValue();
|
|
49
51
|
}
|
|
50
52
|
if (obj instanceof decimal_value_pb_1.DecimalValueProto) {
|
|
51
53
|
return parseFloat(obj.getArbitraryPrecisionValue());
|
|
@@ -53,6 +55,9 @@ var ProtoSerializationUtil = /** @class */ (function () {
|
|
|
53
55
|
if (obj instanceof wrappers_pb_1.StringValue) {
|
|
54
56
|
return obj.toString();
|
|
55
57
|
}
|
|
58
|
+
if (obj !== null && 'enum_name' in obj && typeof obj.enum_name !== 'undefined' && obj.enum_name !== null) {
|
|
59
|
+
return new protoEnum_1.ProtoEnum(obj.descriptor, obj.enum_value);
|
|
60
|
+
}
|
|
56
61
|
throw new Error("Could not deserialize object of type ".concat(typeof obj, ". Value: ").concat(obj));
|
|
57
62
|
};
|
|
58
63
|
return ProtoSerializationUtil;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;AACA,8FAA+F;AAC/F,qFAAqF;AACrF,+EAA+E;AAC/E,yFAAyF;AACzF,mEAAoE;AAEpE,uCAA2C;AAC3C,yCAAwC;AACxC,+BAA8B;AAC9B,2EAA0E;AAG1E;IAAA;IAmDA,CAAC;IAlDQ,gCAAS,GAAhB,UAAiB,GAAQ;QACvB,IAAI,GAAG,YAAY,WAAI,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,8BAAc,EAAE;iBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;iBAC1B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,wBAAa,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;YAC1B,OAAO,yBAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6CAAsC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACrF,CAAC;IAEM,kCAAW,GAAlB,UAAmB,GAAQ;QACzB,IAAI,GAAG,YAAY,mBAAS,EAAE,CAAC;YAC7B,OAAO,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,YAAY,8BAAc,EAAE,CAAC;YAClC,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,YAAY,wCAAmB,EAAE,CAAC;YACvC,OAAO,IAAI,wBAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,GAAG,YAAY,+BAAe,EAAE,CAAC;YACnC,OAAO,GAAG,CAAC,iBAAiB,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,GAAG,YAAY,oCAAiB,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACzG,OAAO,IAAI,qBAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+CAAwC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AAnDD,IAmDC;AAnDY,wDAAsB"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import { PriceProto } from "../../../fintekkers/models/price/price_pb";
|
|
2
|
+
import { IdentifierProto } from "../../../fintekkers/models/security/identifier/identifier_pb";
|
|
1
3
|
import { DecimalValueProto } from "../../../fintekkers/models/util/decimal_value_pb";
|
|
2
4
|
import { LocalDateProto } from "../../../fintekkers/models/util/local_date_pb";
|
|
3
5
|
import { LocalTimestampProto } from "../../../fintekkers/models/util/local_timestamp_pb";
|
|
4
6
|
import { UUIDProto } from "../../../fintekkers/models/util/uuid_pb";
|
|
7
|
+
import { TransactionType } from "../transaction/transaction_type";
|
|
5
8
|
import { ZonedDateTime } from "./datetime";
|
|
9
|
+
import { ProtoEnum } from "./protoEnum";
|
|
6
10
|
import { UUID } from "./uuid";
|
|
7
11
|
import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';
|
|
12
|
+
import { Any } from 'google-protobuf/google/protobuf/any_pb';
|
|
8
13
|
|
|
9
14
|
export class ProtoSerializationUtil {
|
|
10
15
|
static serialize(obj: any) { //}: UUIDProto | LocalDateProto | LocalTimestampProto | DecimalValueProto | StringValue {
|
|
@@ -42,8 +47,8 @@ export class ProtoSerializationUtil {
|
|
|
42
47
|
if (obj instanceof LocalTimestampProto) {
|
|
43
48
|
return new ZonedDateTime(obj);
|
|
44
49
|
}
|
|
45
|
-
if (obj
|
|
46
|
-
return
|
|
50
|
+
if (obj instanceof IdentifierProto) {
|
|
51
|
+
return obj.getIdentifierType() + ":" + obj.getIdentifierValue();
|
|
47
52
|
}
|
|
48
53
|
if (obj instanceof DecimalValueProto) {
|
|
49
54
|
return parseFloat(obj.getArbitraryPrecisionValue());
|
|
@@ -51,6 +56,9 @@ export class ProtoSerializationUtil {
|
|
|
51
56
|
if (obj instanceof StringValue) {
|
|
52
57
|
return obj.toString();
|
|
53
58
|
}
|
|
59
|
+
if (obj !== null && 'enum_name' in obj && typeof obj.enum_name !== 'undefined' && obj.enum_name !== null) {
|
|
60
|
+
return new ProtoEnum(obj.descriptor, obj.enum_value);
|
|
61
|
+
}
|
|
54
62
|
|
|
55
63
|
throw new Error(`Could not deserialize object of type ${typeof obj}. Value: ${obj}`);
|
|
56
64
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UUID = void 0;
|
|
4
|
-
var console_1 = require("console");
|
|
5
4
|
var uuid_pb_1 = require("../../../fintekkers/models/util/uuid_pb");
|
|
6
5
|
var uuid = require("uuid");
|
|
7
6
|
var UUID = /** @class */ (function () {
|
|
@@ -43,11 +42,4 @@ var UUID = /** @class */ (function () {
|
|
|
43
42
|
return UUID;
|
|
44
43
|
}());
|
|
45
44
|
exports.UUID = UUID;
|
|
46
|
-
var test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
|
|
47
|
-
var test_uuid = new UUID(test_uuid_bytes);
|
|
48
|
-
(0, console_1.assert)(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
|
|
49
|
-
var test_uuid_bytes_copy = UUID.fromString(test_uuid.toString());
|
|
50
|
-
(0, console_1.assert)(test_uuid_bytes.length === test_uuid_bytes_copy.length &&
|
|
51
|
-
test_uuid_bytes.every(function (value, index) { return value === test_uuid_bytes_copy[index]; }));
|
|
52
|
-
(0, console_1.assert)(UUID.random().toString().length == 36);
|
|
53
45
|
//# sourceMappingURL=uuid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["uuid.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["uuid.ts"],"names":[],"mappings":";;;AACA,mEAAoE;AACpE,2BAA6B;AAE7B;IAGE,cAAY,KAAe;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,uBAAQ,GAAR;QACE,IAAM,SAAS,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,sBAAO,GAAP;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,0BAAW,GAAX;QACE,IAAM,QAAQ,GAAG,IAAI,mBAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qBAAM,GAAN,UAAO,KAAW;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAEM,WAAM,GAAb;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,gBAAW,GAAlB,UAAmB,UAAsB;QACvC,IAAM,KAAK,GAAa,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEM,eAAU,GAAjB,UAAkB,UAAkB;QAClC,gEAAgE;QAChE,IAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE/C,oEAAoE;QACpE,IAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE7C,sDAAsD;QACtD,IAAM,KAAK,GAAG,SAAU,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAnB,CAAmB,CAAC,CAAC;QAE7D,OAAO,KAAK,CAAC;IACf,CAAC;IACH,WAAC;AAAD,CAAC,AAhDD,IAgDC;AAEQ,oBAAI"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var assert = require("assert");
|
|
4
|
+
var uuid_1 = require("./uuid");
|
|
5
|
+
test('test packing/unpacking string', function () {
|
|
6
|
+
testString();
|
|
7
|
+
});
|
|
8
|
+
function testString() {
|
|
9
|
+
var test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
|
|
10
|
+
var test_uuid = new uuid_1.UUID(test_uuid_bytes);
|
|
11
|
+
assert(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
|
|
12
|
+
var test_uuid_bytes_copy = uuid_1.UUID.fromString(test_uuid.toString());
|
|
13
|
+
assert(test_uuid_bytes.length === test_uuid_bytes_copy.length &&
|
|
14
|
+
test_uuid_bytes.every(function (value, index) { return value === test_uuid_bytes_copy[index]; }));
|
|
15
|
+
assert(uuid_1.UUID.random().toString().length == 36);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=uuid.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.test.js","sourceRoot":"","sources":["uuid.test.ts"],"names":[],"mappings":";;AAAA,+BAAkC;AAClC,+BAA8B;AAE9B,IAAI,CAAC,+BAA+B,EAAE;IACpC,UAAU,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,SAAS,UAAU;IACjB,IAAM,eAAe,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrG,IAAM,SAAS,GAAG,IAAI,WAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,sCAAsC,CAAC,CAAC;IACvE,IAAM,oBAAoB,GAAG,WAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE,MAAM,CACJ,eAAe,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM;QACtD,eAAe,CAAC,KAAK,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,KAAK,KAAK,oBAAoB,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,CAC/E,CAAC;IAEF,MAAM,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import assert = require('assert');
|
|
2
|
+
import { UUID } from './uuid';
|
|
3
|
+
|
|
4
|
+
test('test packing/unpacking string', () => {
|
|
5
|
+
testString();
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
function testString() {
|
|
9
|
+
const test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
|
|
10
|
+
const test_uuid = new UUID(test_uuid_bytes);
|
|
11
|
+
assert(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
|
|
12
|
+
const test_uuid_bytes_copy = UUID.fromString(test_uuid.toString());
|
|
13
|
+
|
|
14
|
+
assert(
|
|
15
|
+
test_uuid_bytes.length === test_uuid_bytes_copy.length &&
|
|
16
|
+
test_uuid_bytes.every((value, index) => value === test_uuid_bytes_copy[index])
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
assert(UUID.random().toString().length == 36);
|
|
20
|
+
}
|
|
21
|
+
|
|
@@ -52,16 +52,4 @@ class UUID {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
const test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
|
|
56
|
-
const test_uuid = new UUID(test_uuid_bytes);
|
|
57
|
-
assert(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
|
|
58
|
-
const test_uuid_bytes_copy = UUID.fromString(test_uuid.toString());
|
|
59
|
-
|
|
60
|
-
assert(
|
|
61
|
-
test_uuid_bytes.length === test_uuid_bytes_copy.length &&
|
|
62
|
-
test_uuid_bytes.every((value, index) => value === test_uuid_bytes_copy[index])
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
assert(UUID.random().toString().length == 36);
|
|
66
|
-
|
|
67
55
|
export { UUID };
|