api_connect_nodejs 2.0.2 → 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.
Files changed (39) hide show
  1. package/README.md +30 -30
  2. package/conf/settings.ini +19 -19
  3. package/enums/actionType.js +10 -10
  4. package/enums/assetType.js +25 -25
  5. package/enums/chartExchangeType.js +15 -15
  6. package/enums/chartType.js +13 -13
  7. package/enums/eodIntervalType.js +11 -11
  8. package/enums/exchangeType.js +14 -14
  9. package/enums/intradayIntervalType.js +14 -14
  10. package/enums/marketCapType.js +12 -12
  11. package/enums/orderType.js +21 -21
  12. package/enums/productType.js +24 -24
  13. package/enums/segementsType.js +13 -13
  14. package/enums/streamingConstants.js +11 -11
  15. package/enums/termsType.js +12 -12
  16. package/enums/validity.js +22 -22
  17. package/index.js +3 -3
  18. package/package.json +25 -25
  19. package/src/apiConnect.js +2342 -2430
  20. package/src/apiUtils.js +221 -129
  21. package/src/chart.js +258 -258
  22. package/src/config.js +316 -326
  23. package/src/feed/feed.js +139 -139
  24. package/src/feed/liveNewsFeed.js +112 -112
  25. package/src/feed/ordersFeed.js +124 -124
  26. package/src/feed/quotesFeed.js +121 -121
  27. package/src/http.js +197 -197
  28. package/src/iniparser.js +42 -42
  29. package/src/liveNews.js +362 -362
  30. package/src/logger.js +16 -16
  31. package/src/order.js +48 -48
  32. package/src/researchCalls.js +175 -175
  33. package/src/watchlist.js +378 -378
  34. package/validations/apiConnectValidator.js +521 -508
  35. package/validations/chartValidator.js +85 -85
  36. package/validations/feedStreamerValidator.js +68 -68
  37. package/validations/liveNewsValidator.js +60 -60
  38. package/validations/researchCallsValidator.js +86 -86
  39. package/validations/watchlistValidator.js +60 -60
