@excent/excent-serv-positions 1.0.4 → 1.0.6

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.
@@ -65,48 +65,18 @@ export class ExcentServPositionsService {
65
65
  return this.httpClient.get(endpoint.closePosition, {
66
66
  params,
67
67
  });
68
- // .pipe(
69
- // map((res) => {
70
- // return res.map((item) => {
71
- // let _item: IClosePosition = {
72
- // ...item,
73
- // symbol: new Symbol(),
74
- // idSymbol: item.symbol,
75
- // commissions: [],
76
- // };
77
- // return _item;
78
- // });
79
- // })
80
- // );
81
- }
82
- getOrders(tradingAccountUuid, orderStatus) {
68
+ }
69
+ getOrders(tradingAccountUuid, orderStatus, data) {
83
70
  let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
84
71
  params = params.append('orderStatus', orderStatus);
85
- return this.httpClient
86
- .get(endpoint.orders, { params })
87
- .pipe(map((_res) => {
88
- let resArray = [];
89
- _res.forEach((item) => {
90
- let res = {
91
- uuid: item.uuid ?? '',
92
- id: item.id ?? '',
93
- tradingAccount: item.tradingAccount ?? '',
94
- symbol: new Symbol(),
95
- idSymbol: item.symbol,
96
- orderType: item.orderType ?? 0,
97
- orderStatus: item.orderStatus ?? 0,
98
- volume: item.volume ?? 0,
99
- buy: item.buy ?? false,
100
- stopLoss: item.stopLoss,
101
- takeProfit: item.takeProfit,
102
- activationPrice: item.activationPrice ?? 0,
103
- cancellationDate: item.cancellationDate ?? new Date(),
104
- creationDate: item.creationDate ?? new Date(),
105
- };
106
- resArray.push(res);
107
- });
108
- return resArray;
109
- }));
72
+ if (data) {
73
+ for (let entry of data.entries()) {
74
+ params = params.append(entry[0], entry[1]);
75
+ }
76
+ }
77
+ return this.httpClient.get(endpoint.orders, {
78
+ params,
79
+ });
110
80
  }
111
81
  create(value) {
112
82
  return this.httpClient.post(endpoint.create, value).pipe(tap(() => {
@@ -114,16 +84,7 @@ export class ExcentServPositionsService {
114
84
  }));
115
85
  }
116
86
  createOrder(value) {
117
- return this.httpClient
118
- .post(endpoint.createOrder, value)
119
- .pipe(map((res) => {
120
- let order = {
121
- ...res,
122
- idSymbol: res.symbol,
123
- symbol: new Symbol(),
124
- };
125
- return order;
126
- }));
87
+ return this.httpClient.post(endpoint.createOrder, value);
127
88
  }
128
89
  closePositions(volume, uuid) {
129
90
  return this.httpClient
@@ -178,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
178
139
  providedIn: 'root',
179
140
  }]
