api_connect_nodejs 2.0.1 → 2.0.4

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.
@@ -11,11 +11,15 @@ const validityArray = Object.values(enumValidity);
11
11
  const orderTypeArray = Object.values(enumOrderType);
12
12
  const productTypeArray = Object.values(enumProductType);
13
13
 
14
- validatePlaceTrade = (object) => {
14
+ validatePlaceTrade = (object, prds) => {
15
+ // let prdName = [];
16
+ // if (prds.exc.includes(object.exc)) {
17
+ // prdName = prds.prd[object.exc];
18
+ // }
15
19
  const placeTradeSchema = Joi.object({
16
20
  trdSym: Joi.string().required(),
17
21
  exc: Joi.string()
18
- .valid(...exchangeTypeArray)
22
+ .valid(...prds.exc)
19
23
  .required(),
20
24
  action: Joi.string()
21
25
  .valid(...actionTypeArray)
@@ -28,20 +32,27 @@ validatePlaceTrade = (object) => {
28
32
  .required(),
29
33
  qty: Joi.number().required(),
30
34
  sym: Joi.string().required(),
31
- lmPrc: Joi.number().required(),
35
+ lmPrc: Joi.string().required(),
32
36
  dscQty: Joi.string(),
33
37
  trgPrc: Joi.string(),
34
- prdCode: Joi.string().valid(...productTypeArray),
38
+ prdCode: Joi.string()
39
+ // .valid(...prdName)
40
+ .required(),
35
41
  }).options({ abortEarly: false });
36
-
42
+ const re = placeTradeSchema.validate(object);
43
+ console.log({ re });
37
44
  return placeTradeSchema.validate(object);
38
45
  };
39
46
 
40
- validateModifyTrade = (object) => {
47
+ validateModifyTrade = (object, prds) => {
48
+ // let prdName = [];
49
+ // if (prds.exc.includes(object.exc)) {
50
+ // prdName = prds.prd[object.exc];
51
+ // }
41
52
  const modifyTradeSchema = Joi.object({
42
53
  trdSym: Joi.string().required(),
43
54
  exc: Joi.string()
44
- .valid(...exchangeTypeArray)
55
+ .valid(...prds.exc)
45
56
  .required(),
46
57
  action: Joi.string()
47
58
  .valid(...actionTypeArray)
@@ -58,7 +69,7 @@ validateModifyTrade = (object) => {
58
69
  lmPrc: Joi.number().required(),
59
70
  trgPrc: Joi.string(),
60
71
  prdCode: Joi.string()
61
- .valid(...productTypeArray)
72
+ // .valid(...prdName)
62
73
  .required(),
63
74
  nstOID: Joi.string().required(),
64
75
  }).options({ abortEarly: false });
@@ -66,28 +77,36 @@ validateModifyTrade = (object) => {
66
77
  return modifyTradeSchema.validate(object);
67
78
  };
68
79
 
69
- validateCancelPlaceTrade = (object) => {
80
+ validateCancelPlaceTrade = (object, prds) => {
81
+ // let prdName = [];
82
+ // if (prds.exc.includes(object.exc)) {
83
+ // prdName = prds.prd[object.exc];
84
+ // }
70
85
  const cancelPlaceTradeSchema = Joi.object({
71
86
  nstOID: Joi.string().required(),
72
87
  exc: Joi.string()
73
- .valid(...exchangeTypeArray)
88
+ .valid(...prds.exc)
74
89
  .required(),
75
90
  ordTyp: Joi.string()
76
91
  .valid(...orderTypeArray)
77
92
  .required(),
78
93
  prdCode: Joi.string()
79
- .valid(...productTypeArray)
94
+ // .valid(...prdName)
80
95
  .required(),
81
96
  }).options({ abortEarly: false });
82
97
 
83
98
  return cancelPlaceTradeSchema.validate(object);
84
99
  };
85
100
 
86
- validatePlaceGtcGtdTrade = (object) => {
101
+ validatePlaceGtcGtdTrade = (object, prds) => {
102
+ // let prdName = [];
103
+ // if (prds.exc.includes(object.exc)) {
104
+ // prdName = prds.prd[object.exc];
105
+ // }
87
106
  const PlaceGtcGtdTradeSchema = Joi.object({
88
107
  trdSym: Joi.string().required(),
89
108
  exc: Joi.string()
90
- .valid(...exchangeTypeArray)
109
+ .valid(...prds.exc)
91
110
  .required(),
92
111
  action: Joi.string()
93
112
  .valid(...actionTypeArray)
@@ -101,7 +120,7 @@ validatePlaceGtcGtdTrade = (object) => {
101
120
  qty: Joi.number().required(),
102
121
  lmPrc: Joi.number().required(),
103
122
  prdCode: Joi.string()
104
- .valid(...productTypeArray)
123
+ // .valid(...prdName)
105
124
  .required(),
106
125
  dtDays: Joi.string().required(),
107
126
  sym: Joi.string().required(),
@@ -109,76 +128,15 @@ validatePlaceGtcGtdTrade = (object) => {
109
128
 
110
129
  return PlaceGtcGtdTradeSchema.validate(object);
111
130
  };
112
-
113
- validatePlaceCoverTrade = (object) => {
114
- const placeCoverTradeSchema = Joi.object({
115
- trdSym: Joi.string().required(),
116
- exc: Joi.string()
117
- .valid(...exchangeTypeArray)
118
- .required(),
119
- action: Joi.string()
120
- .valid(...actionTypeArray)
121
- .required(),
122
- dur: Joi.string()
123
- .valid(...validityArray)
124
- .required(),
125
- ordTyp: Joi.string()
126
- .valid(...orderTypeArray)
127
- .required(),
128
- qty: Joi.number().required(),
129
- dscQty: Joi.string(),
130
- sym: Joi.string().required(),
131
- lmPrc: Joi.number().required(),
132
- trgPrc: Joi.string(),
133
- prdCode: Joi.string().valid(...productTypeArray),
134
- }).options({ abortEarly: false });
135
-
136
- return placeCoverTradeSchema.validate(object);
137
- };
138
-
139
- validateModifyCoverTrade = (object) => {
140
- const modifyCovertrade = Joi.object({
141
- trdSym: Joi.string().required(),
142
- exc: Joi.string()
143
- .valid(...exchangeTypeArray)
144
- .required(),
145
- action: Joi.string()
146
- .valid(...actionTypeArray)
147
- .required(),
148
- dur: Joi.string()
149
- .valid(...validityArray)
150
- .required(),
151
- ordTyp: Joi.string()
152
- .valid(...orderTypeArray)
153
- .required(),
154
- qty: Joi.number().required(),
155
- sym: Joi.string().required(),
156
- dscQty: Joi.string(),
157
- lmPrc: Joi.number().required(),
158
- trgPrc: Joi.string(),
159
- prdCode: Joi.string().valid(...productTypeArray),
160
- nstOID: Joi.string().required(),
161
- }).options({ abortEarly: false });
162
-
163
- return modifyCovertrade.validate(object);
164
- };
165
-
166
- validateExitCoverTrade = (orderId) => {
167
- const object = {
168
- nstOID: orderId,
169
- };
170
- const exitCoverTradeSchema = Joi.object({
171
- nstOID: Joi.string().required(),
172
- }).options({ abortEarly: false });
173
-
174
- return exitCoverTradeSchema.validate(object);
175
- };
176
-
177
- validatePlaceAMOTrade = (object) => {
131
+ validatePlaceAMOTrade = (object, prds) => {
132
+ // let prdName = [];
133
+ // if (prds.exc.includes(object.exc)) {
134
+ // prdName = prds.prd[object.exc];
135
+ // }
178
136
  const placeAMOTradeSchema = Joi.object({
179
137
  trdSym: Joi.string().required(),
180
138
  exc: Joi.string()
181
- .valid(...exchangeTypeArray)
139
+ .valid(...prds.exc)
182
140
  .required(),
183
141
  action: Joi.string()
184
142
  .valid(...actionTypeArray)
@@ -194,17 +152,23 @@ validatePlaceAMOTrade = (object) => {
194
152
  sym: Joi.string().required(),
195
153
  lmPrc: Joi.number().required(),
196
154
  trgPrc: Joi.string(),
197
- prdCode: Joi.string().valid(...productTypeArray),
155
+ prdCode: Joi.string()
156
+ // .valid(...prdName)
157
+ .required(),
198
158
  }).options({ abortEarly: false });
199
159
 
200
160
  return placeAMOTradeSchema.validate(object);
201
161
  };
202
162
 
203
- validateModifyAMOTrade = (object) => {
163
+ validateModifyAMOTrade = (object, prds) => {
164
+ // let prdName = [];
165
+ // if (prds.exc.includes(object.exc)) {
166
+ // prdName = prds.prd[object.exc];
167
+ // }
204
168
  const modifyAMOTradeSchema = Joi.object({
205
169
  trdSym: Joi.string().required(),
206
170
  exc: Joi.string()
207
- .valid(...exchangeTypeArray)
171
+ .valid(...prds.exc)
208
172
  .required(),
209
173
  action: Joi.string()
210
174
  .valid(...actionTypeArray)
@@ -219,7 +183,9 @@ validateModifyAMOTrade = (object) => {
219
183
  dscQty: Joi.string(),
220
184
  lmPrc: Joi.number().required(),
221
185
  trgPrc: Joi.string(),
222
- prdCode: Joi.string().valid(...productTypeArray),
186
+ prdCode: Joi.string()
187
+ // .valid(...prdName)
188
+ .required(),
223
189
  nstOID: Joi.string().required(),
224
190
  sym: Joi.string().required(),
225
191
  }).options({ abortEarly: false });
@@ -227,40 +193,68 @@ validateModifyAMOTrade = (object) => {
227
193
  return modifyAMOTradeSchema.validate(object);
228
194
  };
229
195
 
230
- validateCancelAMOTrade = (object) => {
196
+ validateCancelAMOTrade = (object, prds) => {
197
+ // let prdName = [];
198
+ // if (prds.exc.includes(object.exc)) {
199
+ // prdName = prds.prd[object.exc];
200
+ // }
231
201
  const cancelAMOTradeSchema = Joi.object({
232
202
  nstOID: Joi.string().required(),
233
203
  exc: Joi.string()
234
- .valid(...exchangeTypeArray)
204
+ .valid(...prds.exc)
235
205
  .required(),
236
206
  ordTyp: Joi.string()
237
207
  .valid(...orderTypeArray)
238
208
  .required(),
239
209
  prdCode: Joi.string()
240
- .valid(...productTypeArray)
210
+ // .valid(...prdName)
241
211
  .required(),
242
212
  }).options({ abortEarly: false });
243
213
 
244
214
  return cancelAMOTradeSchema.validate(object);
245
215
  };
246
216
 
247
- validateConvertPosition = (object) => {
248
- const ConvertPositionSchema = Joi.object({
249
- nstOID: Joi.string().required(),
250
- flID: Joi.string().required(),
251
- prdCodeCh: Joi.string().required(),
217
+ validateConvertPositionCOMM = (object, prds) => {
218
+ // let prdName = [];
219
+ // if (prds.exc.includes(object.exc)) {
220
+ // prdName = prds.prd[object.exc];
221
+ // }
222
+ const ConvertPositionCOMMSchema = Joi.object({
223
+ sym: Joi.string().required(),
224
+ cnvTyp: Joi.string().valid("D", "C").required(),
225
+ qty: Joi.string().required(),
226
+ action: Joi.string().valid("B", "S").required(),
252
227
  prdCode: Joi.string()
253
- .valid(...productTypeArray)
228
+ // .valid(...prdName)
229
+ .required(),
230
+ prdCodeCh: Joi.string()
231
+ // .valid(...prdName)
254
232
  .required(),
233
+ ordSrc: Joi.string(),
255
234
  exc: Joi.string()
256
- .valid(...exchangeTypeArray)
235
+ .valid(...prds.exc)
257
236
  .required(),
237
+ trdSym: Joi.string().required(),
238
+ }).options({ abortEarly: false });
239
+
240
+ return ConvertPositionCOMMSchema.validate(object);
241
+ };
242
+
243
+ validateConvertPositionEQ = (object, prds) => {
244
+ const ConvertPositionEQSchema = Joi.object({
245
+ nstOID: Joi.string().required(),
246
+ flID: Joi.string().required(),
247
+ prdCodeCh: Joi.string().required(),
248
+ prdCode: Joi.string().required(),
249
+ exc: Joi.string()
250
+ .valid(...prds.exc)
251
+ .required(),
258
252
  ordTyp: Joi.string()
259
253
  .valid(...orderTypeArray)
260
254
  .required(),
261
255
  }).options({ abortEarly: false });
262
256
 
263
- return ConvertPositionSchema.validate(object);
257
+ return ConvertPositionEQSchema.validate(object);
264
258
  };
265
259
 
266
260
  validatePlaceMF = (object) => {
@@ -277,7 +271,7 @@ validatePlaceMF = (object) => {
277
271
  { is: "SIP", then: Joi.string().required() },
278
272
  { is: "XSIP", then: Joi.string().required() },
279
273
  ],
280
- otherwise: Joi.string().allow(''),
274
+ otherwise: Joi.string().allow(""),
281
275
  }),
282
276
  schemeName: Joi.string().required(),
283
277
  strtDt: Joi.string().required(),
@@ -305,7 +299,7 @@ validateModifyMF = (object) => {
305
299
  { is: "SIP", then: Joi.string().required() },
306
300
  { is: "XSIP", then: Joi.string().required() },
307
301
  ],
308
- otherwise: Joi.string().allow(''),
302
+ otherwise: Joi.string().allow(""),
309
303
  }),
310
304
  schemeName: Joi.string().required(),
311
305
  strtDt: Joi.string().required(),
@@ -334,7 +328,7 @@ validateCancelMF = (object) => {
334
328
  { is: "SIP", then: Joi.string().required() },
335
329
  { is: "XSIP", then: Joi.string().required() },
336
330
  ],
337
- otherwise: Joi.string().allow(''),
331
+ otherwise: Joi.string().allow(""),
338
332
  }),
339
333
  schemeName: Joi.string().required(),
340
334
  strtDt: Joi.string().required(),
@@ -349,10 +343,10 @@ validateCancelMF = (object) => {
349
343
  return cancelMFSchema.validate(object);
350
344
  };
351
345
 
352
- validatePlaceBracketTrade = (object) => {
346
+ validatePlaceBracketTrade = (object, prds) => {
353
347
  const PlaceBracketTradeSchema = Joi.object({
354
348
  exc: Joi.string()
355
- .valid(...exchangeTypeArray)
349
+ .valid(...prds.exc)
356
350
  .required(),
357
351
  sym: Joi.string().required(),
358
352
  trnsTyp: Joi.string().required(),
@@ -379,7 +373,7 @@ validateExitBracketTrade = (object) => {
379
373
  return exitBracketTradeSchema.validate(object);
380
374
  };
381
375
 
382
- validateOrderDetails = (orderId, exchange) => {
376
+ validateOrderDetails = (orderId, exchange, prds) => {
383
377
  const orderDetailsObj = {
384
378
  ordId: orderId,
385
379
  exc: exchange,
@@ -387,7 +381,7 @@ validateOrderDetails = (orderId, exchange) => {
387
381
  const orderDetailsSchema = Joi.object({
388
382
  ordId: Joi.string().required(),
389
383
  exc: Joi.string()
390
- .valid(...exchangeTypeArray)
384
+ .valid(...prds.exc)
391
385
  .required(),
392
386
  }).options({ abortEarly: false });
393
387
 
@@ -407,68 +401,78 @@ validateOrderHistory = (startDate, endDate) => {
407
401
  return orderHistorySchema.validate(dateData);
408
402
  };
409
403
 
410
- validatePlaceBasketTrade = (orderList) => {
411
- let orderListSchema = Joi.array()
412
- .items({
413
- exc: Joi.string().required(),
414
- trdSym: Joi.string().required(),
415
- action: Joi.string()
416
- .valid(...actionTypeArray)
417
- .required(),
418
- prdCode: Joi.string()
419
- .valid(...productTypeArray)
420
- .required(),
421
- ordTyp: Joi.string()
422
- .valid(...orderTypeArray)
423
- .required(),
424
- dur: Joi.string()
425
- .valid(...validityArray)
426
- .required(),
427
- price: Joi.string().required(),
428
- trgPrc: Joi.string().required(),
429
- qty: Joi.number().required(),
430
- dscQty: Joi.string().required(),
431
- GTDDate: Joi.string().required(),
432
- rmk: Joi.string().allow("").required(),
433
- sym: Joi.string().required(),
434
- })
435
- .options({ abortEarly: false });
436
-
437
- //const orderListArray = Joi.array().items(orderListSchema);
438
-
439
- return orderListSchema.validate(orderList);
404
+ validatePlaceBasketTrade = (orderList, prds) => {
405
+ return orderList.map((item) => {
406
+ // let prdName = [];
407
+ // if (prds.exc.includes(item.exc)) {
408
+ // prdName = prds.prd[item.exc];
409
+ // }
410
+ let orderListSchema = Joi.array()
411
+ .items({
412
+ exc: Joi.string()
413
+ .valid(...prds.exc)
414
+ .required(),
415
+ trdSym: Joi.string().required(),
416
+ action: Joi.string()
417
+ .valid(...actionTypeArray)
418
+ .required(),
419
+ prdCode: Joi.string()
420
+ // .valid(...prdName)
421
+ .required(),
422
+ ordTyp: Joi.string()
423
+ .valid(...orderTypeArray)
424
+ .required(),
425
+ dur: Joi.string()
426
+ .valid(...validityArray)
427
+ .required(),
428
+ price: Joi.string().required(),
429
+ trgPrc: Joi.string().required(),
430
+ qty: Joi.number().required(),
431
+ dscQty: Joi.string().required(),
432
+ GTDDate: Joi.string().required(),
433
+ rmk: Joi.string().allow("").required(),
434
+ sym: Joi.string().required(),
435
+ })
436
+ .options({ abortEarly: false });
437
+ return orderListSchema.validate(item);
438
+ });
440
439
  };
441
440
 
442
- validatePositionSquareOff = (orderList) => {
443
- let orderListSchema = Joi.object()
444
- .keys({
445
- trdSym: Joi.string().required(),
446
- exc: Joi.string().required(),
447
- action: Joi.string()
448
- .valid(...actionTypeArray)
449
- .required(),
450
- dur: Joi.string()
451
- .valid(...validityArray)
452
- .required(),
453
- ordTyp: Joi.string()
454
- .valid(...orderTypeArray)
455
- .required(),
456
- qty: Joi.string().required(),
457
- dscQty: Joi.string().required(),
458
- sym: Joi.string().required(),
459
- trgPrc: Joi.string().required(),
460
- price: Joi.string().required(),
461
- prdCode: Joi.string()
462
- .valid(...productTypeArray)
463
- .required(),
464
- rmk: Joi.string().required(),
465
- GTDDate: Joi.string().required(),
466
- })
467
- .options({ abortEarly: false });
468
-
469
- const orderListArray = Joi.array().items(orderListSchema);
470
-
471
- return Joi.validate(orderList, orderListArray);
441
+ validatePositionSquareOff = (orderList, prds) => {
442
+ return orderList.map((item) => {
443
+ // let prdName = [];
444
+ // if (prds.exc.includes(item.exc)) {
445
+ // prdName = prds.prd[item.exc];
446
+ // }
447
+ let orderListSchema = Joi.object()
448
+ .keys({
449
+ trdSym: Joi.string().required(),
450
+ exc: Joi.string()
451
+ .valid(...prds.exc)
452
+ .required(),
453
+ action: Joi.string()
454
+ .valid(...actionTypeArray)
455
+ .required(),
456
+ dur: Joi.string()
457
+ .valid(...validityArray)
458
+ .required(),
459
+ ordTyp: Joi.string()
460
+ .valid(...orderTypeArray)
461
+ .required(),
462
+ qty: Joi.string().required(),
463
+ dscQty: Joi.string().required(),
464
+ sym: Joi.string().required(),
465
+ trgPrc: Joi.string().required(),
466
+ price: Joi.string().required(),
467
+ prdCode: Joi.string()
468
+ // .valid(...prdName)
469
+ .required(),
470
+ rmk: Joi.string().required(),
471
+ GTDDate: Joi.string().required(),
472
+ })
473
+ .options({ abortEarly: false });
474
+ return orderListSchema.validate(item);
475
+ });
472
476
  };
473
477
 
474
478
  validateMFOrderBook = (fromDate, toDate) => {
@@ -484,18 +488,26 @@ validateMFOrderBook = (fromDate, toDate) => {
484
488
  return mfOrderBookSchema.validate(dateData);
485
489
  };
486
490
 
491
+ validateGetAMOStxatus = (exchange, prds) => {
492
+ const amoStxatusSchema = Joi.object({
493
+ exchange: Joi.string()
494
+ .valid(...prds.exc)
495
+ .required(),
496
+ }).options({ abortEarly: false });
497
+
498
+ return amoStxatusSchema.validate({ exchange: exchange });
499
+ };
500
+
487
501
  module.exports = {
488
502
  validatePlaceTrade,
489
503
  validateModifyTrade,
490
504
  validateCancelPlaceTrade,
491
505
  validatePlaceGtcGtdTrade,
492
- validatePlaceCoverTrade,
493
- validateModifyCoverTrade,
494
- validateExitCoverTrade,
495
506
  validatePlaceAMOTrade,
496
507
  validateModifyAMOTrade,
497
508
  validateCancelAMOTrade,
498
- validateConvertPosition,
509
+ validateConvertPositionCOMM,
510
+ validateConvertPositionEQ,
499
511
  validatePlaceMF,
500
512
  validateModifyMF,
501
513
  validateCancelMF,
@@ -505,4 +517,5 @@ module.exports = {
505
517
  validateOrderHistory,
506
518
  validatePositionSquareOff,
507
519
  validateMFOrderBook,
520
+ validateGetAMOStxatus,
508
521
  };