api_connect_nodejs 1.0.1 → 2.0.2
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/README.md +3 -3
- package/conf/settings.ini +9 -10
- package/enums/streamingConstants.js +11 -0
- package/index.js +2 -2
- package/package.json +2 -14
- package/src/{edelconnect.js → apiConnect.js} +401 -182
- package/src/{edelweissApiUtils.js → apiUtils.js} +1 -1
- package/src/config.js +1 -1
- package/src/feed/feed.js +139 -0
- package/src/feed/liveNewsFeed.js +112 -0
- package/src/feed/ordersFeed.js +124 -0
- package/src/feed/quotesFeed.js +121 -0
- package/src/http.js +1 -0
- package/src/iniparser.js +4 -3
- package/src/logger.js +1 -1
- package/validations/{edelconnectValidator.js → apiConnectValidator.js} +77 -188
- package/validations/feedStreamerValidator.js +68 -0
- package/.prettierrc.json +0 -19
- package/gitignore +0 -23
- package/src/feed.js +0 -166
- package/validations/feedValidator.js +0 -31
|
@@ -26,21 +26,12 @@ validatePlaceTrade = (object) => {
|
|
|
26
26
|
ordTyp: Joi.string()
|
|
27
27
|
.valid(...orderTypeArray)
|
|
28
28
|
.required(),
|
|
29
|
-
qty: Joi.number().
|
|
29
|
+
qty: Joi.number().required(),
|
|
30
30
|
sym: Joi.string().required(),
|
|
31
31
|
lmPrc: Joi.number().required(),
|
|
32
|
-
dscQty: Joi.string()
|
|
33
|
-
trgPrc: Joi.string()
|
|
34
|
-
prdCode: Joi.string()
|
|
35
|
-
.valid(...productTypeArray)
|
|
36
|
-
.required(),
|
|
37
|
-
mktPro: Joi.string().allow("").required(),
|
|
38
|
-
posSqr: Joi.string().required(),
|
|
39
|
-
minQty: Joi.string().required(),
|
|
40
|
-
ordSrc: Joi.string().required(),
|
|
41
|
-
vnCode: Joi.string().allow("", "NA").required(),
|
|
42
|
-
rmk: Joi.string().allow("", "NA").required(),
|
|
43
|
-
flQty: Joi.boolean().required(),
|
|
32
|
+
dscQty: Joi.string(),
|
|
33
|
+
trgPrc: Joi.string(),
|
|
34
|
+
prdCode: Joi.string().valid(...productTypeArray),
|
|
44
35
|
}).options({ abortEarly: false });
|
|
45
36
|
|
|
46
37
|
return placeTradeSchema.validate(object);
|
|
@@ -58,22 +49,18 @@ validateModifyTrade = (object) => {
|
|
|
58
49
|
dur: Joi.string()
|
|
59
50
|
.valid(...validityArray)
|
|
60
51
|
.required(),
|
|
61
|
-
flQty: Joi.string().required(),
|
|
62
52
|
ordTyp: Joi.string()
|
|
63
53
|
.valid(...orderTypeArray)
|
|
64
54
|
.required(),
|
|
65
|
-
qty: Joi.number().
|
|
66
|
-
dscQty: Joi.string()
|
|
55
|
+
qty: Joi.number().required(),
|
|
56
|
+
dscQty: Joi.string(),
|
|
67
57
|
sym: Joi.string().required(),
|
|
68
|
-
mktPro: Joi.string().allow("").required(),
|
|
69
58
|
lmPrc: Joi.number().required(),
|
|
70
|
-
trgPrc: Joi.string()
|
|
59
|
+
trgPrc: Joi.string(),
|
|
71
60
|
prdCode: Joi.string()
|
|
72
61
|
.valid(...productTypeArray)
|
|
73
62
|
.required(),
|
|
74
|
-
dtDays: Joi.string().allow("").required(),
|
|
75
63
|
nstOID: Joi.string().required(),
|
|
76
|
-
valid: Joi.boolean().required(),
|
|
77
64
|
}).options({ abortEarly: false });
|
|
78
65
|
|
|
79
66
|
return modifyTradeSchema.validate(object);
|
|
@@ -111,21 +98,13 @@ validatePlaceGtcGtdTrade = (object) => {
|
|
|
111
98
|
ordTyp: Joi.string()
|
|
112
99
|
.valid(...orderTypeArray)
|
|
113
100
|
.required(),
|
|
114
|
-
qty: Joi.number().
|
|
101
|
+
qty: Joi.number().required(),
|
|
115
102
|
lmPrc: Joi.number().required(),
|
|
116
103
|
prdCode: Joi.string()
|
|
117
104
|
.valid(...productTypeArray)
|
|
118
105
|
.required(),
|
|
119
106
|
dtDays: Joi.string().required(),
|
|
120
|
-
|
|
121
|
-
vnCode: Joi.string().allow("", "NA").required(),
|
|
122
|
-
oprtn: "<=",
|
|
123
|
-
srcExp: Joi.string().required(),
|
|
124
|
-
tgtId: Joi.string().required(),
|
|
125
|
-
brnchNm: Joi.string().required(),
|
|
126
|
-
brk: Joi.string().required(),
|
|
127
|
-
amo: Joi.boolean().required(),
|
|
128
|
-
valid: Joi.boolean().required(),
|
|
107
|
+
sym: Joi.string().required(),
|
|
129
108
|
}).options({ abortEarly: false });
|
|
130
109
|
|
|
131
110
|
return PlaceGtcGtdTradeSchema.validate(object);
|
|
@@ -143,26 +122,15 @@ validatePlaceCoverTrade = (object) => {
|
|
|
143
122
|
dur: Joi.string()
|
|
144
123
|
.valid(...validityArray)
|
|
145
124
|
.required(),
|
|
146
|
-
flQty: Joi.boolean().required(),
|
|
147
125
|
ordTyp: Joi.string()
|
|
148
126
|
.valid(...orderTypeArray)
|
|
149
127
|
.required(),
|
|
150
|
-
qty: Joi.number().
|
|
151
|
-
dscQty: Joi.string()
|
|
128
|
+
qty: Joi.number().required(),
|
|
129
|
+
dscQty: Joi.string(),
|
|
152
130
|
sym: Joi.string().required(),
|
|
153
|
-
mktPro: Joi.string().allow("").required(),
|
|
154
131
|
lmPrc: Joi.number().required(),
|
|
155
|
-
trgPrc: Joi.string()
|
|
156
|
-
prdCode: Joi.string()
|
|
157
|
-
.valid(...productTypeArray)
|
|
158
|
-
.required(),
|
|
159
|
-
dtDays: Joi.string().allow("").required(),
|
|
160
|
-
posSqr: Joi.string().required(),
|
|
161
|
-
minQty: Joi.string().required(),
|
|
162
|
-
ordSrc: Joi.string().required(),
|
|
163
|
-
vnCode: Joi.string().allow("", "NA").required(),
|
|
164
|
-
rmk: Joi.string().allow("", "NA").required(),
|
|
165
|
-
valid: Joi.boolean().required(),
|
|
132
|
+
trgPrc: Joi.string(),
|
|
133
|
+
prdCode: Joi.string().valid(...productTypeArray),
|
|
166
134
|
}).options({ abortEarly: false });
|
|
167
135
|
|
|
168
136
|
return placeCoverTradeSchema.validate(object);
|
|
@@ -180,38 +148,27 @@ validateModifyCoverTrade = (object) => {
|
|
|
180
148
|
dur: Joi.string()
|
|
181
149
|
.valid(...validityArray)
|
|
182
150
|
.required(),
|
|
183
|
-
flQty: Joi.boolean().required(),
|
|
184
151
|
ordTyp: Joi.string()
|
|
185
152
|
.valid(...orderTypeArray)
|
|
186
153
|
.required(),
|
|
187
|
-
qty: Joi.number().
|
|
188
|
-
|
|
189
|
-
|
|
154
|
+
qty: Joi.number().required(),
|
|
155
|
+
sym: Joi.string().required(),
|
|
156
|
+
dscQty: Joi.string(),
|
|
190
157
|
lmPrc: Joi.number().required(),
|
|
191
|
-
trgPrc: Joi.string()
|
|
192
|
-
prdCode: Joi.string()
|
|
193
|
-
.valid(...productTypeArray)
|
|
194
|
-
.required(),
|
|
195
|
-
dtDays: Joi.string().allow("").required(),
|
|
158
|
+
trgPrc: Joi.string(),
|
|
159
|
+
prdCode: Joi.string().valid(...productTypeArray),
|
|
196
160
|
nstOID: Joi.string().required(),
|
|
197
|
-
valid: Joi.boolean().required(),
|
|
198
161
|
}).options({ abortEarly: false });
|
|
199
162
|
|
|
200
163
|
return modifyCovertrade.validate(object);
|
|
201
164
|
};
|
|
202
165
|
|
|
203
|
-
validateExitCoverTrade = (
|
|
166
|
+
validateExitCoverTrade = (orderId) => {
|
|
167
|
+
const object = {
|
|
168
|
+
nstOID: orderId,
|
|
169
|
+
};
|
|
204
170
|
const exitCoverTradeSchema = Joi.object({
|
|
205
171
|
nstOID: Joi.string().required(),
|
|
206
|
-
exc: Joi.string()
|
|
207
|
-
.valid(...exchangeTypeArray)
|
|
208
|
-
.required(),
|
|
209
|
-
ordTyp: Joi.string()
|
|
210
|
-
.valid(...orderTypeArray)
|
|
211
|
-
.required(),
|
|
212
|
-
prdCode: Joi.string()
|
|
213
|
-
.valid(...productTypeArray)
|
|
214
|
-
.required(),
|
|
215
172
|
}).options({ abortEarly: false });
|
|
216
173
|
|
|
217
174
|
return exitCoverTradeSchema.validate(object);
|
|
@@ -229,26 +186,15 @@ validatePlaceAMOTrade = (object) => {
|
|
|
229
186
|
dur: Joi.string()
|
|
230
187
|
.valid(...validityArray)
|
|
231
188
|
.required(),
|
|
232
|
-
flQty: Joi.boolean().required(),
|
|
233
189
|
ordTyp: Joi.string()
|
|
234
190
|
.valid(...orderTypeArray)
|
|
235
191
|
.required(),
|
|
236
|
-
qty: Joi.number().
|
|
237
|
-
dscQty: Joi.string()
|
|
192
|
+
qty: Joi.number().required(),
|
|
193
|
+
dscQty: Joi.string(),
|
|
238
194
|
sym: Joi.string().required(),
|
|
239
|
-
mktPro: Joi.string().allow("").required(),
|
|
240
195
|
lmPrc: Joi.number().required(),
|
|
241
|
-
trgPrc: Joi.string()
|
|
242
|
-
prdCode: Joi.string()
|
|
243
|
-
.valid(...productTypeArray)
|
|
244
|
-
.required(),
|
|
245
|
-
dtDays: Joi.string().allow("").required(),
|
|
246
|
-
posSqr: Joi.string().required(),
|
|
247
|
-
minQty: Joi.string().required(),
|
|
248
|
-
ordSrc: Joi.string().required(),
|
|
249
|
-
vnCode: Joi.string().allow("", "NA").required(),
|
|
250
|
-
rmk: Joi.string().allow("", "NA").required(),
|
|
251
|
-
valid: Joi.boolean().required(),
|
|
196
|
+
trgPrc: Joi.string(),
|
|
197
|
+
prdCode: Joi.string().valid(...productTypeArray),
|
|
252
198
|
}).options({ abortEarly: false });
|
|
253
199
|
|
|
254
200
|
return placeAMOTradeSchema.validate(object);
|
|
@@ -266,21 +212,16 @@ validateModifyAMOTrade = (object) => {
|
|
|
266
212
|
dur: Joi.string()
|
|
267
213
|
.valid(...validityArray)
|
|
268
214
|
.required(),
|
|
269
|
-
flQty: Joi.boolean().required(),
|
|
270
215
|
ordTyp: Joi.string()
|
|
271
216
|
.valid(...orderTypeArray)
|
|
272
217
|
.required(),
|
|
273
|
-
qty: Joi.number().
|
|
274
|
-
dscQty: Joi.string()
|
|
275
|
-
mktPro: Joi.string().allow("").required(),
|
|
218
|
+
qty: Joi.number().required(),
|
|
219
|
+
dscQty: Joi.string(),
|
|
276
220
|
lmPrc: Joi.number().required(),
|
|
277
|
-
trgPrc: Joi.string()
|
|
278
|
-
prdCode: Joi.string()
|
|
279
|
-
.valid(...productTypeArray)
|
|
280
|
-
.required(),
|
|
281
|
-
dtDays: Joi.string().allow("").required(),
|
|
221
|
+
trgPrc: Joi.string(),
|
|
222
|
+
prdCode: Joi.string().valid(...productTypeArray),
|
|
282
223
|
nstOID: Joi.string().required(),
|
|
283
|
-
|
|
224
|
+
sym: Joi.string().required(),
|
|
284
225
|
}).options({ abortEarly: false });
|
|
285
226
|
|
|
286
227
|
return modifyAMOTradeSchema.validate(object);
|
|
@@ -307,7 +248,7 @@ validateConvertPosition = (object) => {
|
|
|
307
248
|
const ConvertPositionSchema = Joi.object({
|
|
308
249
|
nstOID: Joi.string().required(),
|
|
309
250
|
flID: Joi.string().required(),
|
|
310
|
-
prdCodeCh:
|
|
251
|
+
prdCodeCh: Joi.string().required(),
|
|
311
252
|
prdCode: Joi.string()
|
|
312
253
|
.valid(...productTypeArray)
|
|
313
254
|
.required(),
|
|
@@ -324,41 +265,27 @@ validateConvertPosition = (object) => {
|
|
|
324
265
|
|
|
325
266
|
validatePlaceMF = (object) => {
|
|
326
267
|
const placeMFSchema = Joi.object({
|
|
327
|
-
currentOrdSts: "ACCEPTED",
|
|
328
268
|
token: Joi.string().required(),
|
|
329
269
|
isin: Joi.string().required(),
|
|
330
270
|
txnTyp: Joi.string().required(),
|
|
331
271
|
clientCode: Joi.string().required(),
|
|
332
|
-
qty: Joi.number().
|
|
272
|
+
qty: Joi.number().required(),
|
|
333
273
|
amt: Joi.number().positive().required(),
|
|
334
274
|
reInvFlg: Joi.string().required(),
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
275
|
+
folioNo: Joi.any().when("txnTyp", {
|
|
276
|
+
switch: [
|
|
277
|
+
{ is: "SIP", then: Joi.string().required() },
|
|
278
|
+
{ is: "XSIP", then: Joi.string().required() },
|
|
279
|
+
],
|
|
280
|
+
otherwise: Joi.string().allow(''),
|
|
281
|
+
}),
|
|
341
282
|
schemeName: Joi.string().required(),
|
|
342
|
-
rmrk: Joi.string().required(),
|
|
343
|
-
mnRdmFlg: Joi.string().required(),
|
|
344
|
-
ordSrc: Joi.string().required(),
|
|
345
|
-
strtDy: 0,
|
|
346
283
|
strtDt: Joi.string().required(),
|
|
347
284
|
endDt: Joi.string().required(),
|
|
348
|
-
sipFrq: Joi.string().required(),
|
|
349
285
|
gfot: Joi.string().required(),
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
siporderno: Joi.string().required(),
|
|
354
|
-
schemePlan: "Direct",
|
|
355
|
-
schemeCode: "schemeCode",
|
|
356
|
-
closeAccountFlag: Joi.string().required(),
|
|
357
|
-
kycflag: Joi.string().required(),
|
|
358
|
-
dpc: Joi.string().required(),
|
|
359
|
-
euinflag: Joi.string().required(),
|
|
360
|
-
euinnumber: Joi.string().required(),
|
|
361
|
-
physicalFlag: Joi.string().required(),
|
|
286
|
+
schemePlan: Joi.string().required(),
|
|
287
|
+
schemeCode: Joi.string().required(),
|
|
288
|
+
sipFrq: Joi.string().required(),
|
|
362
289
|
}).options({ abortEarly: false });
|
|
363
290
|
|
|
364
291
|
return placeMFSchema.validate(object);
|
|
@@ -366,41 +293,28 @@ validatePlaceMF = (object) => {
|
|
|
366
293
|
|
|
367
294
|
validateModifyMF = (object) => {
|
|
368
295
|
const modifyMFSchema = Joi.object({
|
|
369
|
-
currentOrdSts: "ACCEPTED",
|
|
370
296
|
token: Joi.string().required(),
|
|
371
297
|
isin: Joi.string().required(),
|
|
372
298
|
txnTyp: Joi.string().required(),
|
|
373
299
|
clientCode: Joi.string().required(),
|
|
374
|
-
qty: Joi.number().
|
|
300
|
+
qty: Joi.number().required(),
|
|
375
301
|
amt: Joi.number().positive().required(),
|
|
376
302
|
reInvFlg: Joi.string().required(),
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
303
|
+
folioNo: Joi.any().when("txnTyp", {
|
|
304
|
+
switch: [
|
|
305
|
+
{ is: "SIP", then: Joi.string().required() },
|
|
306
|
+
{ is: "XSIP", then: Joi.string().required() },
|
|
307
|
+
],
|
|
308
|
+
otherwise: Joi.string().allow(''),
|
|
309
|
+
}),
|
|
383
310
|
schemeName: Joi.string().required(),
|
|
384
|
-
rmrk: Joi.string().required(),
|
|
385
|
-
mnRdmFlg: Joi.string().required(),
|
|
386
|
-
ordSrc: Joi.string().required(),
|
|
387
|
-
strtDy: 0,
|
|
388
311
|
strtDt: Joi.string().required(),
|
|
389
312
|
endDt: Joi.string().required(),
|
|
390
313
|
sipFrq: Joi.string().required(),
|
|
391
314
|
gfot: Joi.string().required(),
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
siporderno: Joi.string().required(),
|
|
396
|
-
schemePlan: "Direct",
|
|
397
|
-
schemeCode: "schemeCode",
|
|
398
|
-
closeAccountFlag: Joi.string().required(),
|
|
399
|
-
kycflag: Joi.string().required(),
|
|
400
|
-
dpc: Joi.string().required(),
|
|
401
|
-
euinflag: Joi.string().required(),
|
|
402
|
-
euinnumber: Joi.string().required(),
|
|
403
|
-
physicalFlag: Joi.string().required(),
|
|
315
|
+
schemePlan: Joi.string().required(),
|
|
316
|
+
schemeCode: Joi.string().required(),
|
|
317
|
+
txnId: Joi.string().required(),
|
|
404
318
|
}).options({ abortEarly: false });
|
|
405
319
|
|
|
406
320
|
return modifyMFSchema.validate(object);
|
|
@@ -408,41 +322,28 @@ validateModifyMF = (object) => {
|
|
|
408
322
|
|
|
409
323
|
validateCancelMF = (object) => {
|
|
410
324
|
const cancelMFSchema = Joi.object({
|
|
411
|
-
currentOrdSts: "ACCEPTED",
|
|
412
325
|
token: Joi.string().required(),
|
|
413
326
|
isin: Joi.string().required(),
|
|
414
327
|
txnTyp: Joi.string().required(),
|
|
415
328
|
clientCode: Joi.string().required(),
|
|
416
|
-
qty: Joi.number().
|
|
329
|
+
qty: Joi.number().required(),
|
|
417
330
|
amt: Joi.number().positive().required(),
|
|
418
331
|
reInvFlg: Joi.string().required(),
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
332
|
+
folioNo: Joi.any().when("txnTyp", {
|
|
333
|
+
switch: [
|
|
334
|
+
{ is: "SIP", then: Joi.string().required() },
|
|
335
|
+
{ is: "XSIP", then: Joi.string().required() },
|
|
336
|
+
],
|
|
337
|
+
otherwise: Joi.string().allow(''),
|
|
338
|
+
}),
|
|
425
339
|
schemeName: Joi.string().required(),
|
|
426
|
-
rmrk: Joi.string().required(),
|
|
427
|
-
mnRdmFlg: Joi.string().required(),
|
|
428
|
-
ordSrc: Joi.string().required(),
|
|
429
|
-
strtDy: 0,
|
|
430
340
|
strtDt: Joi.string().required(),
|
|
431
341
|
endDt: Joi.string().required(),
|
|
432
342
|
sipFrq: Joi.string().required(),
|
|
433
343
|
gfot: Joi.string().required(),
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
siporderno: Joi.string().required(),
|
|
438
|
-
schemePlan: "Direct",
|
|
439
|
-
schemeCode: "schemeCode",
|
|
440
|
-
closeAccountFlag: Joi.string().required(),
|
|
441
|
-
kycflag: Joi.string().required(),
|
|
442
|
-
dpc: Joi.string().required(),
|
|
443
|
-
euinflag: Joi.string().required(),
|
|
444
|
-
euinnumber: Joi.string().required(),
|
|
445
|
-
physicalFlag: Joi.string().required(),
|
|
344
|
+
schemePlan: Joi.string().required(),
|
|
345
|
+
schemeCode: Joi.string().required(),
|
|
346
|
+
txnId: Joi.string().required(),
|
|
446
347
|
}).options({ abortEarly: false });
|
|
447
348
|
|
|
448
349
|
return cancelMFSchema.validate(object);
|
|
@@ -454,20 +355,15 @@ validatePlaceBracketTrade = (object) => {
|
|
|
454
355
|
.valid(...exchangeTypeArray)
|
|
455
356
|
.required(),
|
|
456
357
|
sym: Joi.string().required(),
|
|
457
|
-
trnsTyp:
|
|
458
|
-
qty: Joi.number().
|
|
459
|
-
dur:
|
|
358
|
+
trnsTyp: Joi.string().required(),
|
|
359
|
+
qty: Joi.number().required(),
|
|
360
|
+
dur: Joi.string().required(),
|
|
460
361
|
dsQty: Joi.string().required(),
|
|
461
|
-
prc: Joi.
|
|
462
|
-
trdBsdOn: "LTP",
|
|
463
|
-
sqOffBsdOn: "Absolute",
|
|
464
|
-
sqOffVal: Joi.string().required(),
|
|
465
|
-
slBsdOn: "Absolute",
|
|
362
|
+
prc: Joi.number().required(),
|
|
466
363
|
slVal: Joi.string().required(),
|
|
467
|
-
trlSl:
|
|
468
|
-
trlSlVal: Joi.string()
|
|
469
|
-
|
|
470
|
-
valid: true,
|
|
364
|
+
trlSl: Joi.string(),
|
|
365
|
+
trlSlVal: Joi.string(),
|
|
366
|
+
sqOffVal: Joi.string().required(),
|
|
471
367
|
}).options({ abortEarly: false });
|
|
472
368
|
|
|
473
369
|
return PlaceBracketTradeSchema.validate(object);
|
|
@@ -530,11 +426,11 @@ validatePlaceBasketTrade = (orderList) => {
|
|
|
530
426
|
.required(),
|
|
531
427
|
price: Joi.string().required(),
|
|
532
428
|
trgPrc: Joi.string().required(),
|
|
533
|
-
qty: Joi.number().
|
|
429
|
+
qty: Joi.number().required(),
|
|
534
430
|
dscQty: Joi.string().required(),
|
|
535
|
-
|
|
431
|
+
GTDDate: Joi.string().required(),
|
|
536
432
|
rmk: Joi.string().allow("").required(),
|
|
537
|
-
|
|
433
|
+
sym: Joi.string().required(),
|
|
538
434
|
})
|
|
539
435
|
.options({ abortEarly: false });
|
|
540
436
|
|
|
@@ -554,26 +450,19 @@ validatePositionSquareOff = (orderList) => {
|
|
|
554
450
|
dur: Joi.string()
|
|
555
451
|
.valid(...validityArray)
|
|
556
452
|
.required(),
|
|
557
|
-
flQty: Joi.string().required(),
|
|
558
453
|
ordTyp: Joi.string()
|
|
559
454
|
.valid(...orderTypeArray)
|
|
560
455
|
.required(),
|
|
561
456
|
qty: Joi.string().required(),
|
|
562
457
|
dscQty: Joi.string().required(),
|
|
563
458
|
sym: Joi.string().required(),
|
|
564
|
-
mktPro: Joi.string().allow("").required(),
|
|
565
|
-
lmPrc: Joi.string().required(),
|
|
566
459
|
trgPrc: Joi.string().required(),
|
|
460
|
+
price: Joi.string().required(),
|
|
567
461
|
prdCode: Joi.string()
|
|
568
462
|
.valid(...productTypeArray)
|
|
569
463
|
.required(),
|
|
570
|
-
dtDays: Joi.string().required(),
|
|
571
|
-
posSqr: Joi.string().required(),
|
|
572
|
-
minQty: "string",
|
|
573
|
-
ordSrc: "API",
|
|
574
|
-
vnCode: Joi.string().required(),
|
|
575
464
|
rmk: Joi.string().required(),
|
|
576
|
-
|
|
465
|
+
GTDDate: Joi.string().required(),
|
|
577
466
|
})
|
|
578
467
|
.options({ abortEarly: false });
|
|
579
468
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const Joi = require("joi");
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Validator For Subsribe LiveNews Feed
|
|
5
|
+
*/
|
|
6
|
+
validateStreamerCallback = (callback) => {
|
|
7
|
+
let subcribeLiveNewsObj = {
|
|
8
|
+
callback: callback,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const subcribeLiveNewsSchema = Joi.object({
|
|
12
|
+
callback: Joi.function().required(),
|
|
13
|
+
}).options({ abortEarly: false });
|
|
14
|
+
|
|
15
|
+
return subcribeLiveNewsSchema.validate(subcribeLiveNewsObj);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Validator For Subsribe Quote Feed
|
|
20
|
+
*/
|
|
21
|
+
validateSubscribeQuotesFeed = (callback, symbols) => {
|
|
22
|
+
let subcribeFeedQuoteObj = {
|
|
23
|
+
callback: callback,
|
|
24
|
+
symbols: symbols,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const subcribeFeedQuoteSchema = Joi.object({
|
|
28
|
+
callback: Joi.function().required(),
|
|
29
|
+
symbols: Joi.array().items(Joi.string().min(1).required()).required(),
|
|
30
|
+
}).options({ abortEarly: false });
|
|
31
|
+
|
|
32
|
+
return subcribeFeedQuoteSchema.validate(subcribeFeedQuoteObj);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Validator For Unsubsribe Quote Feed
|
|
37
|
+
*/
|
|
38
|
+
validateUnsubscribeQuotesFeed = (symbols) => {
|
|
39
|
+
let unsubcribeFeedQuoteObj = {
|
|
40
|
+
symbols: symbols,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const UnsubcribeFeedQuoteSchema = Joi.object({
|
|
44
|
+
symbols: Joi.array().items(Joi.string().min(1).required()).required(),
|
|
45
|
+
}).options({ abortEarly: false });
|
|
46
|
+
|
|
47
|
+
return UnsubcribeFeedQuoteSchema.validate(unsubcribeFeedQuoteObj);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
validateSubscribeOrdersFeed = (accId, userId, callback) => {
|
|
51
|
+
let subcribeOrdersFeedObj = {
|
|
52
|
+
accId: accId,
|
|
53
|
+
userId: userId,
|
|
54
|
+
callback: callback,
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const subcribeOrdersFeedSchema = Joi.object({
|
|
58
|
+
accId: Joi.string().required(),
|
|
59
|
+
userId: Joi.string().required(),
|
|
60
|
+
callback: Joi.function().required(),
|
|
61
|
+
}).options({ abortEarly: false });
|
|
62
|
+
|
|
63
|
+
return subcribeOrdersFeedSchema.validate(subcribeOrdersFeedObj);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
module.exports = { validateStreamerCallback, validateSubscribeQuotesFeed, validateUnsubscribeQuotesFeed, validateSubscribeOrdersFeed};
|
package/.prettierrc.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"arrowParens": "always",
|
|
3
|
-
"bracketSameLine": false,
|
|
4
|
-
"bracketSpacing": true,
|
|
5
|
-
"embeddedLanguageFormatting": "auto",
|
|
6
|
-
"htmlWhitespaceSensitivity": "css",
|
|
7
|
-
"insertPragma": false,
|
|
8
|
-
"jsxSingleQuote": false,
|
|
9
|
-
"printWidth": 80,
|
|
10
|
-
"proseWrap": "preserve",
|
|
11
|
-
"quoteProps": "as-needed",
|
|
12
|
-
"requirePragma": false,
|
|
13
|
-
"semi": true,
|
|
14
|
-
"singleQuote": false,
|
|
15
|
-
"tabWidth": 2,
|
|
16
|
-
"trailingComma": "es5",
|
|
17
|
-
"useTabs": false,
|
|
18
|
-
"vueIndentScriptAndStyle": false
|
|
19
|
-
}
|
package/gitignore
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Dependency directories
|
|
2
|
-
node_modules/
|
|
3
|
-
|
|
4
|
-
# Optional npm cache directory
|
|
5
|
-
.npm
|
|
6
|
-
|
|
7
|
-
# dotenv environment variables file
|
|
8
|
-
.env
|
|
9
|
-
|
|
10
|
-
#Ignore instruments and mfInstruments file and OutputFile.csv
|
|
11
|
-
instruments.csv
|
|
12
|
-
|
|
13
|
-
mfInstruments.csv
|
|
14
|
-
|
|
15
|
-
OutputFile.csv
|
|
16
|
-
|
|
17
|
-
#Ignore Log files
|
|
18
|
-
logs/
|
|
19
|
-
|
|
20
|
-
edel-connect.*
|
|
21
|
-
|
|
22
|
-
*.txt
|
|
23
|
-
*.json
|