180
141
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZW50LXNlcnYtcG9zaXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leGNlbnQtc2Vydi1wb3NpdGlvbnMvc3JjL2xpYi9leGNlbnQtc2Vydi1wb3NpdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBSUwsTUFBTSxHQU9QLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU1yQyxNQUFNLE9BQU8sMEJBQTBCO0lBeUJyQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBeEJsQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQW1CLElBQUksQ0FBQyxDQUFDO1FBQy9ELGNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLG1CQUFjLEdBQ25CLElBQUksZUFBZSxDQUFrQztZQUNuRCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsRUFBRTtnQkFDUixFQUFFLEVBQUUsRUFBRTtnQkFDTixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLElBQUksTUFBTSxFQUFFO2dCQUNwQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxTQUFTLEVBQUUsQ0FBQztnQkFDWixXQUFXLEVBQUUsQ0FBQztn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LEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVDO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixRQUFRLENBQUMsc0JBQXNCLEVBQy9CO1lBQ0UsTUFBTSxFQUFFLE1BQU07U0FDZixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDeEIsOEJBQThCLGNBQWMsdUJBQXVCLENBQ3BFLENBQUM7SUFDSixDQUFDOzt1SEFqT1UsMEJBQTBCOzJIQUExQiwwQkFBMEIsY0FGekIsTUFBTTsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIElQb3NpdGlvbixcbiAgSVJlc3BvbnNlT3JkZXIsXG4gIElDbG9zZVBvc2l0aW9uLFxuICBTeW1ib2wsXG4gIElPcmRlcixcbiAgSVJlc3BvbnNlQ2xvc2UsXG4gIElUcmFkZVN1bW1hcnksXG4gIElQb3NpdGlvblN1bW1hcnlEZWFsaW5nLFxuICBJUGF5bG9hZENyZWF0ZU9yZGVyLFxuICBJUGF5bG9hZENyZWF0ZVBvc2l0aW9uLFxufSBmcm9tICdAZXhjZW50L2V4Y2VudC1tb2RlbHMnO1xuaW1wb3J0IHsgZW5kcG9pbnQgfSBmcm9tICcuL2V4Y2VudC1zZXJ2LXBvc2l0aW9ucy5lbnBvaW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG50eXBlIElQb3NpdGlvblJlc3BvbnNlID0gUGFydGlhbDxJUG9zaXRpb24+ICYgeyBjdXJyZW50UHJpY2U6IG51bWJlciB9O1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEV4Y2VudFNlcnZQb3NpdGlvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfcmVmcmVzaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHBvc2l0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJUG9zaXRpb24gfCBudWxsPihudWxsKTtcbiAgcG9zaXRpb24kID0gdGhpcy5wb3NpdGlvbi5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIG9wZXJhdGlvbk9yZGVyOiBCZWhhdmlvclN1YmplY3Q8eyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBJT3JkZXIgfT4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8eyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBJT3JkZXIgfT4oe1xuICAgICAgdHlwZTogJycsXG4gICAgICB2YWx1ZToge1xuICAgICAgICB1dWlkOiAnJyxcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICB0cmFkaW5nQWNjb3VudDogJycsXG4gICAgICAgIHN5bWJvbDogbmV3IFN5bWJvbCgpLFxuICAgICAgICBpZFN5bWJvbDogMCxcbiAgICAgICAgb3JkZXJUeXBlOiAwLFxuICAgICAgICBvcmRlclN0YXR1czogMCxcbiAgICAgICAgdm9sdW1lOiAwLFxuICAgICAgICBidXk6IGZhbHNlLFxuICAgICAgICBzdG9wTG9zczogMCxcbiAgICAgICAgdGFrZVByb2ZpdDogMCxcbiAgICAgICAgYWN0aXZhdGlvblByaWNlOiAwLFxuICAgICAgICBjYW5jZWxsYXRpb25EYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICBjcmVhdGlvbkRhdGU6IG5ldyBEYXRlKCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBnZXQgcmVmcmVzaCQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZnJlc2gkO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZFBvc2l0aW9ucyhpZFVzZXI6IG51bWJlcik6IE9ic2VydmFibGU8SVBvc2l0aW9uW10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnaWRBY2NvdW50JywgaWRVc2VyKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxJUG9zaXRpb25bXT4oZW5kcG9pbnQub3BlbiwgeyBwYXJhbXMgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3BlbihcbiAgICB0cmFkaW5nQWNjb3VudFV1aWQ6IHN0cmluZyxcbiAgICBkYXRhPzogTWFwPHN0cmluZywgYW55PlxuICApOiBPYnNlcnZhYmxlPElQb3NpdGlvbltdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd0cmFkaW5nQWNjb3VudCcsIHRyYWRpbmdBY2NvdW50VXVpZCk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8YW55W10+KGVuZHBvaW50Lmxpc3RPcGVuLCB7IHBhcmFtcyB9KS5waXBlKFxuICAgICAgbWFwKChlbCkgPT4ge1xuICAgICAgICBlbCA9IGVsLm1hcCgocG9zaXRpb24pID0+ICh7XG4gICAgICAgICAgLi4ucG9zaXRpb24sXG4gICAgICAgICAgc3ltYm9sSWQ6IHBvc2l0aW9uLnN5bWJvbCxcbiAgICAgICAgICBzeW1ib2w6IG5ldyBTeW1ib2woKSxcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gZWw7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2xvc2U8VD4oXG4gICAgdHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCd0cmFkaW5nQWNjb3VudCcsIHRyYWRpbmdBY2NvdW50VXVpZCk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4oZW5kcG9pbnQuY2xvc2VQb3NpdGlvbiwge1xuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIC5waXBlKFxuICAgIC8vICAgbWFwKChyZXMpID0+IHtcbiAgICAvLyAgICAgcmV0dXJuIHJlcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAvLyAgICAgICBsZXQgX2l0ZW06IElDbG9zZVBvc2l0aW9uID0ge1xuICAgIC8vICAgICAgICAgLi4uaXRlbSxcbiAgICAvLyAgICAgICAgIHN5bWJvbDogbmV3IFN5bWJvbCgpLFxuICAgIC8vICAgICAgICAgaWRTeW1ib2w6IGl0ZW0uc3ltYm9sLFxuICAgIC8vICAgICAgICAgY29tbWlzc2lvbnM6IFtdLFxuICAgIC8vICAgICAgIH07XG4gICAgLy8gICAgICAgcmV0dXJuIF9pdGVtO1xuICAgIC8vICAgICB9KTtcbiAgICAvLyAgIH0pXG4gICAgLy8gKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcmRlcnMoXG4gICAgdHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsXG4gICAgb3JkZXJTdGF0dXM6IG51bWJlclxuICApOiBPYnNlcnZhYmxlPEFycmF5PElPcmRlcj4+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3RyYWRpbmdBY2NvdW50JywgdHJhZGluZ0FjY291bnRVdWlkKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvcmRlclN0YXR1cycsIG9yZGVyU3RhdHVzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PEFycmF5PElSZXNwb25zZU9yZGVyPj4oZW5kcG9pbnQub3JkZXJzLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoX3JlcykgPT4ge1xuICAgICAgICAgIGxldCByZXNBcnJheTogQXJyYXk8SU9yZGVyPiA9IFtdO1xuICAgICAgICAgIF9yZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlczogSU9yZGVyID0ge1xuICAgICAgICAgICAgICB1dWlkOiBpdGVtLnV1aWQgPz8gJycsXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkID8/ICcnLFxuICAgICAgICAgICAgICB0cmFkaW5nQWNjb3VudDogaXRlbS50cmFkaW5nQWNjb3VudCA/PyAnJyxcbiAgICAgICAgICAgICAgc3ltYm9sOiBuZXcgU3ltYm9sKCksXG4gICAgICAgICAgICAgIGlkU3ltYm9sOiBpdGVtLnN5bWJvbCxcbiAgICAgICAgICAgICAgb3JkZXJUeXBlOiBpdGVtLm9yZGVyVHlwZSA/PyAwLFxuICAgICAgICAgICAgICBvcmRlclN0YXR1czogaXRlbS5vcmRlclN0YXR1cyA/PyAwLFxuICAgICAgICAgICAgICB2b2x1bWU6IGl0ZW0udm9sdW1lID8/IDAsXG4gICAgICAgICAgICAgIGJ1eTogaXRlbS5idXkgPz8gZmFsc2UsXG4gICAgICAgICAgICAgIHN0b3BMb3NzOiBpdGVtLnN0b3BMb3NzLFxuICAgICAgICAgICAgICB0YWtlUHJvZml0OiBpdGVtLnRha2VQcm9maXQsXG4gICAgICAgICAgICAgIGFjdGl2YXRpb25QcmljZTogaXRlbS5hY3RpdmF0aW9uUHJpY2UgPz8gMCxcbiAgICAgICAgICAgICAgY2FuY2VsbGF0aW9uRGF0ZTogaXRlbS5jYW5jZWxsYXRpb25EYXRlID8/IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgIGNyZWF0aW9uRGF0ZTogaXRlbS5jcmVhdGlvbkRhdGUgPz8gbmV3IERhdGUoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXNBcnJheS5wdXNoKHJlcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc0FycmF5O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGUodmFsdWU6IElQYXlsb2FkQ3JlYXRlUG9zaXRpb24pOiBPYnNlcnZhYmxlPElQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxJUG9zaXRpb24+KGVuZHBvaW50LmNyZWF0ZSwgdmFsdWUpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlT3JkZXIodmFsdWU6IElQYXlsb2FkQ3JlYXRlT3JkZXIpOiBPYnNlcnZhYmxlPElPcmRlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0PElSZXNwb25zZU9yZGVyPihlbmRwb2ludC5jcmVhdGVPcmRlciwgdmFsdWUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICBsZXQgb3JkZXI6IElPcmRlciA9IHtcbiAgICAgICAgICAgIC4uLnJlcyxcbiAgICAgICAgICAgIGlkU3ltYm9sOiByZXMuc3ltYm9sLFxuICAgICAgICAgICAgc3ltYm9sOiBuZXcgU3ltYm9sKCksXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gb3JkZXI7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGNsb3NlUG9zaXRpb25zKFxuICAgIHZvbHVtZTogeyB2b2x1bWU6IG51bWJlciB9LFxuICAgIHV1aWQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElDbG9zZVBvc2l0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3Q8SUNsb3NlUG9zaXRpb24+KFxuICAgICAgICBgL3Bvc2l0aW9ucy90cmFkaW5nLXBvc2l0aW9ucy8ke3V1aWR9L2Nsb3NlL2AsXG4gICAgICAgIHZvbHVtZVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFBvc2l0aW9uKHBvc2l0aW9uOiBJUG9zaXRpb24pIHtcbiAgICB0aGlzLnBvc2l0aW9uLm5leHQocG9zaXRpb24pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbGxPcmRlcih1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElSZXNwb25zZU9yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PElSZXNwb25zZU9yZGVyPihcbiAgICAgIGVuZHBvaW50LmNhbmNlbGxPcmRlcjEgKyB1dWlkICsgZW5kcG9pbnQuY2FuY2VsbE9yZGVyMixcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaFBvc2l0aW9uKFxuICAgIGZvcm06IHsgc3RvcExvc3M/OiBudW1iZXI7IHRha2VQcm9maXQ/OiBudW1iZXI7IHZvbHVtZT86IG51bWJlciB9LFxuICAgIHV1aWQ6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPElQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2g8SVBvc2l0aW9uPihcbiAgICAgIGVuZHBvaW50LnBhdGNoUG9zaXRpb24gKyB1dWlkICsgJy8nLFxuICAgICAgZm9ybVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hPcmRlcih2YWx1ZTogYW55LCB1dWlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElSZXNwb25zZU9yZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxJUmVzcG9uc2VPcmRlcj4oXG4gICAgICBlbmRwb2ludC5wYXRjaE9yZGVyICsgdXVpZCArICcvJyxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQb3NpdGlvbnNUcmFkZVN1bW1hcnkoXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxJVHJhZGVTdW1tYXJ5W10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PElUcmFkZVN1bW1hcnlbXT4oZW5kcG9pbnQudHJhZGVTdW1tYXJ5LCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQb3NpdGlvbnNTdW1tYXJ5RGVhbGluZyhcbiAgICBkYXRhPzogTWFwPHN0cmluZywgYW55PlxuICApOiBPYnNlcnZhYmxlPElQb3NpdGlvblN1bW1hcnlEZWFsaW5nW10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PElQb3NpdGlvblN1bW1hcnlEZWFsaW5nW10+KFxuICAgICAgZW5kcG9pbnQucG9zaXRpb25TdW1tYXJ5RGVhbGluZyxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUFsbFBvc2l0aW9ucyh1dWlkQWNjb3VudFRyZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXJyYXk8SVJlc3BvbnNlQ2xvc2U+PihcbiAgICAgIGAvYWNjb3VudHMvdHJhZGluZy1hY2NvdW50cy8ke3V1aWRBY2NvdW50VHJkfS9jbG9zZS1hbGwtcG9zaXRpb25zL2BcbiAgICApO1xuICB9XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZW50LXNlcnYtcG9zaXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leGNlbnQtc2Vydi1wb3NpdGlvbnMvc3JjL2xpYi9leGNlbnQtc2Vydi1wb3NpdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBSUwsTUFBTSxHQU9QLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU1yQyxNQUFNLE9BQU8sMEJBQTBCO0lBeUJyQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBeEJsQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQW1CLElBQUksQ0FBQyxDQUFDO1FBQy9ELGNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLG1CQUFjLEdBQ25CLElBQUksZUFBZSxDQUFrQztZQUNuRCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsRUFBRTtnQkFDUixFQUFFLEVBQUUsRUFBRTtnQkFDTixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLElBQUksTUFBTSxFQUFFO2dCQUNwQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxTQUFTLEVBQUUsQ0FBQztnQkFDWixXQUFXLEVBQUUsQ0FBQztn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QUMvQjtZQUNFLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGlCQUFpQixDQUFDLGNBQXNCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLDhCQUE4QixjQUFjLHVCQUF1QixDQUNwRSxDQUFDO0lBQ0osQ0FBQzs7dUhBdkxVLDBCQUEwQjsySEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07MkZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJUG9zaXRpb24sXG4gIElSZXNwb25zZU9yZGVyLFxuICBJQ2xvc2VQb3NpdGlvbixcbiAgU3ltYm9sLFxuICBJT3JkZXIsXG4gIElSZXNwb25zZUNsb3NlLFxuICBJVHJhZGVTdW1tYXJ5LFxuICBJUG9zaXRpb25TdW1tYXJ5RGVhbGluZyxcbiAgSVBheWxvYWRDcmVhdGVPcmRlcixcbiAgSVBheWxvYWRDcmVhdGVQb3NpdGlvbixcbn0gZnJvbSAnQGV4Y2VudC9leGNlbnQtbW9kZWxzJztcbmltcG9ydCB7IGVuZHBvaW50IH0gZnJvbSAnLi9leGNlbnQtc2Vydi1wb3NpdGlvbnMuZW5wb2ludHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxudHlwZSBJUG9zaXRpb25SZXNwb25zZSA9IFBhcnRpYWw8SVBvc2l0aW9uPiAmIHsgY3VycmVudFByaWNlOiBudW1iZXIgfTtcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFeGNlbnRTZXJ2UG9zaXRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgX3JlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBwb3NpdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVBvc2l0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHBvc2l0aW9uJCA9IHRoaXMucG9zaXRpb24uYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyBvcGVyYXRpb25PcmRlcjogQmVoYXZpb3JTdWJqZWN0PHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogSU9yZGVyIH0+ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogSU9yZGVyIH0+KHtcbiAgICAgIHR5cGU6ICcnLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgdXVpZDogJycsXG4gICAgICAgIGlkOiAnJyxcbiAgICAgICAgdHJhZGluZ0FjY291bnQ6ICcnLFxuICAgICAgICBzeW1ib2w6IG5ldyBTeW1ib2woKSxcbiAgICAgICAgaWRTeW1ib2w6IDAsXG4gICAgICAgIG9yZGVyVHlwZTogMCxcbiAgICAgICAgb3JkZXJTdGF0dXM6IDAsXG4gICAgICAgIHZvbHVtZTogMCxcbiAgICAgICAgYnV5OiBmYWxzZSxcbiAgICAgICAgc3RvcExvc3M6IDAsXG4gICAgICAgIHRha2VQcm9maXQ6IDAsXG4gICAgICAgIGFjdGl2YXRpb25QcmljZTogMCxcbiAgICAgICAgY2FuY2VsbGF0aW9uRGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0IHJlZnJlc2gkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoJDtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQb3NpdGlvbnMoaWRVc2VyOiBudW1iZXIpOiBPYnNlcnZhYmxlPElQb3NpdGlvbltdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lkQWNjb3VudCcsIGlkVXNlcik7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SVBvc2l0aW9uW10+KGVuZHBvaW50Lm9wZW4sIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgcHVibGljIGdldE9wZW4oXG4gICAgdHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxJUG9zaXRpb25bXT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgndHJhZGluZ0FjY291bnQnLCB0cmFkaW5nQWNjb3VudFV1aWQpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PGFueVtdPihlbmRwb2ludC5saXN0T3BlbiwgeyBwYXJhbXMgfSkucGlwZShcbiAgICAgIG1hcCgoZWwpID0+IHtcbiAgICAgICAgZWwgPSBlbC5tYXAoKHBvc2l0aW9uKSA9PiAoe1xuICAgICAgICAgIC4uLnBvc2l0aW9uLFxuICAgICAgICAgIHN5bWJvbElkOiBwb3NpdGlvbi5zeW1ib2wsXG4gICAgICAgICAgc3ltYm9sOiBuZXcgU3ltYm9sKCksXG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENsb3NlPFQ+KFxuICAgIHRyYWRpbmdBY2NvdW50VXVpZDogc3RyaW5nLFxuICAgIGRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+XG4gICk6IE9ic2VydmFibGU8VD4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgndHJhZGluZ0FjY291bnQnLCB0cmFkaW5nQWNjb3VudFV1aWQpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBmb3IgKGxldCBlbnRyeSBvZiBkYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFQ+KGVuZHBvaW50LmNsb3NlUG9zaXRpb24sIHtcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcmRlcnM8VD4oXG4gICAgdHJhZGluZ0FjY291bnRVdWlkOiBzdHJpbmcsXG4gICAgb3JkZXJTdGF0dXM6IG51bWJlcixcbiAgICBkYXRhPzogTWFwPHN0cmluZywgYW55PlxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3RyYWRpbmdBY2NvdW50JywgdHJhZGluZ0FjY291bnRVdWlkKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvcmRlclN0YXR1cycsIG9yZGVyU3RhdHVzKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgZm9yIChsZXQgZW50cnkgb2YgZGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPihlbmRwb2ludC5vcmRlcnMsIHtcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGUodmFsdWU6IElQYXlsb2FkQ3JlYXRlUG9zaXRpb24pOiBPYnNlcnZhYmxlPElQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxJUG9zaXRpb24+KGVuZHBvaW50LmNyZWF0ZSwgdmFsdWUpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlT3JkZXI8VCwgVT4odmFsdWU6IFUpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VD4oZW5kcG9pbnQuY3JlYXRlT3JkZXIsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvc2l0aW9ucyhcbiAgICB2b2x1bWU6IHsgdm9sdW1lOiBudW1iZXIgfSxcbiAgICB1dWlkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJQ2xvc2VQb3NpdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0PElDbG9zZVBvc2l0aW9uPihcbiAgICAgICAgYC9wb3NpdGlvbnMvdHJhZGluZy1wb3NpdGlvbnMvJHt1dWlkfS9jbG9zZS9gLFxuICAgICAgICB2b2x1bWVcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQb3NpdGlvbihwb3NpdGlvbjogSVBvc2l0aW9uKSB7XG4gICAgdGhpcy5wb3NpdGlvbi5uZXh0KHBvc2l0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWxsT3JkZXIodXVpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUmVzcG9uc2VPcmRlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxJUmVzcG9uc2VPcmRlcj4oXG4gICAgICBlbmRwb2ludC5jYW5jZWxsT3JkZXIxICsgdXVpZCArIGVuZHBvaW50LmNhbmNlbGxPcmRlcjIsXG4gICAgICB7fVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hQb3NpdGlvbihcbiAgICBmb3JtOiB7IHN0b3BMb3NzPzogbnVtYmVyOyB0YWtlUHJvZml0PzogbnVtYmVyOyB2b2x1bWU/OiBudW1iZXIgfSxcbiAgICB1dWlkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxJUG9zaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBhdGNoPElQb3NpdGlvbj4oXG4gICAgICBlbmRwb2ludC5wYXRjaFBvc2l0aW9uICsgdXVpZCArICcvJyxcbiAgICAgIGZvcm1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBhdGNoT3JkZXIodmFsdWU6IGFueSwgdXVpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUmVzcG9uc2VPcmRlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2g8SVJlc3BvbnNlT3JkZXI+KFxuICAgICAgZW5kcG9pbnQucGF0Y2hPcmRlciArIHV1aWQgKyAnLycsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9zaXRpb25zVHJhZGVTdW1tYXJ5KFxuICAgIGRhdGE/OiBNYXA8c3RyaW5nLCBhbnk+XG4gICk6IE9ic2VydmFibGU8SVRyYWRlU3VtbWFyeVtdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxJVHJhZGVTdW1tYXJ5W10+KGVuZHBvaW50LnRyYWRlU3VtbWFyeSwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9zaXRpb25zU3VtbWFyeURlYWxpbmcoXG4gICAgZGF0YT86IE1hcDxzdHJpbmcsIGFueT5cbiAgKTogT2JzZXJ2YWJsZTxJUG9zaXRpb25TdW1tYXJ5RGVhbGluZ1tdPiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGZvciAobGV0IGVudHJ5IG9mIGRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxJUG9zaXRpb25TdW1tYXJ5RGVhbGluZ1tdPihcbiAgICAgIGVuZHBvaW50LnBvc2l0aW9uU3VtbWFyeURlYWxpbmcsXG4gICAgICB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VBbGxQb3NpdGlvbnModXVpZEFjY291bnRUcmQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFycmF5PElSZXNwb25zZUNsb3NlPj4oXG4gICAgICBgL2FjY291bnRzL3RyYWRpbmctYWNjb3VudHMvJHt1dWlkQWNjb3VudFRyZH0vY2xvc2UtYWxsLXBvc2l0aW9ucy9gXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -79,49 +79,18 @@ class ExcentServPositionsService {
79
79
  return this.httpClient.get(endpoint.closePosition, {
80
80
  params,
81
81
  });
82
- // .pipe(
83
- // map((res) => {
84
- // return res.map((item) => {
85
- // let _item: IClosePosition = {
86
- // ...item,
87
- // symbol: new Symbol(),
88
- // idSymbol: item.symbol,
89
- // commissions: [],
90
- // };
91
- // return _item;
92
- // });
93
- // })
94
- // );
95
- }
96
- getOrders(tradingAccountUuid, orderStatus) {
82
+ }
83
+ getOrders(tradingAccountUuid, orderStatus, data) {
97
84
  let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
98
85
  params = params.append('orderStatus', orderStatus);
99
- return this.httpClient
100
- .get(endpoint.orders, { params })
101
- .pipe(map((_res) => {
102
- let resArray = [];
103
- _res.forEach((item) => {
104
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
105
- let res = {
106
- uuid: (_a = item.uuid) !== null && _a !== void 0 ? _a : '',
107
- id: (_b = item.id) !== null && _b !== void 0 ? _b : '',
108
- tradingAccount: (_c = item.tradingAccount) !== null && _c !== void 0 ? _c : '',
109
- symbol: new Symbol(),
110
- idSymbol: item.symbol,
111
- orderType: (_d = item.orderType) !== null && _d !== void 0 ? _d : 0,
112
- orderStatus: (_e = item.orderStatus) !== null && _e !== void 0 ? _e : 0,
113
- volume: (_f = item.volume) !== null && _f !== void 0 ? _f : 0,
114
- buy: (_g = item.buy) !== null && _g !== void 0 ? _g : false,
115
- stopLoss: item.stopLoss,
116
- takeProfit: item.takeProfit,
117
- activationPrice: (_h = item.activationPrice) !== null && _h !== void 0 ? _h : 0,
118
- cancellationDate: (_j = item.cancellationDate) !== null && _j !== void 0 ? _j : new Date(),
119
- creationDate: (_k = item.creationDate) !== null && _k !== void 0 ? _k : new Date(),
120
- };
121
- resArray.push(res);
122
- });
123
- return resArray;
124
- }));
86
+ if (data) {
87
+ for (let entry of data.entries()) {
88
+ params = params.append(entry[0], entry[1]);
89
+ }
90
+ }
91
+ return this.httpClient.get(endpoint.orders, {
92
+ params,
93
+ });
125
94
  }