package/src/apiUtils.js CHANGED
@@ -1,129 +1,221 @@
1
- const fs = require("fs");
2
- const configData = require("./iniparser.js");
3
- const log4js = require("./logger.js");
4
- class __Constants {
5
- __VendorSession = "";
6
- __ApiKey = "";
7
- __eqAccId = "";
8
- __coAccId = "";
9
- __profileId = "";
10
- __JSessionId = "";
11
- __AppIdKey = "";
12
- __Data = "";
13
-
14
- constructor() {
15
- this.__AppIdKey = configData.ApiIdKey;
16
- }
17
-
18
- get VendorSession() {
19
- return this.__VendorSession;
20
- }
21
-
22
- set VendorSession(val) {
23
- this.__VendorSession = val;
24
- }
25
-
26
- get ApiKey() {
27
- return this.__ApiKey;
28
- }
29
-
30
- set ApiKey(val) {
31
- this.__ApiKey = val;
32
- }
33
-
34
- get profileId() {
35
- return this.__profileId;
36
- }
37
-
38
- set profileId(val) {
39
- this.__profileId = val;
40
- }
41
-
42
- get eqAccId() {
43
- return this.__eqAccId;
44
- }
45
-
46
- set eqAccId(val) {
47
- this.__eqAccId = val;
48
- }
49
-
50
- get coAccId() {
51
- return this.__coAccId;
52
- }
53
-
54
- set coAccId(val) {
55
- this.__coAccId = val;
56
- }
57
-
58
- get JSession() {
59
- return this.__JSessionId;
60
- }
61
-
62
- set JSession(val) {
63
- this.__JSessionId = val;
64
- }
65
-
66
- get AppIdKey() {
67
- return this.__AppIdKey;
68
- }
69
-
70
- set AppIdKey(val) {
71
- this.__AppIdKey = val;
72
- }
73
-
74
- get Data() {
75
- return this.__Data;
76
- }
77
-
78
- set Data(val) {
79
- this.__Data = val;
80
- }
81
-
82
- //Check file exist or not
83
- fileExistOrNot = (path) => {
84
- let flag = false;
85
- try {
86
- if (fs.existsSync(path)) {
87
- flag = true;
88
- }
89
- } catch (error) {
90
- log4js.debug("error - " + error);
91
- }
92
- return flag;
93
- };
94
-
95
- //Read file
96
- readFile = (path) => {
97
- let data = {};
98
- try {
99
- data = fs.readFileSync(path, "utf8");
100
- } catch (err) {
101
- log4js.debug("error - " + error);
102
- }
103
- return data;
104
- };
105
-
106
- //Write data in file
107
- writeInFile = (path, data) => {
108
- try {
109
- fs.writeFileSync(path, data);
110
- return true;
111
- } catch (err) {
112
- log4js.debug("error - " + error);
113
- return false;
114
- }
115
- };
116
-
117
- isEmptyNullString = (val) => {
118
- if (val === null) {
119
- return true;
120
- }
121
- if ((typeof val === "string") && (val.length === 0)) {
122
- return true;
123
- }
124
-
125
- return false;
126
- };
127
- }
128
-
129
- module.exports = __Constants;
1
+ const fs = require("fs");
2
+ const configData = require("./iniparser.js");
3
+ const log4js = require("./logger.js");
4
+ const path = require("path");
5
+ class __Constants {
6
+ __VendorSession = "";
7
+ __ApiKey = "";
8
+ __eqAccId = "";
9
+ __coAccId = "";
10
+ __profileId = "";
11
+ __JSessionId = "";
12
+ __AppIdKey = "";
13
+ __Data = "";
14
+ __Prds = "";
15
+
16
+ constructor() {
17
+ this.__AppIdKey = configData.ApiIdKey;
18
+ }
19
+
20
+ get VendorSession() {
21
+ return this.__VendorSession;
22
+ }
23
+
24
+ set VendorSession(val) {
25
+ this.__VendorSession = val;
26
+ }
27
+
28
+ get ApiKey() {
29
+ return this.__ApiKey;
30
+ }
31
+
32
+ set ApiKey(val) {
33
+ this.__ApiKey = val;
34
+ }
35
+
36
+ get profileId() {
37
+ return this.__profileId;
38
+ }
39
+
40
+ set profileId(val) {
41
+ this.__profileId = val;
42
+ }
43
+
44
+ get eqAccId() {
45
+ return this.__eqAccId;
46
+ }
47
+
48
+ set eqAccId(val) {
49
+ this.__eqAccId = val;
50
+ }
51
+
52
+ get coAccId() {
53
+ return this.__coAccId;
54
+ }
55
+
56
+ set coAccId(val) {
57
+ this.__coAccId = val;
58
+ }
59
+
60
+ get JSession() {
61
+ return this.__JSessionId;
62
+ }
63
+
64
+ set JSession(val) {
65
+ this.__JSessionId = val;
66
+ }
67
+
68
+ get AppIdKey() {
69
+ return this.__AppIdKey;
70
+ }
71
+
72
+ set AppIdKey(val) {
73
+ this.__AppIdKey = val;
74
+ }
75
+
76
+ get Data() {
77
+ return this.__Data;
78
+ }
79
+
80
+ set Data(val) {
81
+ this.__Data = val;
82
+ }
83
+
84
+ get Prds() {
85
+ return this.__Prds;
86
+ }
87
+
88
+ set Prds(val) {
89
+ this.__Prds = val;
90
+ }
91
+
92
+ //Check file exist or not
93
+ fileExistOrNot = (path) => {
94
+ let flag = false;
95
+ try {
96
+ if (fs.existsSync(path)) {
97
+ flag = true;
98
+ }
99
+ } catch (error) {
100
+ log4js.debug("error - " + error);
101
+ }
102
+ return flag;
103
+ };
104
+
105
+ //Read file
106
+ readFile = (path) => {
107
+ let data = {};
108
+ try {
109
+ data = fs.readFileSync(path, "utf8");
110
+ } catch (err) {
111
+ log4js.debug("error - " + error);
112
+ }
113
+ return data;
114
+ };
115
+
116
+ //Write data in file
117
+ writeInFile = (path, data) => {
118
+ try {
119
+ fs.writeFileSync(path, data);
120
+ return true;
121
+ } catch (err) {
122
+ log4js.debug("error - " + error);
123
+ return false;
124
+ }
125
+ };
126
+
127
+ isEmptyNullString = (val) => {
128
+ if (val === null) {
129
+ return true;
130
+ }
131
+ if (typeof val === "string" && val.length === 0) {
132
+ return true;
133
+ }
134
+
135
+ return false;
136
+ };
137
+
138
+ getProductsAndExchange = (prds) => {
139
+ let res = {
140
+ exc: [],
141
+ prd: {},
142
+ };
143
+ prds.map((item) => {
144
+ const exc = item.exc;
145
+ res.exc.push(exc);
146
+ res.prd[exc] = [];
147
+ item.prd.map((item2) => {
148
+ res.prd[exc].push(item2.prdVal);
149
+ });
150
+ });
151
+ return Object.freeze(res);
152
+ };
153
+
154
+ readSessionFile = (sessionFile) => {
155
+ let absolutePath = path.resolve(`../../${sessionFile}`);
156
+ let data = fs.readFileSync(absolutePath, 'utf-8')
157
+ return JSON.parse(data);
158
+ }
159
+
160
+ getExchangesFromSession = (sessionFile) => {
161
+ let exchanges = []
162
+ let loginData = this.readSessionFile(sessionFile)
163
+ loginData.data.data.lgnData.prds.forEach(item => {
164
+ exchanges.push(item.exc)
165
+ });
166
+ return exchanges;
167
+ }
168
+
169
+ getValidProductCode = (sessionFile, userExchange, userProductCode) => {
170
+ let prdVal
171
+ //check if user exchange exist in session file
172
+ if (!this.getExchangesFromSession(sessionFile).includes(userExchange))
173
+ throw new Error('Invalid Exchange Passed')
174
+
175
+ let loginData = this.readSessionFile(sessionFile)
176
+
177
+ loginData.data.data.lgnData.prds.forEach(item => {
178
+ if (item.exc == userExchange) {
179
+ item.prd.forEach(x => {
180
+ if (x.prdVal == userProductCode) {
181
+ console.log(x.prdVal)
182
+ prdVal = x.prdVal
183
+ }
184
+
185
+ if (this.productCodeMap[userProductCode] === undefined) {
186
+ throw new Error('Product Code Does not exists')
187
+ }
188
+ if(prdVal === undefined)
189
+ prdVal = this.productCodeMap[userProductCode]
190
+ })
191
+ }
192
+ });
193
+ return prdVal;
194
+ }
195
+
196
+ productCodeMap = {
197
+ 'B': 'BO',
198
+ 'C': 'CNC',
199
+ 'F': 'MTF',
200
+ 'H': 'CO',
201
+ 'I': 'MIS',
202
+ 'M': 'NRML',
203
+ 'BO': 'B',
204
+ 'CNC': 'C',
205
+ 'MTF': 'F',
206
+ 'CO': 'H',
207
+ 'MIS': 'I',
208
+ 'NRML': 'M'
209
+ }
210
+
211
+ getAlternateActionName = (actionString) => {
212
+ let alternateExchange = ""
213
+ if (actionString.toUpperCase() == "BUY") {
214
+ alternateExchange = "B"
215
+ }else if (actionString.toUpperCase() == "SELL") {
216
+ alternateExchange = "S"
217
+ }
218
+ return alternateExchange;
219
+ }
220
+ }
221
+ module.exports = __Constants;