storemw-core-api 1.0.126 → 1.0.128
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/dist/controllers/user/userController.js +31 -11
- package/dist/controllers/user/userController.js.map +1 -1
- package/dist/models/user/UserModel.d.ts +24 -2
- package/dist/schema/payload/account/schemaAccount.d.ts +34 -7
- package/dist/schema/payload/user/schemaUser.d.ts +18 -3
- package/dist/schema/payload/user/schemaUser.js +11 -1
- package/dist/schema/payload/user/schemaUser.js.map +1 -1
- package/dist/schema/payload/user/schemaUserAdministrator.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserAgent.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserCustomer.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserDriver.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserMember.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserOperator.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserRetailer.d.ts +68 -14
- package/dist/schema/payload/user/schemaUserWorker.d.ts +68 -14
- package/dist/services/user/UserService.d.ts +18 -20
- package/dist/services/user/UserService.js +65 -7
- package/dist/services/user/UserService.js.map +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +2 -0
|
@@ -71,7 +71,10 @@ const createUser = async (req, res, next) => {
|
|
|
71
71
|
password: values.password,
|
|
72
72
|
firstname: values.firstname,
|
|
73
73
|
lastname: values.lastname,
|
|
74
|
-
contact:
|
|
74
|
+
contact: {
|
|
75
|
+
countryCode: values?.contact?.country_code ?? "",
|
|
76
|
+
phoneNumber: values?.contact?.phone_number ?? ""
|
|
77
|
+
},
|
|
75
78
|
email: values.email,
|
|
76
79
|
address: values.address ?? "",
|
|
77
80
|
status: Boolean(values.status)
|
|
@@ -84,7 +87,10 @@ const createUser = async (req, res, next) => {
|
|
|
84
87
|
loginUsername: values.username,
|
|
85
88
|
loginPassword: values.password,
|
|
86
89
|
address: values?.address ?? "",
|
|
87
|
-
contact:
|
|
90
|
+
contact: {
|
|
91
|
+
countryCode: values.contact.countryCode,
|
|
92
|
+
phoneNumber: values.contact.phoneNumber
|
|
93
|
+
},
|
|
88
94
|
email: values.email,
|
|
89
95
|
firstname: values.firstname,
|
|
90
96
|
lastname: values.lastname,
|
|
@@ -99,7 +105,8 @@ const createUser = async (req, res, next) => {
|
|
|
99
105
|
action: reqScope.action
|
|
100
106
|
},
|
|
101
107
|
payload: {
|
|
102
|
-
...getCredentialParse(reqPayload.credential)
|
|
108
|
+
...getCredentialParse(reqPayload.credential),
|
|
109
|
+
props: {}
|
|
103
110
|
}
|
|
104
111
|
});
|
|
105
112
|
let payload = {
|
|
@@ -277,7 +284,8 @@ const createUser = async (req, res, next) => {
|
|
|
277
284
|
postcode: reqPayload.member.postcode,
|
|
278
285
|
dob: reqPayload.member.dob,
|
|
279
286
|
remark: reqPayload.member.remark
|
|
280
|
-
}
|
|
287
|
+
},
|
|
288
|
+
props: {}
|
|
281
289
|
}
|
|
282
290
|
});
|
|
283
291
|
let payload = {
|
|
@@ -327,7 +335,8 @@ const createUser = async (req, res, next) => {
|
|
|
327
335
|
postcode: reqPayload.agent.postcode,
|
|
328
336
|
dob: reqPayload.agent.dob,
|
|
329
337
|
remark: reqPayload.agent.remark
|
|
330
|
-
}
|
|
338
|
+
},
|
|
339
|
+
props: {}
|
|
331
340
|
}
|
|
332
341
|
});
|
|
333
342
|
let payload = {
|
|
@@ -370,7 +379,8 @@ const createUser = async (req, res, next) => {
|
|
|
370
379
|
regNo: reqPayload.retailer.reg_no,
|
|
371
380
|
gstNo: reqPayload.retailer.gst_no,
|
|
372
381
|
remark: reqPayload.retailer.remark,
|
|
373
|
-
}
|
|
382
|
+
},
|
|
383
|
+
props: {}
|
|
374
384
|
}
|
|
375
385
|
});
|
|
376
386
|
let payload = {
|
|
@@ -417,7 +427,10 @@ const updateUser = async (req, res, next) => {
|
|
|
417
427
|
password: values.password,
|
|
418
428
|
firstname: values.firstname,
|
|
419
429
|
lastname: values.lastname,
|
|
420
|
-
contact:
|
|
430
|
+
contact: {
|
|
431
|
+
countryCode: values?.contact?.country_code ?? "",
|
|
432
|
+
phoneNumber: values?.contact?.phone_number ?? ""
|
|
433
|
+
},
|
|
421
434
|
email: values.email,
|
|
422
435
|
address: values.address ?? "",
|
|
423
436
|
status: Boolean(values.status)
|
|
@@ -431,7 +444,10 @@ const updateUser = async (req, res, next) => {
|
|
|
431
444
|
...(values?.password ? { loginPassword: values.password } : {}),
|
|
432
445
|
loginPassword: values.password,
|
|
433
446
|
address: values?.address ?? "",
|
|
434
|
-
contact:
|
|
447
|
+
contact: {
|
|
448
|
+
countryCode: values.contact.countryCode,
|
|
449
|
+
phoneNumber: values.contact.phoneNumber
|
|
450
|
+
},
|
|
435
451
|
email: values.email,
|
|
436
452
|
firstname: values.firstname,
|
|
437
453
|
lastname: values.lastname,
|
|
@@ -495,6 +511,7 @@ const updateUser = async (req, res, next) => {
|
|
|
495
511
|
payload: {
|
|
496
512
|
...getCredentialParse(reqPayload.credential),
|
|
497
513
|
operator: {},
|
|
514
|
+
props: {}
|
|
498
515
|
}
|
|
499
516
|
});
|
|
500
517
|
let payload = {
|
|
@@ -626,7 +643,8 @@ const updateUser = async (req, res, next) => {
|
|
|
626
643
|
postcode: reqPayload.member.postcode,
|
|
627
644
|
dob: reqPayload.member.dob,
|
|
628
645
|
remark: reqPayload.member.remark
|
|
629
|
-
}
|
|
646
|
+
},
|
|
647
|
+
props: {}
|
|
630
648
|
}
|
|
631
649
|
});
|
|
632
650
|
let payload = {
|
|
@@ -673,7 +691,8 @@ const updateUser = async (req, res, next) => {
|
|
|
673
691
|
postcode: reqPayload.agent.postcode,
|
|
674
692
|
dob: reqPayload.agent.dob,
|
|
675
693
|
remark: reqPayload.agent.remark
|
|
676
|
-
}
|
|
694
|
+
},
|
|
695
|
+
props: {}
|
|
677
696
|
}
|
|
678
697
|
});
|
|
679
698
|
let payload = {
|
|
@@ -715,7 +734,8 @@ const updateUser = async (req, res, next) => {
|
|
|
715
734
|
regNo: reqPayload.retailer.reg_no,
|
|
716
735
|
gstNo: reqPayload.retailer.gst_no,
|
|
717
736
|
remark: reqPayload.retailer.remark,
|
|
718
|
-
}
|
|
737
|
+
},
|
|
738
|
+
props: {}
|
|
719
739
|
}
|
|
720
740
|
});
|
|
721
741
|
let payload = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userController.js","sourceRoot":"","sources":["../../../src/controllers/user/userController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request, Response, NextFunction } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { UserService, UserType, UserCreateProps, UserServiceProps, UserUpdateProps, userTypes } from \"@/services\"\nimport {\n schemaUserCustomerCreatePayload,\n schemaUserCustomerUpdatePayload,\n schemaUserRetailerCreatePayload,\n schemaUserRetailerUpdatePayload,\n schemaUserAdministratorCreatePayload,\n schemaUserAdministratorUpdatePayload,\n schemaUserWorkerCreatePayload,\n schemaUserWorkerUpdatePayload,\n schemaUserDeletePayload,\n schemaUserOperatorCreatePayload,\n schemaUserOperatorUpdatePayload,\n schemaUserDriverCreatePayload,\n schemaUserDriverUpdatePayload,\n schemaUserMemberCreatePayload,\n schemaUserMemberUpdatePayload,\n schemaUserAgentCreatePayload,\n schemaUserAgentUpdatePayload\n} from \"@/schema/payload\";\nimport { QueryList } from \"@/schema/middleware/route\";\n// import { RequestAuthContext } from \"@/middlewares/request\";\n\nconst getRootName = (requestUserType: UserServiceProps[\"userType\"], toSingular: boolean) => {\n\n let rootName: any = ``\n\n switch (requestUserType) {\n case \"operator\": rootName = toSingular ? \"operator\" : \"operators\"; break;\n case \"administrator\": rootName = toSingular ? \"administrator\" : \"administrators\"; break;\n case \"customer\": rootName = toSingular ? \"customer\" : \"customers\"; break;\n case \"retailer\": rootName = toSingular ? \"retailer\" : \"retailers\"; break;\n case \"driver\": rootName = toSingular ? \"driver\" : \"drivers\"; break;\n case \"worker\": rootName = toSingular ? \"worker\" : \"workers\"; break;\n case \"member\": rootName = toSingular ? \"member\" : \"members\"; break;\n case \"agent\": rootName = toSingular ? \"agent\" : \"agents\"; break;\n }\n\n return rootName\n}\n\n/** user/:userType/:userId : get user */\nexport const getUser = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { userId, userType } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n const requestUserType = userType as UserServiceProps[\"userType\"];\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const data = await userService.getUser({ id: Number(userId), datatypes: requestQuery.datatypes })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(requestUserType, true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** user : create user */\nexport const createUser = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const requestUserType = req.body.scope.target as UserServiceProps[\"userType\"]\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n const getCredentialParse = (values: any) => {\n return {\n credential: {\n username: values.username,\n password: values.password,\n firstname: values.firstname,\n lastname: values.lastname,\n contact: values.contact,\n email: values.email,\n address: values.address ?? \"\",\n status: Boolean(values.status)\n }\n }\n }\n\n const getCredentialPayload = (values: any) => {\n return {\n user: {\n loginUsername: values.username,\n loginPassword: values.password,\n address: values?.address ?? \"\",\n contact: values.contact,\n email: values.email,\n firstname: values.firstname,\n lastname: values.lastname,\n status: Boolean(values.status)\n }\n }\n }\n\n if (requestUserType === \"operator\") {\n\n let request = schemaUserOperatorCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential)\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n operator: {}\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"customer\") {\n\n let request = schemaUserCustomerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n customer: {\n code: reqPayload.customer.code,\n accountCode: reqPayload.customer.account_code,\n companyName: reqPayload.customer.company_name,\n regNo: reqPayload.customer.reg_no,\n secondaryRegNo: reqPayload.customer.secondary_reg_no,\n gstNo: reqPayload.customer.gst_no,\n taxIdentificationNo: reqPayload.customer.tax_identification_no,\n taxRegistrationNo: reqPayload.customer.tax_registration_no,\n remark: reqPayload.customer.remark\n },\n props: {\n salesperson: reqPayload.props.salesperson\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n customer: {\n code: request.payload.customer.code,\n accountCode: request.payload.customer.accountCode,\n companyName: request.payload.customer.companyName,\n regNo: request.payload.customer.regNo,\n secondaryRegNo: request.payload.customer.secondaryRegNo,\n remark: request.payload.customer.remark,\n gstNo: request.payload.customer.gstNo,\n taxIdentificationNo: request.payload.customer.taxIdentificationNo,\n taxRegistrationNo: request.payload.customer.taxRegistrationNo,\n // salesperson: request.payload.props.salesperson,\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"administrator\") {\n\n let request = schemaUserAdministratorCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n administrator: {\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n administrator: {\n isOwner: false\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"worker\") {\n\n let request = schemaUserWorkerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n worker: {\n remark: request.payload.worker.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"driver\") {\n\n let request = schemaUserDriverCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"member\") {\n\n let request = schemaUserMemberCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n member: {\n companyName: reqPayload.member.company_name,\n ...(reqPayload?.member?.code ? { code: reqPayload.member.code } : {}),\n ownerUserId: reqPayload.member.owner_user_id,\n identityNo: reqPayload.member.identity_no,\n address1: reqPayload.member.address_1,\n address2: reqPayload.member.address_2,\n countryId: reqPayload.member.country_id,\n stateId: reqPayload.member.state_id,\n areaId: reqPayload.member.area_id,\n gender: reqPayload.member.gender,\n postcode: reqPayload.member.postcode,\n dob: reqPayload.member.dob,\n remark: reqPayload.member.remark\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n member: {\n address1: request.payload.member.address1 ?? \"\",\n address2: request.payload.member.address2 ?? \"\",\n areaId: request.payload.member.areaId ?? 0,\n stateId: request.payload.member.stateId ?? 0,\n countryId: request.payload.member.countryId ?? 0,\n ...(request?.payload?.member?.code ? { code: request.payload.member.code } : {}),\n companyName: request.payload.member.companyName ?? \"\",\n dob: request.payload.member.dob ?? \"\",\n gender: request.payload.member.gender ?? \"\",\n identityNo: request.payload.member.identityNo ?? \"\",\n ownerUserId: request.payload.member.ownerUserId ?? 0,\n postcode: request.payload.member.postcode ?? \"\",\n remark: request.payload.member.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"agent\") {\n\n let request = schemaUserAgentCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n agent: {\n companyName: reqPayload.agent.company_name,\n ...(reqPayload?.agent?.code ? { code: reqPayload.agent.code } : {}),\n ownerUserId: reqPayload.agent.owner_user_id,\n identityNo: reqPayload.agent.identity_no,\n address1: reqPayload.agent.address_1,\n address2: reqPayload.agent.address_2,\n countryId: reqPayload.agent.country_id,\n stateId: reqPayload.agent.state_id,\n areaId: reqPayload.agent.area_id,\n gender: reqPayload.agent.gender,\n postcode: reqPayload.agent.postcode,\n dob: reqPayload.agent.dob,\n remark: reqPayload.agent.remark\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n agent: {\n address1: request.payload.agent.address1 ?? \"\",\n address2: request.payload.agent.address2 ?? \"\",\n areaId: request.payload.agent.areaId ?? 0,\n stateId: request.payload.agent.stateId ?? 0,\n countryId: request.payload.agent.countryId ?? 0,\n ...(request?.payload?.agent?.code ? { code: request.payload.agent.code } : {}),\n companyName: request.payload.agent.companyName ?? \"\",\n dob: request.payload.agent.dob ?? \"\",\n gender: request.payload.agent.gender ?? \"\",\n identityNo: request.payload.agent.identityNo ?? \"\",\n ownerUserId: request.payload.agent.ownerUserId ?? 0,\n postcode: request.payload.agent.postcode ?? \"\",\n remark: request.payload.agent.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"retailer\") {\n\n let request = schemaUserRetailerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n retailer: {\n code: reqPayload.retailer.code,\n accountCode: reqPayload.retailer.account_code,\n companyName: reqPayload.retailer.company_name,\n regNo: reqPayload.retailer.reg_no,\n gstNo: reqPayload.retailer.gst_no,\n remark: reqPayload.retailer.remark,\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n retailer: {\n code: request.payload.retailer.code,\n accountCode: request.payload.retailer.accountCode,\n companyName: request.payload.retailer.companyName,\n regNo: request.payload.retailer.regNo,\n remark: request.payload.retailer.remark,\n gstNo: request.payload.retailer.gstNo\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n sendSuccess(res, response, `User(${requestUserType}) created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** user/:userId : update user */\nexport const updateUser = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const { userId } = req.params;\n const requestUserType = req.body.scope.target as UserServiceProps[\"userType\"]\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n const getCredentialParse = (values: any) => {\n return {\n credential: {\n username: values.username,\n password: values.password,\n firstname: values.firstname,\n lastname: values.lastname,\n contact: values.contact,\n email: values.email,\n address: values.address ?? \"\",\n status: Boolean(values.status)\n }\n }\n }\n\n const getCredentialPayload = (values: any) => {\n return {\n user: {\n loginUsername: values.username,\n ...(values?.password ? { loginPassword: values.password } : {}),\n loginPassword: values.password,\n address: values?.address ?? \"\",\n contact: values.contact,\n email: values.email,\n firstname: values.firstname,\n lastname: values.lastname,\n status: Boolean(values.status)\n }\n }\n }\n\n if (requestUserType === \"customer\") {\n\n let request = schemaUserCustomerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n customer: {\n code: reqPayload.customer.code,\n accountCode: reqPayload.customer.account_code,\n companyName: reqPayload.customer.company_name,\n regNo: reqPayload.customer.reg_no,\n secondaryRegNo: reqPayload.customer.secondary_reg_no,\n gstNo: reqPayload.customer.gst_no,\n taxIdentificationNo: reqPayload.customer.tax_identification_no,\n taxRegistrationNo: reqPayload.customer.tax_registration_no,\n remark: reqPayload.customer.remark\n },\n props: {\n salesperson: reqPayload.props.salesperson\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n customer: {\n code: request.payload.customer.code,\n accountCode: request.payload.customer.accountCode,\n companyName: request.payload.customer.companyName,\n regNo: request.payload.customer.regNo,\n secondaryRegNo: request.payload.customer.secondaryRegNo,\n remark: request.payload.customer.remark,\n gstNo: request.payload.customer.gstNo,\n taxIdentificationNo: request.payload.customer.taxIdentificationNo,\n taxRegistrationNo: request.payload.customer.taxRegistrationNo,\n // salesperson: request.payload.props.salesperson,\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"operator\") {\n\n let request = schemaUserOperatorUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n operator: {},\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n operator: {},\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"administrator\") {\n\n let request = schemaUserAdministratorUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n administrator: {},\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n administrator: {},\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"worker\") {\n\n let request = schemaUserWorkerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n worker: {\n remark: request.payload.worker.remark\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"driver\") {\n\n let request = schemaUserDriverUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"member\") {\n\n let request = schemaUserMemberUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n member: {\n companyName: reqPayload.member.company_name,\n identityNo: reqPayload.member.identity_no,\n address1: reqPayload.member.address_1,\n address2: reqPayload.member.address_2,\n countryId: reqPayload.member.country_id,\n stateId: reqPayload.member.state_id,\n areaId: reqPayload.member.area_id,\n gender: reqPayload.member.gender,\n postcode: reqPayload.member.postcode,\n dob: reqPayload.member.dob,\n remark: reqPayload.member.remark\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n member: {\n address1: request.payload.member.address1 ?? \"\",\n address2: request.payload.member.address2 ?? \"\",\n areaId: request.payload.member.areaId ?? 0,\n stateId: request.payload.member.stateId ?? 0,\n countryId: request.payload.member.countryId ?? 0,\n companyName: request.payload.member.companyName ?? \"\",\n dob: request.payload.member.dob ?? \"\",\n gender: request.payload.member.gender ?? \"\",\n identityNo: request.payload.member.identityNo ?? \"\",\n postcode: request.payload.member.postcode ?? \"\",\n remark: request.payload.member.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"agent\") {\n\n let request = schemaUserAgentUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n agent: {\n companyName: reqPayload.agent.company_name,\n identityNo: reqPayload.agent.identity_no,\n address1: reqPayload.agent.address_1,\n address2: reqPayload.agent.address_2,\n countryId: reqPayload.agent.country_id,\n stateId: reqPayload.agent.state_id,\n areaId: reqPayload.agent.area_id,\n gender: reqPayload.agent.gender,\n postcode: reqPayload.agent.postcode,\n dob: reqPayload.agent.dob,\n remark: reqPayload.agent.remark\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n agent: {\n address1: request.payload.agent.address1 ?? \"\",\n address2: request.payload.agent.address2 ?? \"\",\n areaId: request.payload.agent.areaId ?? 0,\n stateId: request.payload.agent.stateId ?? 0,\n countryId: request.payload.agent.countryId ?? 0,\n companyName: request.payload.agent.companyName ?? \"\",\n dob: request.payload.agent.dob ?? \"\",\n gender: request.payload.agent.gender ?? \"\",\n identityNo: request.payload.agent.identityNo ?? \"\",\n postcode: request.payload.agent.postcode ?? \"\",\n remark: request.payload.agent.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"retailer\") {\n\n let request = schemaUserRetailerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n retailer: {\n code: reqPayload.retailer.code,\n accountCode: reqPayload.retailer.account_code,\n companyName: reqPayload.retailer.company_name,\n regNo: reqPayload.retailer.reg_no,\n gstNo: reqPayload.retailer.gst_no,\n remark: reqPayload.retailer.remark,\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n retailer: {\n code: request.payload.retailer.code,\n accountCode: request.payload.retailer.accountCode,\n companyName: request.payload.retailer.companyName,\n regNo: request.payload.retailer.regNo,\n remark: request.payload.retailer.remark,\n gstNo: request.payload.retailer.gstNo\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n sendSuccess(res, response, `User(${requestUserType}) updated successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** users : list users */\nexport const listUsers = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestUserType = req.params.userType as UserServiceProps[\"userType\"];\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const { data, total } = await userService.listUsers({\n ...requestQuery,\n includePassword: false\n });\n\n let response = {\n [`${getRootName(requestUserType, false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** users/delete : delete users */\nexport const deleteUsers = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestUserType = req.body.scope.target as UserServiceProps[\"userType\"]\n // const requestQuery = req.query as unknown as QueryList;\n // const requestFileId = Number(req.params.fileId)\n\n const request = schemaUserDeletePayload.parse(req.body)\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const payload = {\n ids: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await userService.removeUsers(payload);\n\n return sendSuccess(res, data, \"Deleted\", getRootName(requestUserType, false));\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** user/data_types/:userType : get user data types */\nexport const getUserDataTypes = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestUserType = req.params.userType as UserServiceProps[\"userType\"];\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const data = userService.getDataTypes();\n\n let response = {\n data_types: data\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":"userController.js","sourceRoot":"","sources":["../../../src/controllers/user/userController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Request, Response, NextFunction } from \"express\";\n\nimport { getDefaultServiceProps, sendSuccess, sendError, HTTP_STATUS } from \"@/utils\"\n\nimport { UserService, UserType, UserCreateProps, UserServiceProps, UserUpdateProps, userTypes } from \"@/services\"\nimport {\n schemaUserCustomerCreatePayload,\n schemaUserCustomerUpdatePayload,\n schemaUserRetailerCreatePayload,\n schemaUserRetailerUpdatePayload,\n schemaUserAdministratorCreatePayload,\n schemaUserAdministratorUpdatePayload,\n schemaUserWorkerCreatePayload,\n schemaUserWorkerUpdatePayload,\n schemaUserDeletePayload,\n schemaUserOperatorCreatePayload,\n schemaUserOperatorUpdatePayload,\n schemaUserDriverCreatePayload,\n schemaUserDriverUpdatePayload,\n schemaUserMemberCreatePayload,\n schemaUserMemberUpdatePayload,\n schemaUserAgentCreatePayload,\n schemaUserAgentUpdatePayload\n} from \"@/schema/payload\";\nimport { QueryList } from \"@/schema/middleware/route\";\n// import { RequestAuthContext } from \"@/middlewares/request\";\n\nconst getRootName = (requestUserType: UserServiceProps[\"userType\"], toSingular: boolean) => {\n\n let rootName: any = ``\n\n switch (requestUserType) {\n case \"operator\": rootName = toSingular ? \"operator\" : \"operators\"; break;\n case \"administrator\": rootName = toSingular ? \"administrator\" : \"administrators\"; break;\n case \"customer\": rootName = toSingular ? \"customer\" : \"customers\"; break;\n case \"retailer\": rootName = toSingular ? \"retailer\" : \"retailers\"; break;\n case \"driver\": rootName = toSingular ? \"driver\" : \"drivers\"; break;\n case \"worker\": rootName = toSingular ? \"worker\" : \"workers\"; break;\n case \"member\": rootName = toSingular ? \"member\" : \"members\"; break;\n case \"agent\": rootName = toSingular ? \"agent\" : \"agents\"; break;\n }\n\n return rootName\n}\n\n/** user/:userType/:userId : get user */\nexport const getUser = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n try {\n\n const { userId, userType } = req.params;\n const requestQuery = req.query as unknown as QueryList;\n const requestUserType = userType as UserServiceProps[\"userType\"];\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const data = await userService.getUser({ id: Number(userId), datatypes: requestQuery.datatypes })\n\n return sendSuccess(res, data, \"Retrieved successfully\", getRootName(requestUserType, true));\n\n } catch (error: any) {\n next(error)\n }\n}\n\n/** user : create user */\nexport const createUser = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const requestUserType = req.body.scope.target as UserServiceProps[\"userType\"]\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n const getCredentialParse = (values: any) => {\n return {\n credential: {\n username: values.username,\n password: values.password,\n firstname: values.firstname,\n lastname: values.lastname,\n contact: {\n countryCode: values?.contact?.country_code ?? \"\",\n phoneNumber: values?.contact?.phone_number ?? \"\"\n },\n email: values.email,\n address: values.address ?? \"\",\n status: Boolean(values.status)\n }\n }\n }\n\n const getCredentialPayload = (values: any) => {\n return {\n user: {\n loginUsername: values.username,\n loginPassword: values.password,\n address: values?.address ?? \"\",\n contact: {\n countryCode: values.contact.countryCode,\n phoneNumber: values.contact.phoneNumber\n },\n email: values.email,\n firstname: values.firstname,\n lastname: values.lastname,\n status: Boolean(values.status)\n }\n }\n }\n\n if (requestUserType === \"operator\") {\n\n let request = schemaUserOperatorCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n props: {}\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n operator: {}\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"customer\") {\n\n let request = schemaUserCustomerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n customer: {\n code: reqPayload.customer.code,\n accountCode: reqPayload.customer.account_code,\n companyName: reqPayload.customer.company_name,\n regNo: reqPayload.customer.reg_no,\n secondaryRegNo: reqPayload.customer.secondary_reg_no,\n gstNo: reqPayload.customer.gst_no,\n taxIdentificationNo: reqPayload.customer.tax_identification_no,\n taxRegistrationNo: reqPayload.customer.tax_registration_no,\n remark: reqPayload.customer.remark\n },\n props: {\n salesperson: reqPayload.props.salesperson\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n customer: {\n code: request.payload.customer.code,\n accountCode: request.payload.customer.accountCode,\n companyName: request.payload.customer.companyName,\n regNo: request.payload.customer.regNo,\n secondaryRegNo: request.payload.customer.secondaryRegNo,\n remark: request.payload.customer.remark,\n gstNo: request.payload.customer.gstNo,\n taxIdentificationNo: request.payload.customer.taxIdentificationNo,\n taxRegistrationNo: request.payload.customer.taxRegistrationNo,\n // salesperson: request.payload.props.salesperson,\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"administrator\") {\n\n let request = schemaUserAdministratorCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n administrator: {\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n administrator: {\n isOwner: false\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"worker\") {\n\n let request = schemaUserWorkerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n worker: {\n remark: request.payload.worker.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"driver\") {\n\n let request = schemaUserDriverCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"member\") {\n\n let request = schemaUserMemberCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n member: {\n companyName: reqPayload.member.company_name,\n ...(reqPayload?.member?.code ? { code: reqPayload.member.code } : {}),\n ownerUserId: reqPayload.member.owner_user_id,\n identityNo: reqPayload.member.identity_no,\n address1: reqPayload.member.address_1,\n address2: reqPayload.member.address_2,\n countryId: reqPayload.member.country_id,\n stateId: reqPayload.member.state_id,\n areaId: reqPayload.member.area_id,\n gender: reqPayload.member.gender,\n postcode: reqPayload.member.postcode,\n dob: reqPayload.member.dob,\n remark: reqPayload.member.remark\n },\n props: {}\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n member: {\n address1: request.payload.member.address1 ?? \"\",\n address2: request.payload.member.address2 ?? \"\",\n areaId: request.payload.member.areaId ?? 0,\n stateId: request.payload.member.stateId ?? 0,\n countryId: request.payload.member.countryId ?? 0,\n ...(request?.payload?.member?.code ? { code: request.payload.member.code } : {}),\n companyName: request.payload.member.companyName ?? \"\",\n dob: request.payload.member.dob ?? \"\",\n gender: request.payload.member.gender ?? \"\",\n identityNo: request.payload.member.identityNo ?? \"\",\n ownerUserId: request.payload.member.ownerUserId ?? 0,\n postcode: request.payload.member.postcode ?? \"\",\n remark: request.payload.member.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"agent\") {\n\n let request = schemaUserAgentCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n agent: {\n companyName: reqPayload.agent.company_name,\n ...(reqPayload?.agent?.code ? { code: reqPayload.agent.code } : {}),\n ownerUserId: reqPayload.agent.owner_user_id,\n identityNo: reqPayload.agent.identity_no,\n address1: reqPayload.agent.address_1,\n address2: reqPayload.agent.address_2,\n countryId: reqPayload.agent.country_id,\n stateId: reqPayload.agent.state_id,\n areaId: reqPayload.agent.area_id,\n gender: reqPayload.agent.gender,\n postcode: reqPayload.agent.postcode,\n dob: reqPayload.agent.dob,\n remark: reqPayload.agent.remark\n },\n props: {}\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n agent: {\n address1: request.payload.agent.address1 ?? \"\",\n address2: request.payload.agent.address2 ?? \"\",\n areaId: request.payload.agent.areaId ?? 0,\n stateId: request.payload.agent.stateId ?? 0,\n countryId: request.payload.agent.countryId ?? 0,\n ...(request?.payload?.agent?.code ? { code: request.payload.agent.code } : {}),\n companyName: request.payload.agent.companyName ?? \"\",\n dob: request.payload.agent.dob ?? \"\",\n gender: request.payload.agent.gender ?? \"\",\n identityNo: request.payload.agent.identityNo ?? \"\",\n ownerUserId: request.payload.agent.ownerUserId ?? 0,\n postcode: request.payload.agent.postcode ?? \"\",\n remark: request.payload.agent.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n if (requestUserType === \"retailer\") {\n\n let request = schemaUserRetailerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n retailer: {\n code: reqPayload.retailer.code,\n accountCode: reqPayload.retailer.account_code,\n companyName: reqPayload.retailer.company_name,\n regNo: reqPayload.retailer.reg_no,\n gstNo: reqPayload.retailer.gst_no,\n remark: reqPayload.retailer.remark,\n },\n props: {}\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n retailer: {\n code: request.payload.retailer.code,\n accountCode: request.payload.retailer.accountCode,\n companyName: request.payload.retailer.companyName,\n regNo: request.payload.retailer.regNo,\n remark: request.payload.retailer.remark,\n gstNo: request.payload.retailer.gstNo\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)\n }\n }\n\n sendSuccess(res, response, `User(${requestUserType}) created successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** user/:userId : update user */\nexport const updateUser = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n try {\n\n const { userId } = req.params;\n const requestUserType = req.body.scope.target as UserServiceProps[\"userType\"]\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n let response: any = {}\n\n let reqScope = req.body.scope\n let reqPayload = req.body.payload\n\n const getCredentialParse = (values: any) => {\n return {\n credential: {\n username: values.username,\n password: values.password,\n firstname: values.firstname,\n lastname: values.lastname,\n contact: {\n countryCode: values?.contact?.country_code ?? \"\",\n phoneNumber: values?.contact?.phone_number ?? \"\"\n },\n email: values.email,\n address: values.address ?? \"\",\n status: Boolean(values.status)\n }\n }\n }\n\n const getCredentialPayload = (values: any) => {\n return {\n user: {\n loginUsername: values.username,\n ...(values?.password ? { loginPassword: values.password } : {}),\n loginPassword: values.password,\n address: values?.address ?? \"\",\n contact: {\n countryCode: values.contact.countryCode,\n phoneNumber: values.contact.phoneNumber\n },\n email: values.email,\n firstname: values.firstname,\n lastname: values.lastname,\n status: Boolean(values.status)\n }\n }\n }\n\n if (requestUserType === \"customer\") {\n\n let request = schemaUserCustomerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n customer: {\n code: reqPayload.customer.code,\n accountCode: reqPayload.customer.account_code,\n companyName: reqPayload.customer.company_name,\n regNo: reqPayload.customer.reg_no,\n secondaryRegNo: reqPayload.customer.secondary_reg_no,\n gstNo: reqPayload.customer.gst_no,\n taxIdentificationNo: reqPayload.customer.tax_identification_no,\n taxRegistrationNo: reqPayload.customer.tax_registration_no,\n remark: reqPayload.customer.remark\n },\n props: {\n salesperson: reqPayload.props.salesperson\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n customer: {\n code: request.payload.customer.code,\n accountCode: request.payload.customer.accountCode,\n companyName: request.payload.customer.companyName,\n regNo: request.payload.customer.regNo,\n secondaryRegNo: request.payload.customer.secondaryRegNo,\n remark: request.payload.customer.remark,\n gstNo: request.payload.customer.gstNo,\n taxIdentificationNo: request.payload.customer.taxIdentificationNo,\n taxRegistrationNo: request.payload.customer.taxRegistrationNo,\n // salesperson: request.payload.props.salesperson,\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"operator\") {\n\n let request = schemaUserOperatorUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n operator: {},\n props: {}\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n operator: {},\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"administrator\") {\n\n let request = schemaUserAdministratorUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n administrator: {},\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n administrator: {},\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"worker\") {\n\n let request = schemaUserWorkerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n worker: {\n remark: request.payload.worker.remark\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"driver\") {\n\n let request = schemaUserDriverUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n locationIds: reqPayload.props.location_ids\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.locationIds.map(i => Number(i))\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"member\") {\n\n let request = schemaUserMemberUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n member: {\n companyName: reqPayload.member.company_name,\n identityNo: reqPayload.member.identity_no,\n address1: reqPayload.member.address_1,\n address2: reqPayload.member.address_2,\n countryId: reqPayload.member.country_id,\n stateId: reqPayload.member.state_id,\n areaId: reqPayload.member.area_id,\n gender: reqPayload.member.gender,\n postcode: reqPayload.member.postcode,\n dob: reqPayload.member.dob,\n remark: reqPayload.member.remark\n },\n props: {}\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n member: {\n address1: request.payload.member.address1 ?? \"\",\n address2: request.payload.member.address2 ?? \"\",\n areaId: request.payload.member.areaId ?? 0,\n stateId: request.payload.member.stateId ?? 0,\n countryId: request.payload.member.countryId ?? 0,\n companyName: request.payload.member.companyName ?? \"\",\n dob: request.payload.member.dob ?? \"\",\n gender: request.payload.member.gender ?? \"\",\n identityNo: request.payload.member.identityNo ?? \"\",\n postcode: request.payload.member.postcode ?? \"\",\n remark: request.payload.member.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"agent\") {\n\n let request = schemaUserAgentUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n agent: {\n companyName: reqPayload.agent.company_name,\n identityNo: reqPayload.agent.identity_no,\n address1: reqPayload.agent.address_1,\n address2: reqPayload.agent.address_2,\n countryId: reqPayload.agent.country_id,\n stateId: reqPayload.agent.state_id,\n areaId: reqPayload.agent.area_id,\n gender: reqPayload.agent.gender,\n postcode: reqPayload.agent.postcode,\n dob: reqPayload.agent.dob,\n remark: reqPayload.agent.remark\n },\n props: {}\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n agent: {\n address1: request.payload.agent.address1 ?? \"\",\n address2: request.payload.agent.address2 ?? \"\",\n areaId: request.payload.agent.areaId ?? 0,\n stateId: request.payload.agent.stateId ?? 0,\n countryId: request.payload.agent.countryId ?? 0,\n companyName: request.payload.agent.companyName ?? \"\",\n dob: request.payload.agent.dob ?? \"\",\n gender: request.payload.agent.gender ?? \"\",\n identityNo: request.payload.agent.identityNo ?? \"\",\n postcode: request.payload.agent.postcode ?? \"\",\n remark: request.payload.agent.remark ?? \"\"\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n if (requestUserType === \"retailer\") {\n\n let request = schemaUserRetailerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n ...getCredentialParse(reqPayload.credential),\n retailer: {\n code: reqPayload.retailer.code,\n accountCode: reqPayload.retailer.account_code,\n companyName: reqPayload.retailer.company_name,\n regNo: reqPayload.retailer.reg_no,\n gstNo: reqPayload.retailer.gst_no,\n remark: reqPayload.retailer.remark,\n },\n props: {}\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n ...getCredentialPayload(request.payload.credential),\n retailer: {\n code: request.payload.retailer.code,\n accountCode: request.payload.retailer.accountCode,\n companyName: request.payload.retailer.companyName,\n regNo: request.payload.retailer.regNo,\n remark: request.payload.retailer.remark,\n gstNo: request.payload.retailer.gstNo\n }\n }\n }\n\n response = {\n [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)\n }\n }\n\n sendSuccess(res, response, `User(${requestUserType}) updated successfully`)\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** users : list users */\nexport const listUsers = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestUserType = req.params.userType as UserServiceProps[\"userType\"];\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const { data, total } = await userService.listUsers({\n ...requestQuery,\n includePassword: false\n });\n\n let response = {\n [`${getRootName(requestUserType, false)}`]: data,\n total,\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** users/delete : delete users */\nexport const deleteUsers = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestUserType = req.body.scope.target as UserServiceProps[\"userType\"]\n // const requestQuery = req.query as unknown as QueryList;\n // const requestFileId = Number(req.params.fileId)\n\n const request = schemaUserDeletePayload.parse(req.body)\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const payload = {\n ids: request.payload.ids.map(i => BigInt(i))\n }\n\n const data = await userService.removeUsers(payload);\n\n return sendSuccess(res, data, \"Deleted\", getRootName(requestUserType, false));\n\n } catch (error: any) {\n next(error)\n }\n};\n\n/** user/data_types/:userType : get user data types */\nexport const getUserDataTypes = async (req: Request, res: Response, next: NextFunction): Promise<any> => {\n\n try {\n\n const requestQuery = req.query as unknown as QueryList;\n const requestUserType = req.params.userType as UserServiceProps[\"userType\"];\n\n const userService = UserService({\n ...getDefaultServiceProps(req),\n userType: requestUserType\n })\n\n const data = userService.getDataTypes();\n\n let response = {\n data_types: data\n }\n\n return sendSuccess(res, response, \"Retrieved successfully\");\n\n } catch (error: any) {\n next(error)\n }\n};\n"]}
|
|
@@ -20,6 +20,8 @@ export declare const ModelUserFields: {
|
|
|
20
20
|
contact: "contact";
|
|
21
21
|
email: "email";
|
|
22
22
|
address: "address";
|
|
23
|
+
contact_country_code: "contact_country_code";
|
|
24
|
+
contact_phone_number: "contact_phone_number";
|
|
23
25
|
};
|
|
24
26
|
export type ModelUser = users;
|
|
25
27
|
export type ModelUserOmitFields = typeof primaryKey | DefaultOmitFields;
|
|
@@ -47,7 +49,7 @@ export type ModelUserListProps = {
|
|
|
47
49
|
};
|
|
48
50
|
export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
49
51
|
selectedPrisma: any;
|
|
50
|
-
primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "status" | "user_id" | "login_username" | "login_password" | "user_type" | "firstname" | "lastname" | "contact" | "email" | "address";
|
|
52
|
+
primaryKey: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "status" | "user_id" | "login_username" | "login_password" | "user_type" | "firstname" | "lastname" | "contact" | "email" | "address" | "contact_country_code" | "contact_phone_number";
|
|
51
53
|
getFields: (prefix?: string, excludeKeywords?: string[]) => Promise<{
|
|
52
54
|
name: string;
|
|
53
55
|
type: string;
|
|
@@ -72,6 +74,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
72
74
|
contact: string | null;
|
|
73
75
|
email: string | null;
|
|
74
76
|
address: string | null;
|
|
77
|
+
contact_country_code: number;
|
|
78
|
+
contact_phone_number: string | null;
|
|
75
79
|
}>;
|
|
76
80
|
createMany: ({ dataList, disableRollback, }: {
|
|
77
81
|
dataList: Omit<any, DefaultOmitFields>[];
|
|
@@ -94,6 +98,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
94
98
|
contact: string | null;
|
|
95
99
|
email: string | null;
|
|
96
100
|
address: string | null;
|
|
101
|
+
contact_country_code: number;
|
|
102
|
+
contact_phone_number: string | null;
|
|
97
103
|
}[]>;
|
|
98
104
|
get: ({ id, where, include, }: {
|
|
99
105
|
id?: number;
|
|
@@ -117,6 +123,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
117
123
|
contact: string | null;
|
|
118
124
|
email: string | null;
|
|
119
125
|
address: string | null;
|
|
126
|
+
contact_country_code: number;
|
|
127
|
+
contact_phone_number: string | null;
|
|
120
128
|
} | null>;
|
|
121
129
|
list: ({ where, orderBy, offset, limit, include }?: any) => Promise<{
|
|
122
130
|
createdatetime: Date | null;
|
|
@@ -136,12 +144,14 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
136
144
|
contact: string | null;
|
|
137
145
|
email: string | null;
|
|
138
146
|
address: string | null;
|
|
147
|
+
contact_country_code: number;
|
|
148
|
+
contact_phone_number: string | null;
|
|
139
149
|
}[]>;
|
|
140
150
|
count: ({ where }?: {
|
|
141
151
|
where?: Record<string, any>;
|
|
142
152
|
}) => Promise<number>;
|
|
143
153
|
aggregate: ({ field, operation, where, }: {
|
|
144
|
-
field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "status" | "user_id" | "login_username" | "login_password" | "user_type" | "firstname" | "lastname" | "contact" | "email" | "address";
|
|
154
|
+
field: "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "status" | "user_id" | "login_username" | "login_password" | "user_type" | "firstname" | "lastname" | "contact" | "email" | "address" | "contact_country_code" | "contact_phone_number";
|
|
145
155
|
operation?: "sum" | "avg" | "min" | "max" | "count";
|
|
146
156
|
where?: Record<string, any>;
|
|
147
157
|
}) => Promise<number>;
|
|
@@ -166,6 +176,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
166
176
|
contact: string | null;
|
|
167
177
|
email: string | null;
|
|
168
178
|
address: string | null;
|
|
179
|
+
contact_country_code: number;
|
|
180
|
+
contact_phone_number: string | null;
|
|
169
181
|
}>;
|
|
170
182
|
disableRollback?: Boolean;
|
|
171
183
|
}) => Promise<{
|
|
@@ -186,6 +198,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
186
198
|
contact: string | null;
|
|
187
199
|
email: string | null;
|
|
188
200
|
address: string | null;
|
|
201
|
+
contact_country_code: number;
|
|
202
|
+
contact_phone_number: string | null;
|
|
189
203
|
}>;
|
|
190
204
|
updateMany: ({ dataList, disableRollback, }: {
|
|
191
205
|
dataList: {
|
|
@@ -208,6 +222,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
208
222
|
contact: string | null;
|
|
209
223
|
email: string | null;
|
|
210
224
|
address: string | null;
|
|
225
|
+
contact_country_code: number;
|
|
226
|
+
contact_phone_number: string | null;
|
|
211
227
|
}>;
|
|
212
228
|
}[];
|
|
213
229
|
disableRollback?: boolean;
|
|
@@ -229,6 +245,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
229
245
|
contact: string | null;
|
|
230
246
|
email: string | null;
|
|
231
247
|
address: string | null;
|
|
248
|
+
contact_country_code: number;
|
|
249
|
+
contact_phone_number: string | null;
|
|
232
250
|
}[]>;
|
|
233
251
|
trash: ({ ids }: {
|
|
234
252
|
ids: number[];
|
|
@@ -250,6 +268,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
250
268
|
contact: string | null;
|
|
251
269
|
email: string | null;
|
|
252
270
|
address: string | null;
|
|
271
|
+
contact_country_code: number;
|
|
272
|
+
contact_phone_number: string | null;
|
|
253
273
|
}[]>;
|
|
254
274
|
remove: ({ ids, where }: {
|
|
255
275
|
ids?: number[];
|
|
@@ -272,6 +292,8 @@ export declare const UserModel: ({ ...rest }: DefaultServiceProps) => {
|
|
|
272
292
|
contact: string | null;
|
|
273
293
|
email: string | null;
|
|
274
294
|
address: string | null;
|
|
295
|
+
contact_country_code: number;
|
|
296
|
+
contact_phone_number: string | null;
|
|
275
297
|
}[]>;
|
|
276
298
|
raw: <T = any>(query: string, params?: any[]) => Promise<T[]>;
|
|
277
299
|
rawExec: (query: string, params?: any[]) => Promise<number>;
|
|
@@ -85,14 +85,26 @@ export declare const schemaAccountCreatePayload: z.ZodObject<{
|
|
|
85
85
|
password: z.ZodString;
|
|
86
86
|
firstname: z.ZodString;
|
|
87
87
|
lastname: z.ZodString;
|
|
88
|
-
contact: z.
|
|
88
|
+
contact: z.ZodObject<{
|
|
89
|
+
countryCode: z.ZodNumber;
|
|
90
|
+
phoneNumber: z.ZodString;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
countryCode: number;
|
|
93
|
+
phoneNumber: string;
|
|
94
|
+
}, {
|
|
95
|
+
countryCode: number;
|
|
96
|
+
phoneNumber: string;
|
|
97
|
+
}>;
|
|
89
98
|
address: z.ZodOptional<z.ZodString>;
|
|
90
99
|
email: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
|
|
91
100
|
status: z.ZodBoolean;
|
|
92
101
|
}, "status">, "strip", z.ZodTypeAny, {
|
|
93
102
|
firstname: string;
|
|
94
103
|
lastname: string;
|
|
95
|
-
contact:
|
|
104
|
+
contact: {
|
|
105
|
+
countryCode: number;
|
|
106
|
+
phoneNumber: string;
|
|
107
|
+
};
|
|
96
108
|
email: string;
|
|
97
109
|
username: string;
|
|
98
110
|
password: string;
|
|
@@ -100,7 +112,10 @@ export declare const schemaAccountCreatePayload: z.ZodObject<{
|
|
|
100
112
|
}, {
|
|
101
113
|
firstname: string;
|
|
102
114
|
lastname: string;
|
|
103
|
-
contact:
|
|
115
|
+
contact: {
|
|
116
|
+
countryCode: number;
|
|
117
|
+
phoneNumber: string;
|
|
118
|
+
};
|
|
104
119
|
email: string;
|
|
105
120
|
username: string;
|
|
106
121
|
password: string;
|
|
@@ -110,7 +125,10 @@ export declare const schemaAccountCreatePayload: z.ZodObject<{
|
|
|
110
125
|
administrator: {
|
|
111
126
|
firstname: string;
|
|
112
127
|
lastname: string;
|
|
113
|
-
contact:
|
|
128
|
+
contact: {
|
|
129
|
+
countryCode: number;
|
|
130
|
+
phoneNumber: string;
|
|
131
|
+
};
|
|
114
132
|
email: string;
|
|
115
133
|
username: string;
|
|
116
134
|
password: string;
|
|
@@ -138,7 +156,10 @@ export declare const schemaAccountCreatePayload: z.ZodObject<{
|
|
|
138
156
|
administrator: {
|
|
139
157
|
firstname: string;
|
|
140
158
|
lastname: string;
|
|
141
|
-
contact:
|
|
159
|
+
contact: {
|
|
160
|
+
countryCode: number;
|
|
161
|
+
phoneNumber: string;
|
|
162
|
+
};
|
|
142
163
|
email: string;
|
|
143
164
|
username: string;
|
|
144
165
|
password: string;
|
|
@@ -172,7 +193,10 @@ export declare const schemaAccountCreatePayload: z.ZodObject<{
|
|
|
172
193
|
administrator: {
|
|
173
194
|
firstname: string;
|
|
174
195
|
lastname: string;
|
|
175
|
-
contact:
|
|
196
|
+
contact: {
|
|
197
|
+
countryCode: number;
|
|
198
|
+
phoneNumber: string;
|
|
199
|
+
};
|
|
176
200
|
email: string;
|
|
177
201
|
username: string;
|
|
178
202
|
password: string;
|
|
@@ -206,7 +230,10 @@ export declare const schemaAccountCreatePayload: z.ZodObject<{
|
|
|
206
230
|
administrator: {
|
|
207
231
|
firstname: string;
|
|
208
232
|
lastname: string;
|
|
209
|
-
contact:
|
|
233
|
+
contact: {
|
|
234
|
+
countryCode: number;
|
|
235
|
+
phoneNumber: string;
|
|
236
|
+
};
|
|
210
237
|
email: string;
|
|
211
238
|
username: string;
|
|
212
239
|
password: string;
|