126
95
  create(value) {
127
96
  return this.httpClient.post(endpoint.create, value).pipe(tap(() => {
@@ -129,12 +98,7 @@ class ExcentServPositionsService {
129
98
  }));
130
99
  }
131
100
  createOrder(value) {
132
- return this.httpClient
133
- .post(endpoint.createOrder, value)
134
- .pipe(map((res) => {
135
- let order = Object.assign(Object.assign({}, res), { idSymbol: res.symbol, symbol: new Symbol() });
136
- return order;
137
- }));
101
+ return this.httpClient.post(endpoint.createOrder, value);
138
102
  }
139
103
  closePositions(volume, uuid) {
140
104
  return this.httpClient
@@ -1 +1 @@
1
- {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IPosition,\n IResponseOrder,\n IClosePosition,\n Symbol,\n IOrder,\n IResponseClose,\n ITradeSummary,\n IPositionSummaryDealing,\n IPayloadCreateOrder,\n IPayloadCreatePosition,\n} from '@excent/excent-models';\nimport { endpoint } from './excent-serv-positions.enpoints';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol(),\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpen(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<IPosition[]> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<any[]>(endpoint.listOpen, { params }).pipe(\n map((el) => {\n el = el.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n })\n );\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n // .pipe(\n // map((res) => {\n // return res.map((item) => {\n // let _item: IClosePosition = {\n // ...item,\n // symbol: new Symbol(),\n // idSymbol: item.symbol,\n // commissions: [],\n // };\n // return _item;\n // });\n // })\n // );\n }\n\n public getOrders(\n tradingAccountUuid: string,\n orderStatus: number\n ): Observable<Array<IOrder>> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n return this.httpClient\n .get<Array<IResponseOrder>>(endpoint.orders, { params })\n .pipe(\n map((_res) => {\n let resArray: Array<IOrder> = [];\n _res.forEach((item) => {\n let res: IOrder = {\n uuid: item.uuid ?? '',\n id: item.id ?? '',\n tradingAccount: item.tradingAccount ?? '',\n symbol: new Symbol(),\n idSymbol: item.symbol,\n orderType: item.orderType ?? 0,\n orderStatus: item.orderStatus ?? 0,\n volume: item.volume ?? 0,\n buy: item.buy ?? false,\n stopLoss: item.stopLoss,\n takeProfit: item.takeProfit,\n activationPrice: item.activationPrice ?? 0,\n cancellationDate: item.cancellationDate ?? new Date(),\n creationDate: item.creationDate ?? new Date(),\n };\n resArray.push(res);\n });\n return resArray;\n })\n );\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder(value: IPayloadCreateOrder): Observable<IOrder> {\n return this.httpClient\n .post<IResponseOrder>(endpoint.createOrder, value)\n .pipe(\n map((res) => {\n let order: IOrder = {\n ...res,\n idSymbol: res.symbol,\n symbol: new Symbol(),\n };\n return order;\n })\n );\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAAO,MAAM,QAAQ,GAAG;AACtB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,MAAM,EAAE,oBAAoB;AAC5B,IAAA,aAAa,EAAE,yBAAyB;AACxC,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,eAAe,EAAE,0BAA0B;AAC3C,IAAA,QAAQ,EAAE,+BAA+B;AACzC,IAAA,MAAM,EAAE,+BAA+B;AACvC,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,oBAAoB;AACnC,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,aAAa,EAAE,+BAA+B;AAC9C,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,YAAY,EAAE,2BAA2B;AACzC,IAAA,sBAAsB,EAAE,+BAA+B;CACxD;;MCMY,0BAA0B,CAAA;AAyBrC,IAAA,WAAA,CAAoB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAxBlC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAmB,IAAI,CAAC,CAAC;QAC/D,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;AAClC,QAAA,IAAc,CAAA,cAAA,GACnB,IAAI,eAAe,CAAkC;AACnD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,EAAE,EAAE,EAAE;AACN,gBAAA,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,IAAI,MAAM,EAAE;AACpB,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,eAAe,EAAE,CAAC;gBAClB,gBAAgB,EAAE,IAAI,IAAI,EAAE;gBAC5B,YAAY,EAAE,IAAI,IAAI,EAAE;AACzB,aAAA;AACF,SAAA,CAAC,CAAC;KAEyC;AAE9C,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAEM,IAAA,eAAe,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;KACpE;IAEM,OAAO,CACZ,kBAA0B,EAC1B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AACxE,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAQ,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CACnE,GAAG,CAAC,CAAC,EAAE,KAAI;YACT,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACrB,QAAQ,CAAA,EAAA,EACX,QAAQ,EAAE,QAAQ,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,MAAM,EAAE,EACpB,CAAA,CAAA,CAAC,CAAC;AACJ,YAAA,OAAO,EAAE,CAAC;SACX,CAAC,CACH,CAAC;KACH;IAEM,QAAQ,CACb,kBAA0B,EAC1B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AACxE,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,aAAa,EAAE;YACpD,MAAM;AACP,SAAA,CAAC,CAAC;;;;;;;;;;;;;;KAcJ;IAEM,SAAS,CACd,kBAA0B,EAC1B,WAAmB,EAAA;AAEnB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACxE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU;aACnB,GAAG,CAAwB,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;AACvD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,IAAI,KAAI;YACX,IAAI,QAAQ,GAAkB,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;;AACpB,gBAAA,IAAI,GAAG,GAAW;AAChB,oBAAA,IAAI,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,mCAAI,EAAE;AACrB,oBAAA,EAAE,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,mCAAI,EAAE;AACjB,oBAAA,cAAc,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,mCAAI,EAAE;oBACzC,MAAM,EAAE,IAAI,MAAM,EAAE;oBACpB,QAAQ,EAAE,IAAI,CAAC,MAAM;AACrB,oBAAA,SAAS,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,mCAAI,CAAC;AAC9B,oBAAA,WAAW,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,mCAAI,CAAC;AAClC,oBAAA,MAAM,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,mCAAI,CAAC;AACxB,oBAAA,GAAG,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,mCAAI,KAAK;oBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,oBAAA,eAAe,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,mCAAI,CAAC;oBAC1C,gBAAgB,EAAE,MAAA,IAAI,CAAC,gBAAgB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,IAAI,EAAE;oBACrD,YAAY,EAAE,MAAA,IAAI,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,IAAI,EAAE;iBAC9C,CAAC;AACF,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,QAAQ,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEM,IAAA,MAAM,CAAC,KAA6B,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAY,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CACjE,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACvB,CAAC,CACH,CAAC;KACH;AAEM,IAAA,WAAW,CAAC,KAA0B,EAAA;QAC3C,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CAAiB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;AACjD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;AACV,YAAA,IAAI,KAAK,GACJ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CACN,EAAA,EAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,EACpB,MAAM,EAAE,IAAI,MAAM,EAAE,GACrB,CAAC;AACF,YAAA,OAAO,KAAK,CAAC;SACd,CAAC,CACH,CAAC;KACL;IAEM,cAAc,CACnB,MAA0B,EAC1B,IAAY,EAAA;QAEZ,OAAO,IAAI,CAAC,UAAU;AACnB,aAAA,IAAI,CACH,CAAgC,6BAAA,EAAA,IAAI,CAAS,OAAA,CAAA,EAC7C,MAAM,CACP;AACA,aAAA,IAAI,CACH,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB,CAAC,CACH,CAAC;KACL;AAEM,IAAA,WAAW,CAAC,QAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;AAEM,IAAA,YAAY,CAAC,IAAY,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,QAAQ,CAAC,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAC,aAAa,EACtD,EAAE,CACH,CAAC;KACH;IAEM,aAAa,CAClB,IAAiE,EACjE,IAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAC1B,QAAQ,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,EACnC,IAAI,CACL,CAAC;KACH;IAEM,UAAU,CAAC,KAAU,EAAE,IAAY,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAC1B,QAAQ,CAAC,UAAU,GAAG,IAAI,GAAG,GAAG,EAChC,KAAK,CACN,CAAC;KACH;AAEM,IAAA,wBAAwB,CAC7B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAkB,QAAQ,CAAC,YAAY,EAAE;AACjE,YAAA,MAAM,EAAE,MAAM;AACf,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,0BAA0B,CAC/B,IAAuB,EAAA;AAEvB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,aAAA;AACF,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,QAAQ,CAAC,sBAAsB,EAC/B;AACE,YAAA,MAAM,EAAE,MAAM;AACf,SAAA,CACF,CAAC;KACH;AAEM,IAAA,iBAAiB,CAAC,cAAsB,EAAA;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAA8B,2BAAA,EAAA,cAAc,CAAuB,qBAAA,CAAA,CACpE,CAAC;KACH;;uHAjOU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFzB,MAAM,EAAA,CAAA,CAAA;2FAEP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCTY,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAR7B,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAC3B,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCOU,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uHAAzB,yBAAyB,EAAA,YAAA,EAAA,CARlC,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAK5B,4BAA4B,CAAA,EAAA,CAAA,CAAA;uHAGnB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,4BAA4B;AAC7B,qBAAA;iBACF,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IPosition,\n IResponseOrder,\n IClosePosition,\n Symbol,\n IOrder,\n IResponseClose,\n ITradeSummary,\n IPositionSummaryDealing,\n IPayloadCreateOrder,\n IPayloadCreatePosition,\n} from '@excent/excent-models';\nimport { endpoint } from './excent-serv-positions.enpoints';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol(),\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpen(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<IPosition[]> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<any[]>(endpoint.listOpen, { params }).pipe(\n map((el) => {\n el = el.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n })\n );\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n }\n\n public getOrders<T>(\n tradingAccountUuid: string,\n orderStatus: number,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders, {\n params,\n });\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder<T, U>(value: U) {\n return this.httpClient.post<T>(endpoint.createOrder, value);\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -83,48 +83,18 @@ class ExcentServPositionsService {
83
83
  return this.httpClient.get(endpoint.closePosition, {
84
84
  params,
85
85
  });
86
- // .pipe(
87
- // map((res) => {
88
- // return res.map((item) => {
89
- // let _item: IClosePosition = {
90
- // ...item,
91
- // symbol: new Symbol(),
92
- // idSymbol: item.symbol,
93
- // commissions: [],
94
- // };
95
- // return _item;
96
- // });
97
- // })
98
- // );
99
- }
100
- getOrders(tradingAccountUuid, orderStatus) {
86
+ }
87
+ getOrders(tradingAccountUuid, orderStatus, data) {
101
88
  let params = new HttpParams().set('tradingAccount', tradingAccountUuid);
102
89
  params = params.append('orderStatus', orderStatus);
103
- return this.httpClient
104
- .get(endpoint.orders, { params })
105
- .pipe(map((_res) => {
106
- let resArray = [];
107
- _res.forEach((item) => {
108
- let res = {
109
- uuid: item.uuid ?? '',
110
- id: item.id ?? '',
111
- tradingAccount: item.tradingAccount ?? '',
112
- symbol: new Symbol(),
113
- idSymbol: item.symbol,
114
- orderType: item.orderType ?? 0,
115
- orderStatus: item.orderStatus ?? 0,
116
- volume: item.volume ?? 0,
117
- buy: item.buy ?? false,
118
- stopLoss: item.stopLoss,
119
- takeProfit: item.takeProfit,
120
- activationPrice: item.activationPrice ?? 0,
121
- cancellationDate: item.cancellationDate ?? new Date(),
122
- creationDate: item.creationDate ?? new Date(),
123
- };
124
- resArray.push(res);
125
- });
126
- return resArray;
127
- }));
90
+ if (data) {
91
+ for (let entry of data.entries()) {
92
+ params = params.append(entry[0], entry[1]);
93
+ }
94
+ }
95
+ return this.httpClient.get(endpoint.orders, {
96
+ params,
97
+ });
128
98
  }
129
99
  create(value) {
130
100
  return this.httpClient.post(endpoint.create, value).pipe(tap(() => {
@@ -132,16 +102,7 @@ class ExcentServPositionsService {
132
102
  }));
133
103
  }
134
104
  createOrder(value) {
135
- return this.httpClient
136
- .post(endpoint.createOrder, value)
137
- .pipe(map((res) => {
138
- let order = {
139
- ...res,
140
- idSymbol: res.symbol,
141
- symbol: new Symbol(),
142
- };
143
- return order;
144
- }));
105
+ return this.httpClient.post(endpoint.createOrder, value);
145
106
  }
146
107
  closePositions(volume, uuid) {
147
108
  return this.httpClient
@@ -1 +1 @@
1
- {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IPosition,\n IResponseOrder,\n IClosePosition,\n Symbol,\n IOrder,\n IResponseClose,\n ITradeSummary,\n IPositionSummaryDealing,\n IPayloadCreateOrder,\n IPayloadCreatePosition,\n} from '@excent/excent-models';\nimport { endpoint } from './excent-serv-positions.enpoints';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol(),\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpen(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<IPosition[]> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<any[]>(endpoint.listOpen, { params }).pipe(\n map((el) => {\n el = el.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n })\n );\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n // .pipe(\n // map((res) => {\n // return res.map((item) => {\n // let _item: IClosePosition = {\n // ...item,\n // symbol: new Symbol(),\n // idSymbol: item.symbol,\n // commissions: [],\n // };\n // return _item;\n // });\n // })\n // );\n }\n\n public getOrders(\n tradingAccountUuid: string,\n orderStatus: number\n ): Observable<Array<IOrder>> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n return this.httpClient\n .get<Array<IResponseOrder>>(endpoint.orders, { params })\n .pipe(\n map((_res) => {\n let resArray: Array<IOrder> = [];\n _res.forEach((item) => {\n let res: IOrder = {\n uuid: item.uuid ?? '',\n id: item.id ?? '',\n tradingAccount: item.tradingAccount ?? '',\n symbol: new Symbol(),\n idSymbol: item.symbol,\n orderType: item.orderType ?? 0,\n orderStatus: item.orderStatus ?? 0,\n volume: item.volume ?? 0,\n buy: item.buy ?? false,\n stopLoss: item.stopLoss,\n takeProfit: item.takeProfit,\n activationPrice: item.activationPrice ?? 0,\n cancellationDate: item.cancellationDate ?? new Date(),\n creationDate: item.creationDate ?? new Date(),\n };\n resArray.push(res);\n });\n return resArray;\n })\n );\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder(value: IPayloadCreateOrder): Observable<IOrder> {\n return this.httpClient\n .post<IResponseOrder>(endpoint.createOrder, value)\n .pipe(\n map((res) => {\n let order: IOrder = {\n ...res,\n idSymbol: res.symbol,\n symbol: new Symbol(),\n };\n return order;\n })\n );\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excent-excent-serv-positions.mjs","sources":["../../../projects/excent-serv-positions/src/lib/excent-serv-positions.enpoints.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.service.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.component.ts","../../../projects/excent-serv-positions/src/lib/excent-serv-positions.module.ts","../../../projects/excent-serv-positions/src/public-api.ts","../../../projects/excent-serv-positions/src/excent-excent-serv-positions.ts"],"sourcesContent":["export const endpoint = {\n open: '/position/open/',\n closed: '/position/closed/',\n orders: '/positions/orders/',\n wsCancelOrder: '/position/order/cancel/',\n closePosition: '/positions/position-history/',\n positionSummary: '/report/position-summary',\n listOpen: '/positions/trading-positions/',\n create: '/positions/trading-positions/',\n createOrder: '/positions/orders/',\n cancellOrder1: '/positions/orders/',\n cancellOrder2: '/cancel/',\n patchPosition: '/positions/trading-positions/',\n patchOrder: '/positions/orders/',\n tradeSummary: '/positions/trade-summary/',\n positionSummaryDealing: '/positions/positions-summary/',\n};\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n IPosition,\n IResponseOrder,\n IClosePosition,\n Symbol,\n IOrder,\n IResponseClose,\n ITradeSummary,\n IPositionSummaryDealing,\n IPayloadCreateOrder,\n IPayloadCreatePosition,\n} from '@excent/excent-models';\nimport { endpoint } from './excent-serv-positions.enpoints';\nimport { BehaviorSubject, Observable, Subject, tap } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype IPositionResponse = Partial<IPosition> & { currentPrice: number };\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcentServPositionsService {\n private _refresh$ = new Subject<void>();\n private position = new BehaviorSubject<IPosition | null>(null);\n position$ = this.position.asObservable();\n public operationOrder: BehaviorSubject<{ type: string; value: IOrder }> =\n new BehaviorSubject<{ type: string; value: IOrder }>({\n type: '',\n value: {\n uuid: '',\n id: '',\n tradingAccount: '',\n symbol: new Symbol(),\n idSymbol: 0,\n orderType: 0,\n orderStatus: 0,\n volume: 0,\n buy: false,\n stopLoss: 0,\n takeProfit: 0,\n activationPrice: 0,\n cancellationDate: new Date(),\n creationDate: new Date(),\n },\n });\n\n constructor(private httpClient: HttpClient) {}\n\n get refresh$(): Subject<void> {\n return this._refresh$;\n }\n\n public reloadPositions(idUser: number): Observable<IPosition[]> {\n const params = new HttpParams().set('idAccount', idUser);\n return this.httpClient.get<IPosition[]>(endpoint.open, { params });\n }\n\n public getOpen(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<IPosition[]> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<any[]>(endpoint.listOpen, { params }).pipe(\n map((el) => {\n el = el.map((position) => ({\n ...position,\n symbolId: position.symbol,\n symbol: new Symbol(),\n }));\n return el;\n })\n );\n }\n\n public getClose<T>(\n tradingAccountUuid: string,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.closePosition, {\n params,\n });\n }\n\n public getOrders<T>(\n tradingAccountUuid: string,\n orderStatus: number,\n data?: Map<string, any>\n ): Observable<T> {\n let params = new HttpParams().set('tradingAccount', tradingAccountUuid);\n params = params.append('orderStatus', orderStatus);\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n return this.httpClient.get<T>(endpoint.orders, {\n params,\n });\n }\n\n public create(value: IPayloadCreatePosition): Observable<IPosition> {\n return this.httpClient.post<IPosition>(endpoint.create, value).pipe(\n tap(() => {\n this._refresh$.next();\n })\n );\n }\n\n public createOrder<T, U>(value: U) {\n return this.httpClient.post<T>(endpoint.createOrder, value);\n }\n\n public closePositions(\n volume: { volume: number },\n uuid: string\n ): Observable<IClosePosition> {\n return this.httpClient\n .post<IClosePosition>(\n `/positions/trading-positions/${uuid}/close/`,\n volume\n )\n .pipe(\n tap(() => {\n this.refresh$.next();\n })\n );\n }\n\n public setPosition(position: IPosition) {\n this.position.next(position);\n }\n\n public cancellOrder(uuid: string): Observable<IResponseOrder> {\n return this.httpClient.post<IResponseOrder>(\n endpoint.cancellOrder1 + uuid + endpoint.cancellOrder2,\n {}\n );\n }\n\n public patchPosition(\n form: { stopLoss?: number; takeProfit?: number; volume?: number },\n uuid: string\n ): Observable<IPosition> {\n return this.httpClient.patch<IPosition>(\n endpoint.patchPosition + uuid + '/',\n form\n );\n }\n\n public patchOrder(value: any, uuid: string): Observable<IResponseOrder> {\n return this.httpClient.patch<IResponseOrder>(\n endpoint.patchOrder + uuid + '/',\n value\n );\n }\n\n public getPositionsTradeSummary(\n data?: Map<string, any>\n ): Observable<ITradeSummary[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<ITradeSummary[]>(endpoint.tradeSummary, {\n params: params,\n });\n }\n\n public getPositionsSummaryDealing(\n data?: Map<string, any>\n ): Observable<IPositionSummaryDealing[]> {\n let params = new HttpParams();\n if (data) {\n for (let entry of data.entries()) {\n params = params.append(entry[0], entry[1]);\n }\n }\n\n return this.httpClient.get<IPositionSummaryDealing[]>(\n endpoint.positionSummaryDealing,\n {\n params: params,\n }\n );\n }\n\n public closeAllPositions(uuidAccountTrd: string) {\n return this.httpClient.get<Array<IResponseClose>>(\n `/accounts/trading-accounts/${uuidAccountTrd}/close-all-positions/`\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-excent-serv-positions',\n template: `\n <p>\n excent-serv-positions works!\n </p>\n `,\n styles: [\n ]\n})\nexport class ExcentServPositionsComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { ExcentServPositionsComponent } from './excent-serv-positions.component';\n\n\n\n@NgModule({\n declarations: [\n ExcentServPositionsComponent\n ],\n imports: [\n ],\n exports: [\n ExcentServPositionsComponent\n ]\n})\nexport class ExcentServPositionsModule { }\n","/*\n * Public API Surface of excent-serv-positions\n */\n\nexport * from './lib/excent-serv-positions.service';\nexport * from './lib/excent-serv-positions.component';\nexport * from './lib/excent-serv-positions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { IPosition, IResponseOrder, IClosePosition, IOrder, IResponseClose, ITradeSummary, IPositionSummaryDealing, IPayloadCreateOrder, IPayloadCreatePosition } from '@excent/excent-models';
2
+ import { IPosition, IResponseOrder, IClosePosition, IOrder, IResponseClose, ITradeSummary, IPositionSummaryDealing, IPayloadCreatePosition } from '@excent/excent-models';
3
3
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ExcentServPositionsService {
@@ -16,9 +16,9 @@ export declare class ExcentServPositionsService {
16
16
  reloadPositions(idUser: number): Observable<IPosition[]>;
17
17
  getOpen(tradingAccountUuid: string, data?: Map<string, any>): Observable<IPosition[]>;
18
18
  getClose<T>(tradingAccountUuid: string, data?: Map<string, any>): Observable<T>;
19
- getOrders(tradingAccountUuid: string, orderStatus: number): Observable<Array<IOrder>>;
19
+ getOrders<T>(tradingAccountUuid: string, orderStatus: number, data?: Map<string, any>): Observable<T>;
20
20
  create(value: IPayloadCreatePosition): Observable<IPosition>;
21
- createOrder(value: IPayloadCreateOrder): Observable<IOrder>;
21
+ createOrder<T, U>(value: U): Observable<T>;
22
22
  closePositions(volume: {
23
23
  volume: number;
24
24
  }, uuid: string): Observable<IClosePosition>;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@excent/excent-serv-positions",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.2.0",
6
6
  "@angular/core": "^15.2.0"
7
7
  },
8
8
  "dependencies": {
9
- "@excent/excent-models": "^0.3.31",
9
+ "@excent/excent-models": "^0.3.61",
10
10
  "tslib": "^2.3.0"
11
11
  },
12
12
  "sideEffects": false,