mobioffice-cli 1.0.0 → 1.0.1

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 (253) hide show
  1. package/{src/index.ts → lib/index.d.ts} +1 -45
  2. package/lib/models/Feed-Details-Screen.model.d.ts +6 -0
  3. package/lib/models/Feed-Details-Screen.model.js +27 -0
  4. package/lib/models/action.model.d.ts +58 -0
  5. package/lib/models/action.model.js +315 -0
  6. package/lib/models/actions/doffing.d.ts +6 -0
  7. package/lib/models/actions/doffing.js +64 -0
  8. package/lib/models/actions/folding.d.ts +7 -0
  9. package/lib/models/actions/folding.js +37 -0
  10. package/lib/models/attendance.model.d.ts +44 -0
  11. package/lib/models/attendance.model.js +446 -0
  12. package/lib/models/cicoPost.model.d.ts +9 -0
  13. package/lib/models/cicoPost.model.js +19 -0
  14. package/lib/models/company.model.d.ts +67 -0
  15. package/lib/models/company.model.js +725 -0
  16. package/lib/models/contact-us/resquest.model.d.ts +30 -0
  17. package/lib/models/contact-us/resquest.model.js +73 -0
  18. package/lib/models/crud/crud.d.ts +7 -0
  19. package/lib/models/crud/crud.js +27 -0
  20. package/lib/models/customCollection.model.d.ts +9 -0
  21. package/lib/models/customCollection.model.js +40 -0
  22. package/lib/models/customer/customer.model.d.ts +32 -0
  23. package/lib/models/customer/customer.model.js +62 -0
  24. package/lib/models/deviceChangeReq.d.ts +10 -0
  25. package/lib/models/deviceChangeReq.js +138 -0
  26. package/lib/models/dispatch.model.d.ts +14 -0
  27. package/lib/models/dispatch.model.js +93 -0
  28. package/lib/models/feed.models.d.ts +8 -0
  29. package/lib/models/feed.models.js +97 -0
  30. package/lib/models/geofence.model.d.ts +7 -0
  31. package/lib/models/geofence.model.js +61 -0
  32. package/lib/models/leaveApplicationPost.model.d.ts +12 -0
  33. package/lib/models/leaveApplicationPost.model.js +72 -0
  34. package/lib/models/license.model.d.ts +25 -0
  35. package/lib/models/license.model.js +198 -0
  36. package/lib/models/log.model.d.ts +6 -0
  37. package/{src/models/log.model.ts → lib/models/log.model.js} +11 -11
  38. package/lib/models/meeting.model.d.ts +11 -0
  39. package/lib/models/meeting.model.js +79 -0
  40. package/lib/models/meter.model.d.ts +18 -0
  41. package/lib/models/meter.model.js +54 -0
  42. package/lib/models/missingPunchPost.model.d.ts +15 -0
  43. package/lib/models/missingPunchPost.model.js +69 -0
  44. package/lib/models/offline.model.d.ts +70 -0
  45. package/lib/models/offline.model.js +831 -0
  46. package/lib/models/post.model.d.ts +38 -0
  47. package/lib/models/post.model.js +94 -0
  48. package/lib/models/printDetailsScreen.model.d.ts +6 -0
  49. package/lib/models/printDetailsScreen.model.js +27 -0
  50. package/lib/models/pushNotifications/pushNotification.model.d.ts +4 -0
  51. package/lib/models/pushNotifications/pushNotification.model.js +17 -0
  52. package/lib/models/report-actions.model.d.ts +26 -0
  53. package/lib/models/report-actions.model.js +56 -0
  54. package/lib/models/report-definition-details.model.d.ts +13 -0
  55. package/lib/models/report-definition-details.model.js +85 -0
  56. package/lib/models/report-definition.model.d.ts +23 -0
  57. package/lib/models/report-definition.model.js +26 -0
  58. package/lib/models/report-definitions-summary.model.d.ts +8 -0
  59. package/lib/models/report-definitions-summary.model.js +59 -0
  60. package/lib/models/report-detail-data.model.d.ts +46 -0
  61. package/lib/models/report-detail-data.model.js +49 -0
  62. package/lib/models/report-visibility.model.d.ts +7 -0
  63. package/lib/models/report-visibility.model.js +42 -0
  64. package/lib/models/report.model.d.ts +19 -0
  65. package/lib/models/report.model.js +138 -0
  66. package/lib/models/reportGenerator.model.d.ts +164 -0
  67. package/lib/models/reportGenerator.model.js +642 -0
  68. package/lib/models/response.model.d.ts +18 -0
  69. package/lib/models/response.model.js +30 -0
  70. package/lib/models/steps.factory.model.d.ts +172 -0
  71. package/lib/models/steps.factory.model.js +187 -0
  72. package/lib/models/storeGupShupLog.model.d.ts +6 -0
  73. package/lib/models/storeGupShupLog.model.js +51 -0
  74. package/lib/models/summary.model.d.ts +10 -0
  75. package/{src/models/summary.model.ts → lib/models/summary.model.js} +28 -27
  76. package/lib/models/tasks/sub-task-group.model.d.ts +42 -0
  77. package/lib/models/tasks/sub-task-group.model.js +154 -0
  78. package/lib/models/tasks/tags.model.d.ts +29 -0
  79. package/lib/models/tasks/tags.model.js +70 -0
  80. package/lib/models/tasks/task-group.model.d.ts +53 -0
  81. package/lib/models/tasks/task-group.model.js +156 -0
  82. package/lib/models/tasks/task.model.d.ts +163 -0
  83. package/lib/models/tasks/task.model.js +603 -0
  84. package/lib/models/tempCollection.model.d.ts +40 -0
  85. package/{src/models/tempCollection.model.ts → lib/models/tempCollection.model.js} +114 -130
  86. package/lib/models/user.model.d.ts +42 -0
  87. package/lib/models/user.model.js +272 -0
  88. package/lib/models/utility.model.d.ts +13 -0
  89. package/lib/models/utility.model.js +93 -0
  90. package/lib/models/visitorManagement/acknowledgement.model.d.ts +9 -0
  91. package/lib/models/visitorManagement/acknowledgement.model.js +55 -0
  92. package/lib/models/visitorManagement/invite.model.d.ts +32 -0
  93. package/lib/models/visitorManagement/invite.model.js +326 -0
  94. package/lib/models/visitorManagement/newIn.model.d.ts +19 -0
  95. package/lib/models/visitorManagement/newIn.model.js +67 -0
  96. package/lib/models/visitorManagement/selfServe.model.d.ts +13 -0
  97. package/lib/models/visitorManagement/selfServe.model.js +46 -0
  98. package/lib/models/worklogPost.model.d.ts +6 -0
  99. package/lib/models/worklogPost.model.js +9 -0
  100. package/lib/services/customer.d.ts +30 -0
  101. package/lib/services/customer.js +354 -0
  102. package/lib/services/meeting.d.ts +19 -0
  103. package/lib/services/meeting.js +109 -0
  104. package/package.json +4 -1
  105. package/.prettierrc +0 -4
  106. package/a.js +0 -3
  107. package/scripts/1.ts +0 -1300
  108. package/scripts/GCloudPubSub/pub-sub-config.json +0 -12
  109. package/scripts/GCloudPubSub/visitorAutoRejection.ts +0 -86
  110. package/scripts/actions/assignUsersFromOneActionToOther.ts +0 -64
  111. package/scripts/actions/assignUsersListToAction.ts +0 -81
  112. package/scripts/actions/getActionsListOfUser.ts +0 -42
  113. package/scripts/actions/getCompanyUserDetails.ts +0 -49
  114. package/scripts/actions/giveActionToUser.ts +0 -41
  115. package/scripts/actions/giveUsersToActivitySelector.ts +0 -56
  116. package/scripts/actions/groupActionsInActivitySelector.ts +0 -101
  117. package/scripts/actions/modifySummaryReportDB.ts +0 -42
  118. package/scripts/actions/setUrlToActionStep.ts +0 -18
  119. package/scripts/actions/syncMySqlAttendanceDBWithFirebase.ts +0 -93
  120. package/scripts/actions/syncMySqlMeetingsDBWithFirebase.ts +0 -103
  121. package/scripts/actions/test.ts +0 -29
  122. package/scripts/actions/transferFeedsOldIdToNew.ts +0 -40
  123. package/scripts/actions/transformUserIntoManager.ts +0 -89
  124. package/scripts/argvConfig.js +0 -9
  125. package/scripts/backUpData/testCode.ts +0 -131
  126. package/scripts/benaraScripts/addWorkAreaMap.ts +0 -46
  127. package/scripts/benaraScripts/add_customers.ts +0 -26
  128. package/scripts/benaraScripts/add_customers_contact.ts +0 -27
  129. package/scripts/benaraScripts/add_empty_work_area.ts +0 -17
  130. package/scripts/benaraScripts/assignManagers.ts +0 -35
  131. package/scripts/benaraScripts/changeCheckInFlag.ts +0 -45
  132. package/scripts/benaraScripts/createCustomerContactsList.ts +0 -170
  133. package/scripts/benaraScripts/createUserByDeletingOldUser.ts +0 -70
  134. package/scripts/benaraScripts/createUsersAreaMapCollection.ts +0 -23
  135. package/scripts/benaraScripts/createWorkAreaMap.ts +0 -24
  136. package/scripts/benaraScripts/mapWorkAreasToUsers.ts +0 -112
  137. package/scripts/companies_data.json +0 -2496
  138. package/scripts/create_or_update_users.ts +0 -31
  139. package/scripts/csvToJson/csvToJson.ts +0 -90
  140. package/scripts/csvToJson/users.json +0 -3896
  141. package/scripts/db.js +0 -27
  142. package/scripts/db.json +0 -13
  143. package/scripts/dbMySql.ts +0 -63
  144. package/scripts/delete_action_steps.ts +0 -11
  145. package/scripts/delete_user.ts +0 -71
  146. package/scripts/dev_companies_data.json +0 -613
  147. package/scripts/enroll.xlsx +0 -0
  148. package/scripts/export_users.ts +0 -72
  149. package/scripts/files/visitorManagementFiles/displayScreen.json +0 -70
  150. package/scripts/files/visitorManagementFiles/init_report_visibility.ts +0 -79
  151. package/scripts/firebaseConfig.js +0 -12
  152. package/scripts/firebaseDocs/deleteIncommingCollection.ts +0 -47
  153. package/scripts/firebaseDocs/updateDoc.ts +0 -43
  154. package/scripts/getActionDataIntoJSON/getActionData.ts +0 -68
  155. package/scripts/get_attendance_by_any_date.ts +0 -14
  156. package/scripts/get_attendance_by_month.ts +0 -12
  157. package/scripts/get_attendance_monthly_by_team.ts +0 -11
  158. package/scripts/get_daily_report.ts +0 -10
  159. package/scripts/get_mangers.ts +0 -13
  160. package/scripts/grant_user_license.ts +0 -18
  161. package/scripts/init_CustomCollection.ts +0 -16
  162. package/scripts/init_action_steps.ts +0 -28
  163. package/scripts/init_actions.ts +0 -31
  164. package/scripts/init_company.ts +0 -18
  165. package/scripts/init_customer_mysql.ts +0 -12
  166. package/scripts/init_feed.ts +0 -4
  167. package/scripts/init_feed_details_screen.ts +0 -14
  168. package/scripts/init_geofence.ts +0 -26
  169. package/scripts/init_print_details_screen.ts +0 -14
  170. package/scripts/init_report_actions.ts +0 -24
  171. package/scripts/init_report_definition_detail.ts +0 -26
  172. package/scripts/init_report_definition_summary.ts +0 -16
  173. package/scripts/init_report_visibility.ts +0 -46
  174. package/scripts/init_user_customcollection.ts +0 -16
  175. package/scripts/json/action.json +0 -21
  176. package/scripts/json/company.json +0 -24
  177. package/scripts/json/report-action.json +0 -13
  178. package/scripts/json/report-def-deet.json +0 -43
  179. package/scripts/json/resp.json +0 -784
  180. package/scripts/json/steps.json +0 -24
  181. package/scripts/json/test.ts +0 -49
  182. package/scripts/mysqlConfig.ts +0 -9
  183. package/scripts/revoke_or_extend_license.ts +0 -14
  184. package/scripts/stream.js +0 -4
  185. package/scripts/testing1.ts +0 -35
  186. package/scripts/update/doc.json +0 -20
  187. package/scripts/update/getDocByPath.ts +0 -34
  188. package/scripts/update/updateDocByPath.ts +0 -47
  189. package/scripts/update/updateUsersOfCompanies.ts +0 -58
  190. package/scripts/update_actions.ts +0 -19
  191. package/scripts/update_actions_steps.ts +0 -19
  192. package/scripts/update_company.ts +0 -19
  193. package/scripts/update_geofence.ts +0 -20
  194. package/scripts/update_managers.ts +0 -16
  195. package/scripts/visitorMgmt/createArea.ts +0 -68
  196. package/scripts/visitorMgmt/createArea.txt +0 -3
  197. package/scripts/visitorMgmt/createVisitorPathInstructionDocs.ts +0 -130
  198. package/scripts/visitorMgmt/createVisitorPathInstructionDocs.txt +0 -18
  199. package/scripts/visitorMgmt/encryptDateString.ts +0 -71
  200. package/scripts/visitorMgmt/makeHostsManagersOfEachOther.ts +0 -117
  201. package/scripts/whatsapp_gupshup/sendMessage.ts +0 -97
  202. package/src/models/Feed-Details-Screen.model.ts +0 -29
  203. package/src/models/action.model.ts +0 -355
  204. package/src/models/actions/doffing.ts +0 -71
  205. package/src/models/actions/folding.ts +0 -39
  206. package/src/models/attendance.model.ts +0 -615
  207. package/src/models/cicoPost.model.ts +0 -20
  208. package/src/models/company.model.ts +0 -975
  209. package/src/models/contact-us/resquest.model.ts +0 -87
  210. package/src/models/crud/crud.ts +0 -30
  211. package/src/models/customCollection.model.ts +0 -47
  212. package/src/models/customer/customer.model.ts +0 -85
  213. package/src/models/deviceChangeReq.ts +0 -150
  214. package/src/models/dispatch.model.ts +0 -99
  215. package/src/models/feed.models.ts +0 -104
  216. package/src/models/geofence.model.ts +0 -61
  217. package/src/models/leaveApplicationPost.model.ts +0 -79
  218. package/src/models/license.model.ts +0 -215
  219. package/src/models/meeting.model.ts +0 -80
  220. package/src/models/meter.model.ts +0 -62
  221. package/src/models/missingPunchPost.model.ts +0 -84
  222. package/src/models/offline.model.ts +0 -1133
  223. package/src/models/post.model.ts +0 -105
  224. package/src/models/printDetailsScreen.model.ts +0 -30
  225. package/src/models/pushNotifications/pushNotification.model.ts +0 -17
  226. package/src/models/report-actions.model.ts +0 -57
  227. package/src/models/report-definition-details.model.ts +0 -89
  228. package/src/models/report-definition.model.ts +0 -26
  229. package/src/models/report-definitions-summary.model.ts +0 -59
  230. package/src/models/report-detail-data.model.ts +0 -49
  231. package/src/models/report-visibility.model.ts +0 -44
  232. package/src/models/report.model.ts +0 -179
  233. package/src/models/reportGenerator.model.ts +0 -883
  234. package/src/models/response.model.ts +0 -31
  235. package/src/models/steps.factory.model.ts +0 -195
  236. package/src/models/storeGupShupLog.model.ts +0 -49
  237. package/src/models/tasks/sub-task-group.model.ts +0 -173
  238. package/src/models/tasks/tags.model.ts +0 -113
  239. package/src/models/tasks/task-group.model.ts +0 -172
  240. package/src/models/tasks/task.model.ts +0 -681
  241. package/src/models/user.model.ts +0 -319
  242. package/src/models/utility.model.ts +0 -100
  243. package/src/models/visitorManagement/acknowledgement.model.ts +0 -71
  244. package/src/models/visitorManagement/invite.model.ts +0 -406
  245. package/src/models/visitorManagement/newIn.model.ts +0 -82
  246. package/src/models/visitorManagement/selfServe.model.ts +0 -58
  247. package/src/models/worklogPost.model.ts +0 -8
  248. package/src/services/customer.ts +0 -382
  249. package/src/services/meeting.ts +0 -123
  250. package/test/1.ts +0 -13
  251. package/test/db.js +0 -19
  252. package/test/firebaseConfig.js +0 -1
  253. package/tsconfig.json +0 -16
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CustomerServices = void 0;
7
+ const company_model_1 = require("../models/company.model");
8
+ const customCollection_model_1 = require("../models/customCollection.model");
9
+ const customer_model_1 = require("../models/customer/customer.model");
10
+ const offline_model_1 = require("../models/offline.model");
11
+ const response_model_1 = require("../models/response.model");
12
+ const user_model_1 = require("../models/user.model");
13
+ const fs_1 = require("fs");
14
+ const crud_1 = __importDefault(require("../models/crud/crud"));
15
+ class CustomerServices {
16
+ static async createCustomer(firestore, connection, arrayUnion, customerNUserInfo) {
17
+ const curdService = new crud_1.default(connection);
18
+ try {
19
+ const companyId = customerNUserInfo.companyId;
20
+ const userId = customerNUserInfo.userId;
21
+ const customerObj = await this.createObjForAddingCustomer(customerNUserInfo.extra.extraData);
22
+ const objectToSave = JSON.parse(JSON.stringify(customerObj));
23
+ objectToSave.id = customerNUserInfo.id;
24
+ let qryStr = `INSERT INTO Customers
25
+ (companyId, GSTNo, address,
26
+ city, contactName, contactNo,
27
+ customerName, state, zipcode)
28
+ VALUES
29
+ ("${companyId}", "${objectToSave.GSTNo}",
30
+ "${objectToSave.address}", "${objectToSave.city}",
31
+ "${objectToSave.contactName}", "${objectToSave.contactNo}",
32
+ "${objectToSave.customerName}", "${objectToSave.state}",
33
+ "${objectToSave.zipcode}")`;
34
+ const insertRes = await curdService.query(qryStr);
35
+ const customerId = insertRes.insertId;
36
+ const contactInfo = {
37
+ customerId: customerId,
38
+ contactName: objectToSave.contactName,
39
+ contactNo: objectToSave.contactNo,
40
+ designation: null,
41
+ alternateContactNo: null
42
+ };
43
+ const infoToSave = JSON.parse(JSON.stringify(contactInfo));
44
+ await this.saveContactInfoToDB(connection, infoToSave);
45
+ console.log(objectToSave.customerName);
46
+ let isWorkAreaDocPresent = false;
47
+ const workAreaDoc = await firestore.collection("CustomCollections")
48
+ .doc(companyId)
49
+ .collection("Users")
50
+ .doc(userId)
51
+ .get();
52
+ if (workAreaDoc.exists) {
53
+ isWorkAreaDocPresent = true;
54
+ }
55
+ if (isWorkAreaDocPresent) {
56
+ await firestore.collection("CustomCollections")
57
+ .doc(companyId)
58
+ .collection("Users")
59
+ .doc(userId)
60
+ .update({ workAreas: arrayUnion(objectToSave.city) });
61
+ }
62
+ else {
63
+ await firestore.collection("CustomCollections")
64
+ .doc(companyId)
65
+ .collection("Users")
66
+ .doc(userId)
67
+ .set({
68
+ id: userId,
69
+ workAreas: [objectToSave.city]
70
+ });
71
+ }
72
+ const userInfo = await user_model_1.User.getUserInfoById(firestore, userId, companyId);
73
+ const customerCardObj = await this.createCustomerCard(customerNUserInfo, userInfo);
74
+ const userRef = offline_model_1.Offline.createRefForUser(firestore, companyId, userId);
75
+ customerCardObj.id = userRef.id;
76
+ await userRef.set(customerCardObj);
77
+ await offline_model_1.Offline.sendFeedToManagers(firestore, companyId, userId, customerCardObj);
78
+ await offline_model_1.Offline.deleteInfoFromIncoming(firestore, customerNUserInfo.id);
79
+ console.log("Doc deleted from incoming collection");
80
+ return new response_model_1.HttpResponseAndErrorHandling(200, "Created", null, null).getSuccessResponse();
81
+ }
82
+ catch (error) {
83
+ console.log(error);
84
+ return new response_model_1.HttpResponseAndErrorHandling(400, "Failed", null, 400);
85
+ }
86
+ }
87
+ static async createCustomerCard(customerInfo, userInfo) {
88
+ const incomingExtraData = customerInfo.extra.extraData;
89
+ const customerName = incomingExtraData.customerName;
90
+ const userName = userInfo.name;
91
+ const description = `${customerName} added by ${userName}`;
92
+ const customerCard = { ...customerInfo };
93
+ const time = customerInfo.createdAt;
94
+ const address = incomingExtraData.address;
95
+ const city = incomingExtraData.city;
96
+ const zipcode = incomingExtraData.zipcode;
97
+ const contactNo = incomingExtraData.contactNo;
98
+ const state = incomingExtraData.state;
99
+ const gstNo = incomingExtraData.gstNo;
100
+ const contactName = incomingExtraData.contactName;
101
+ const extraData = {
102
+ "customerName": customerName,
103
+ "userName": userName,
104
+ "time": time,
105
+ "date": new Date(time).toLocaleDateString(),
106
+ "address": address,
107
+ "city": city,
108
+ "zipcode": zipcode,
109
+ "contactNo": contactNo,
110
+ "state": state,
111
+ "gstNo": gstNo,
112
+ "contactName": contactName
113
+ };
114
+ delete customerCard.extra;
115
+ customerCard.extraData = extraData;
116
+ customerCard.description = description;
117
+ customerCard.actionType = "worklog";
118
+ return customerCard;
119
+ }
120
+ static async createObjForAddingCustomer(extraData) {
121
+ const customer = new customer_model_1.Customer(extraData.customerName, extraData.address, extraData.zipcode, extraData.city.toUpperCase(), extraData.state.toUpperCase(), extraData.gstNo, extraData.contactName, extraData.contactNo);
122
+ return customer;
123
+ }
124
+ static async addCustomerContact(firestore, connection, customerContactNUserInfo) {
125
+ try {
126
+ const companyId = customerContactNUserInfo.companyId;
127
+ const userId = customerContactNUserInfo.userId;
128
+ const customerId = customerContactNUserInfo.extra.extraData.customerNameId;
129
+ console.log(companyId, customerId);
130
+ let contactObj = await this.createObjForContact(customerContactNUserInfo.extra.extraData);
131
+ const contactObjToSave = JSON.parse(JSON.stringify(contactObj));
132
+ await this.saveContactInfoToDB(connection, contactObjToSave);
133
+ const userInfo = await user_model_1.User.getUserInfoById(firestore, userId, companyId);
134
+ const contactCard = await this.createContactCard(customerContactNUserInfo, userInfo);
135
+ const userRef = offline_model_1.Offline.createRefForUser(firestore, companyId, userId);
136
+ contactCard.id = userRef.id;
137
+ await userRef.set(contactCard);
138
+ await offline_model_1.Offline.sendFeedToManagers(firestore, companyId, userId, contactCard);
139
+ await offline_model_1.Offline.deleteInfoFromIncoming(firestore, customerContactNUserInfo.id);
140
+ console.log("Doc deleted from incoming collection");
141
+ return new response_model_1.HttpResponseAndErrorHandling(200, "Success", null, null);
142
+ }
143
+ catch (error) {
144
+ return new response_model_1.HttpResponseAndErrorHandling(400, error, null, null);
145
+ }
146
+ }
147
+ static async saveContactInfoToDB(connection, contactInfo) {
148
+ const curdService = new crud_1.default(connection);
149
+ try {
150
+ let qryStr = `INSERT INTO Contacts
151
+ (customerId, alternateContactNo,
152
+ contactName, contactNo,
153
+ designation)
154
+ VALUES ("${contactInfo.customerId}",
155
+ "${contactInfo.alternateContactNo}",
156
+ "${contactInfo.contactName}",
157
+ "${contactInfo.contactNo}",
158
+ "${contactInfo.designation}")`;
159
+ const result = await curdService.query(qryStr);
160
+ console.log(result);
161
+ }
162
+ catch (error) {
163
+ console.error(error);
164
+ }
165
+ }
166
+ static async createContactCard(contactInfo, userInfo) {
167
+ const incomingExtraData = contactInfo.extra.extraData;
168
+ const customerName = incomingExtraData.customerName;
169
+ const contactName = incomingExtraData.contactName;
170
+ const contactNo = incomingExtraData.contactNo;
171
+ const designation = incomingExtraData.designation;
172
+ const userName = userInfo.name;
173
+ const description = `${contactName} of ${customerName} added by ${userName}`;
174
+ const contactCard = { ...contactInfo };
175
+ const time = contactInfo.createdAt;
176
+ const extraData = {
177
+ "customerName": customerName,
178
+ "userName": userName,
179
+ "time": time,
180
+ "contactName": contactName,
181
+ "contactNo": contactNo,
182
+ "designation": designation,
183
+ "date": new Date(time).toLocaleDateString(),
184
+ "alternateContactNo": incomingExtraData.alternateContactNo
185
+ };
186
+ delete contactCard.extra;
187
+ contactCard.extraData = extraData;
188
+ contactCard.description = description;
189
+ contactCard.actionType = "worklog";
190
+ return contactCard;
191
+ }
192
+ static async createObjForContact(contactInfo) {
193
+ const customerContact = new customer_model_1.CustomerContact(contactInfo.customerNameId, contactInfo.contactName, contactInfo.contactNo, contactInfo.alternateContactNo, contactInfo.designation);
194
+ return customerContact;
195
+ }
196
+ static async addCustomers(firestore, nickName, customerInfo) {
197
+ let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
198
+ const filteredCustomerInfo = {
199
+ GSTNo: customerInfo.gstNo,
200
+ address: customerInfo.address,
201
+ city: customerInfo.city,
202
+ contactName: null,
203
+ contactNo: null,
204
+ customerName: customerInfo.customerName,
205
+ state: customerInfo.state,
206
+ zipcode: customerInfo.zipcode
207
+ };
208
+ let isCustomerPresent = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerName", "==", filteredCustomerInfo.customerName).get();
209
+ isCustomerPresent.forEach(doc => console.log(doc.data()));
210
+ console.log(isCustomerPresent.empty);
211
+ if (isCustomerPresent.empty) {
212
+ let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc();
213
+ let id = customerSnapshot.id;
214
+ filteredCustomerInfo.id = id;
215
+ customerSnapshot.set(filteredCustomerInfo);
216
+ return `${id} added successfully`;
217
+ }
218
+ }
219
+ static async addCustomerContactViaCsv(firestore, nickName, customerContactInfo) {
220
+ let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
221
+ let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerId", "==", customerContactInfo.companyId).get();
222
+ let customerInfoId = customerSnapshot.docs[0].data().id;
223
+ let customerContactSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc(customerInfoId).collection("Contacts").doc();
224
+ customerContactInfo.id = customerContactSnapshot.id;
225
+ customerContactInfo.customerName = customerSnapshot.docs[0].data().customerName;
226
+ customerContactSnapshot.set(customerContactInfo);
227
+ return "Success";
228
+ }
229
+ static async addCustomerContactsViaJSON(firestore, nickName, customerContactInfo) {
230
+ let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
231
+ let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerName", "==", customerContactInfo.customerName).get();
232
+ let customerInfoId = customerSnapshot.docs[0].data().id;
233
+ let contactSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc(customerInfoId).collection("Contacts").doc();
234
+ contactSnapshot.set(customerContactInfo.contactInfoToSave);
235
+ return `${contactSnapshot.id} in ${customerContactInfo.customerName}`;
236
+ }
237
+ static async deleteCustomerContact(firestore, nickName, customerContactInfo) {
238
+ let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
239
+ let customerSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").where("customerId", "==", customerContactInfo.companyId).get();
240
+ let customerInfoId = customerSnapshot.docs[0].data().id;
241
+ let customerContactSnapshot = await firestore.collection("CustomCollections").doc(companyId).collection("Customers").doc(customerInfoId).collection("Contacts").get();
242
+ customerContactSnapshot.forEach((doc) => {
243
+ doc.ref.delete();
244
+ });
245
+ return "deleted";
246
+ }
247
+ static async getCustomer(firestore, connection, companyId, phone) {
248
+ const curdService = new crud_1.default(connection);
249
+ let userWorkAreaDoc = await customCollection_model_1.CustomCollection.getUserWorkAreaList(firestore, companyId, phone);
250
+ let userWorkAreaList = JSON.stringify(userWorkAreaDoc.workAreas).replace("[", "").replace("]", "");
251
+ let formattedCustomerList = [];
252
+ if (userWorkAreaList.length) {
253
+ try {
254
+ let qryStr = `select c.id , c.customerName , c.city from Customers as c where city in (${userWorkAreaList}) or state in (${userWorkAreaList})`;
255
+ let result = await curdService.query(qryStr);
256
+ for (let customer of result) {
257
+ formattedCustomerList.push({
258
+ id: customer.id,
259
+ label: customer.customerName + ` (${customer.city})`
260
+ });
261
+ }
262
+ }
263
+ catch (error) {
264
+ console.log(error);
265
+ }
266
+ }
267
+ return formattedCustomerList;
268
+ }
269
+ static async getCustomerContact(firestore, connection, companyId, customerId) {
270
+ const curdService = new crud_1.default(connection);
271
+ try {
272
+ let qryStr = `SELECT con.id , con.contactName FROM Contacts as con where customerId = ${customerId};`;
273
+ let result = await curdService.query(qryStr);
274
+ let formattedCustomerList = [];
275
+ for (let contact of result) {
276
+ formattedCustomerList.push({
277
+ id: contact.id,
278
+ label: contact.contactName
279
+ });
280
+ }
281
+ return formattedCustomerList;
282
+ }
283
+ catch (error) {
284
+ console.log(error);
285
+ return error;
286
+ }
287
+ }
288
+ static async insertCustomerDetails(connection) {
289
+ const curdService = new crud_1.default(connection);
290
+ try {
291
+ let path = "/home/atishae/atishae/mobiOffice_web/mobioffice-cli/scripts/benaraScripts/customerList.json";
292
+ const customerInfo = (0, fs_1.readFileSync)(path, "utf-8");
293
+ const customerList = await JSON.parse(customerInfo);
294
+ console.log(customerList.length);
295
+ let count = 0;
296
+ for (let customer of customerList) {
297
+ let qryStr = `INSERT INTO Customers (companyId, GSTNo, address, city, contactName, contactNo, customerName, state, zipcode) VALUES ("GC5BOfo2Ibma9CJ4NRpM", "${customer.GSTNo}", "${customer.address}", "${customer.city}", "${customer.contactName}", "${customer.contactNo}", "${customer.customerName}", "${customer.state}", "${customer.zipcode}")`;
298
+ await curdService.query(qryStr);
299
+ count++;
300
+ console.log(count);
301
+ }
302
+ return customerList.length;
303
+ }
304
+ catch (error) {
305
+ console.log(error);
306
+ }
307
+ }
308
+ static async insertCustomerContact(connection) {
309
+ const curdService = new crud_1.default(connection);
310
+ try {
311
+ let path = "/home/atishae/atishae/mobiOffice_web/json/benara/data/customerContacts.json";
312
+ const contactInfo = (0, fs_1.readFileSync)(path, "utf-8");
313
+ const contactList = await JSON.parse(contactInfo);
314
+ // console.log(contactList[2452])
315
+ let count = 0;
316
+ for (let contact of contactList) {
317
+ count++;
318
+ console.log(count);
319
+ let customerQry = `SELECT c.id FROM Customers as c where c.customerName = "${contact.customerName}"`;
320
+ let customerIdResult = await curdService.query(customerQry);
321
+ let qryStr = `INSERT INTO Contacts (customerId, alternateContactNo, contactName, contactNo, designation) VALUES ("${customerIdResult[0].id}", "${contact.contactInfoToSave.alternateContactNo}", "${contact.contactInfoToSave.contactName}", "${contact.contactInfoToSave.contactNo}", ${null})`;
322
+ await curdService.query(qryStr);
323
+ }
324
+ return contactList.length;
325
+ }
326
+ catch (error) {
327
+ console.log(error);
328
+ }
329
+ }
330
+ static async inertUserWorkArea(connection) {
331
+ try {
332
+ let path = "/home/atishae/atishae/mobiOffice_web/json/benara/data/userworkarea.json";
333
+ const workAreaInfo = (0, fs_1.readFileSync)(path, "utf-8");
334
+ const workAreaList = await JSON.parse(workAreaInfo);
335
+ let count = 0;
336
+ for (let userArea of workAreaList) {
337
+ if (userArea.id == "47RfcTj4d2PBailEJvVpbgQ9EAf1") {
338
+ let workArea = JSON.stringify(userArea.workAreas).replace("[", "").replace("]", "");
339
+ console.log(workArea);
340
+ break;
341
+ }
342
+ count++;
343
+ console.log(count);
344
+ // let qryStr = `INSERT INTO WorkArea (companyId, userId, workArea) VALUES ("GC5BOfo2Ibma9CJ4NRpM", "${userArea.id}", "${userArea.workAreas}",)`
345
+ // await connection.execute(qryStr)
346
+ }
347
+ return workAreaList.length;
348
+ }
349
+ catch (error) {
350
+ console.log(error);
351
+ }
352
+ }
353
+ }
354
+ exports.CustomerServices = CustomerServices;
@@ -0,0 +1,19 @@
1
+ import * as admin from "firebase-admin";
2
+ import { MeetingSummary } from "../models/meeting.model";
3
+ import { Pool } from 'mysql2';
4
+ declare class MeetingServices {
5
+ static addMeetingInfo(firestore: admin.firestore.Firestore, meetingsDBConnection: Pool, storageRef: any, meetingInfo: any): Promise<{
6
+ statusCode: number;
7
+ message: string;
8
+ error: any;
9
+ } | {
10
+ statusCode: number;
11
+ message: string;
12
+ data: any;
13
+ }>;
14
+ static createMeetingSummary(storageRef: any, meetingInfo: any): Promise<MeetingSummary>;
15
+ static getOngoingMeetingsList(firestore: admin.firestore.Firestore, nickName: string, phone: string): Promise<admin.firestore.DocumentData[]>;
16
+ static getMeetingsListByUserId(firestore: admin.firestore.Firestore, companyId: string, actionId: string, userId: string): Promise<admin.firestore.DocumentData[]>;
17
+ static updateFeedForEndMeeting(firestore: admin.firestore.Firestore, meetingsDBConnection: Pool, companyId: string, userId: string, eventId: string, incomingDocId: string): Promise<string>;
18
+ }
19
+ export { MeetingServices };
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MeetingServices = void 0;
4
+ const action_model_1 = require("../models/action.model");
5
+ const company_model_1 = require("../models/company.model");
6
+ const feed_models_1 = require("../models/feed.models");
7
+ const meeting_model_1 = require("../models/meeting.model");
8
+ const offline_model_1 = require("../models/offline.model");
9
+ const response_model_1 = require("../models/response.model");
10
+ const user_model_1 = require("../models/user.model");
11
+ class MeetingServices {
12
+ static async addMeetingInfo(firestore, meetingsDBConnection, storageRef, meetingInfo) {
13
+ try {
14
+ let incomingDocId = meetingInfo.id;
15
+ const companyId = meetingInfo.companyId;
16
+ const createdAt = meetingInfo.createdAt;
17
+ const userId = meetingInfo.userId;
18
+ const meetingSummary = await this.createMeetingSummary(storageRef, meetingInfo);
19
+ const meetingDoc = { ...meetingInfo };
20
+ const contactName = meetingInfo.extra.extraData.contactName;
21
+ const customerName = meetingInfo.extra.extraData.customerName;
22
+ meetingDoc.extraData = meetingSummary;
23
+ delete meetingDoc.extra;
24
+ const description = `met with ${contactName} of ${customerName}`;
25
+ const meetingDocToSave = JSON.parse(JSON.stringify(meetingDoc));
26
+ meetingDocToSave.actionType = meetingInfo.extra.actionType;
27
+ meetingDocToSave.description = description;
28
+ meetingDocToSave.extraData.date = createdAt;
29
+ meetingDocToSave.extraData["Start Time"] = createdAt;
30
+ meetingDocToSave.extraData["End Time"] = null;
31
+ console.log(meetingDocToSave);
32
+ const actionId = meetingInfo.extra.actionId;
33
+ const meetingDocRef = firestore.collection("Companies")
34
+ .doc(companyId)
35
+ .collection("Actions")
36
+ .doc(actionId)
37
+ .collection("meetings")
38
+ .doc();
39
+ meetingDocToSave.eventId = meetingDocRef.id;
40
+ meetingDocToSave.id = meetingDocRef.id;
41
+ meetingDocRef.set(meetingDocToSave);
42
+ let userDetails = await user_model_1.User.getUserInfoById(firestore, userId, companyId);
43
+ let userName = userDetails?.name;
44
+ await meeting_model_1.MeetingSummary.syncReportDBFirebaseUserEntries(meetingsDBConnection, meetingDocToSave, userName);
45
+ const userRef = await offline_model_1.Offline.createRefForUser(firestore, companyId, userId);
46
+ meetingDocToSave.id = userRef.id;
47
+ await userRef.set(meetingDocToSave);
48
+ console.log("Sent feed to user");
49
+ await offline_model_1.Offline.sendFeedToManagers(firestore, companyId, userId, meetingDocToSave);
50
+ console.log("Sent feeds to managers");
51
+ await offline_model_1.Offline.deleteInfoFromIncoming(firestore, incomingDocId);
52
+ console.log("Document deleted from incoming");
53
+ return new response_model_1.HttpResponseAndErrorHandling(200, "Created", null, null).getSuccessResponse();
54
+ }
55
+ catch (error) {
56
+ console.log(error);
57
+ return new response_model_1.HttpResponseAndErrorHandling(400, "Failed", null, 400).getErrorResponse();
58
+ }
59
+ }
60
+ static async createMeetingSummary(storageRef, meetingInfo) {
61
+ try {
62
+ const actionName = meetingInfo.actionName;
63
+ const incomingExtraData = meetingInfo.extra.extraData;
64
+ const contactName = incomingExtraData.contactName;
65
+ const customerName = incomingExtraData.customerName;
66
+ const base64Img = incomingExtraData.meetingImage;
67
+ const createdAt = meetingInfo.createdAt;
68
+ const meetingImageUrl = await offline_model_1.Offline.uploadImg(storageRef, base64Img, actionName, createdAt);
69
+ const meetingSummary = new meeting_model_1.MeetingSummary(customerName, contactName, meetingImageUrl);
70
+ return meetingSummary;
71
+ }
72
+ catch (error) {
73
+ console.log(error);
74
+ throw new Error(error);
75
+ }
76
+ }
77
+ static async getOngoingMeetingsList(firestore, nickName, phone) {
78
+ let companyId = await company_model_1.Company.getCompanyIdByNickName(firestore, nickName);
79
+ let actionId = await action_model_1.Action.getActionId(firestore, companyId, "meeting");
80
+ let userId = await user_model_1.User.getUserIdByPhone(firestore, phone);
81
+ const meetingDocList = await MeetingServices.getMeetingsListByUserId(firestore, companyId, actionId, userId);
82
+ return meetingDocList;
83
+ }
84
+ static async getMeetingsListByUserId(firestore, companyId, actionId, userId) {
85
+ const meetingDocRef = await firestore.collection("Companies")
86
+ .doc(companyId)
87
+ .collection("Actions")
88
+ .doc(actionId)
89
+ .collection("meetings")
90
+ .where("userId", "==", userId)
91
+ .get();
92
+ return meetingDocRef.docs.map((doc) => {
93
+ return doc.data();
94
+ });
95
+ }
96
+ static async updateFeedForEndMeeting(firestore, meetingsDBConnection, companyId, userId, eventId, incomingDocId) {
97
+ let time = new Date().getTime();
98
+ await action_model_1.Action.updateMeetingStatus(firestore, companyId, userId, eventId, time);
99
+ await meeting_model_1.MeetingSummary.updateEndTimeToReportDB(meetingsDBConnection, eventId, time);
100
+ let managersList = await offline_model_1.Offline.getUserManagersList(firestore, companyId, userId);
101
+ for (let manager of managersList) {
102
+ await feed_models_1.Feeds.updateEndMeetingsTimeInFeeds(firestore, manager, companyId, eventId, time);
103
+ }
104
+ await feed_models_1.Feeds.updateEndMeetingsTimeInFeeds(firestore, userId, companyId, eventId, time);
105
+ await offline_model_1.Offline.deleteInfoFromIncoming(firestore, incomingDocId);
106
+ return "success";
107
+ }
108
+ }
109
+ exports.MeetingServices = MeetingServices;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobioffice-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "mobioffice sdk npm ",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -12,6 +12,9 @@
12
12
  "type": "git",
13
13
  "url": "git+https://github.com/mj6uc/mobioffice-cli.git"
14
14
  },
15
+ "files": [
16
+ "lib"
17
+ ],
15
18
  "keywords": [
16
19
  "mobioffice"
17
20
  ],
package/.prettierrc DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "tabWidth": 2,
3
- "useTabs": false
4
- }
package/a.js DELETED
@@ -1,3 +0,0 @@
1
- import { Company } from "./lib/index";
2
-
3
- console.log(Company);