storemw-core-api 1.0.78 → 1.0.80

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 (31) hide show
  1. package/dist/controllers/user/userController.js +140 -0
  2. package/dist/controllers/user/userController.js.map +1 -1
  3. package/dist/models/account/AccountModel.d.ts +13 -13
  4. package/dist/models/index.d.ts +2 -0
  5. package/dist/models/index.js +5 -2
  6. package/dist/models/index.js.map +1 -1
  7. package/dist/models/user/MemberModel.d.ts +355 -0
  8. package/dist/models/user/MemberModel.js +13 -0
  9. package/dist/models/user/MemberModel.js.map +1 -0
  10. package/dist/schema/payload/index.d.ts +2 -0
  11. package/dist/schema/payload/index.js +5 -2
  12. package/dist/schema/payload/index.js.map +1 -1
  13. package/dist/schema/payload/user/schemaUserMember.d.ts +450 -0
  14. package/dist/schema/payload/user/schemaUserMember.js +45 -0
  15. package/dist/schema/payload/user/schemaUserMember.js.map +1 -0
  16. package/dist/services/injection_field/InjectionFieldService.js +1 -1
  17. package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
  18. package/dist/services/region/AreaService.js +2 -1
  19. package/dist/services/region/AreaService.js.map +1 -1
  20. package/dist/services/region/CountryService.js +2 -1
  21. package/dist/services/region/CountryService.js.map +1 -1
  22. package/dist/services/region/StateService.js +2 -1
  23. package/dist/services/region/StateService.js.map +1 -1
  24. package/dist/services/user/MemberService.d.ts +133 -0
  25. package/dist/services/user/MemberService.js +289 -0
  26. package/dist/services/user/MemberService.js.map +1 -0
  27. package/dist/services/user/UserService.d.ts +5 -0
  28. package/dist/services/user/UserService.js +55 -0
  29. package/dist/services/user/UserService.js.map +1 -1
  30. package/package.json +1 -1
  31. package/prisma/schema.prisma +29 -29
@@ -25,6 +25,9 @@ const getRootName = (requestUserType, toSingular) => {
25
25
  case "worker":
26
26
  rootName = toSingular ? "worker" : "workers";
27
27
  break;
28
+ case "member":
29
+ rootName = toSingular ? "member" : "members";
30
+ break;
28
31
  }
29
32
  return rootName;
30
33
  };
@@ -308,6 +311,74 @@ const createUser = async (req, res, next) => {
308
311
  [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)
309
312
  };
310
313
  }
314
+ if (requestUserType === "member") {
315
+ let request = payload_1.schemaUserMemberCreatePayload.parse({
316
+ scope: {
317
+ target: reqScope.target,
318
+ action: reqScope.action
319
+ },
320
+ payload: {
321
+ credential: {
322
+ username: reqPayload.credential.username,
323
+ password: reqPayload.credential.password,
324
+ firstname: reqPayload.credential.firstname,
325
+ lastname: reqPayload.credential.lastname,
326
+ contact: reqPayload.credential.contact,
327
+ email: reqPayload.credential.email,
328
+ address: reqPayload.credential.address,
329
+ status: reqPayload.credential.status
330
+ },
331
+ member: {
332
+ companyName: reqPayload.member.company_name,
333
+ code: reqPayload.member.code,
334
+ ownerUserId: reqPayload.member.owner_user_id,
335
+ identityNo: reqPayload.member.identity_no,
336
+ address1: reqPayload.member.address_1,
337
+ address2: reqPayload.member.address_2,
338
+ countryId: reqPayload.member.country_id,
339
+ stateId: reqPayload.member.state_id,
340
+ areaId: reqPayload.member.area_id,
341
+ gender: reqPayload.member.gender,
342
+ postcode: reqPayload.member.postcode,
343
+ dob: reqPayload.member.dob,
344
+ remark: reqPayload.member.remark
345
+ }
346
+ }
347
+ });
348
+ let payload = {
349
+ userType: requestUserType,
350
+ data: {
351
+ user: {
352
+ loginUsername: request.payload.credential.username,
353
+ loginPassword: request.payload.credential.password,
354
+ address: request?.payload?.credential?.address ?? "",
355
+ contact: request.payload.credential.contact,
356
+ email: request.payload.credential.email,
357
+ firstname: request.payload.credential.firstname,
358
+ lastname: request.payload.credential.lastname,
359
+ status: request.payload.credential.status === 1
360
+ },
361
+ member: {
362
+ address1: request.payload.member.address1 ?? "",
363
+ address2: request.payload.member.address2 ?? "",
364
+ areaId: request.payload.member.areaId ?? 0,
365
+ stateId: request.payload.member.stateId ?? 0,
366
+ countryId: request.payload.member.countryId ?? 0,
367
+ code: request.payload.member.code ?? "",
368
+ companyName: request.payload.member.companyName ?? "",
369
+ dob: request.payload.member.dob ?? "",
370
+ gender: request.payload.member.gender ?? "",
371
+ identityNo: request.payload.member.identityNo ?? "",
372
+ ownerUserId: request.payload.member.ownerUserId ?? 0,
373
+ postcode: request.payload.member.postcode ?? "",
374
+ remark: request.payload.member.remark ?? ""
375
+ }
376
+ }
377
+ };
378
+ response = {
379
+ [`${getRootName(requestUserType, true)}`]: await userService.createUser(payload)
380
+ };
381
+ }
311
382
  if (requestUserType === "retailer") {
312
383
  let request = payload_1.schemaUserRetailerCreatePayload.parse({
313
384
  scope: {
@@ -638,6 +709,75 @@ const updateUser = async (req, res, next) => {
638
709
  [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)
639
710
  };
640
711
  }
712
+ if (requestUserType === "member") {
713
+ let request = payload_1.schemaUserMemberUpdatePayload.parse({
714
+ scope: {
715
+ target: reqScope.target,
716
+ action: reqScope.action
717
+ },
718
+ payload: {
719
+ credential: {
720
+ username: reqPayload.credential.username,
721
+ password: reqPayload.credential.password,
722
+ firstname: reqPayload.credential.firstname,
723
+ lastname: reqPayload.credential.lastname,
724
+ contact: reqPayload.credential.contact,
725
+ email: reqPayload.credential.email,
726
+ address: reqPayload.credential.address,
727
+ status: reqPayload.credential.status
728
+ },
729
+ member: {
730
+ companyName: reqPayload.member.company_name,
731
+ code: reqPayload.member.code,
732
+ ownerUserId: reqPayload.member.owner_user_id,
733
+ identityNo: reqPayload.member.identity_no,
734
+ address1: reqPayload.member.address_1,
735
+ address2: reqPayload.member.address_2,
736
+ countryId: reqPayload.member.country_id,
737
+ stateId: reqPayload.member.state_id,
738
+ areaId: reqPayload.member.area_id,
739
+ gender: reqPayload.member.gender,
740
+ postcode: reqPayload.member.postcode,
741
+ dob: reqPayload.member.dob,
742
+ remark: reqPayload.member.remark
743
+ }
744
+ }
745
+ });
746
+ let payload = {
747
+ id: Number(userId),
748
+ userType: requestUserType,
749
+ data: {
750
+ user: {
751
+ loginUsername: request.payload.credential.username,
752
+ ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),
753
+ address: request?.payload?.credential?.address ?? "",
754
+ contact: request.payload.credential.contact,
755
+ email: request.payload.credential.email,
756
+ firstname: request.payload.credential.firstname,
757
+ lastname: request.payload.credential.lastname,
758
+ status: request.payload.credential.status === 1
759
+ },
760
+ member: {
761
+ address1: request.payload.member.address1 ?? "",
762
+ address2: request.payload.member.address2 ?? "",
763
+ areaId: request.payload.member.areaId ?? 0,
764
+ stateId: request.payload.member.stateId ?? 0,
765
+ countryId: request.payload.member.countryId ?? 0,
766
+ code: request.payload.member.code ?? "",
767
+ companyName: request.payload.member.companyName ?? "",
768
+ dob: request.payload.member.dob ?? "",
769
+ gender: request.payload.member.gender ?? "",
770
+ identityNo: request.payload.member.identityNo ?? "",
771
+ ownerUserId: request.payload.member.ownerUserId ?? 0,
772
+ postcode: request.payload.member.postcode ?? "",
773
+ remark: request.payload.member.remark ?? ""
774
+ }
775
+ }
776
+ };
777
+ response = {
778
+ [`${getRootName(requestUserType, true)}`]: await userService.updateUser(payload)
779
+ };
780
+ }
641
781
  if (requestUserType === "retailer") {
642
782
  let request = payload_1.schemaUserRetailerUpdatePayload.parse({
643
783
  scope: {
@@ -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} from \"@/schema/payload\";\nimport { QueryList } from \"@/schema/middleware/route\";\nimport { 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 }\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 if (requestUserType === \"operator\") {\n\n let request = schemaUserOperatorCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload?.credential?.address ?? \"\",\n status: reqPayload.credential.status\n },\n administrator: {\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n administrator: {},\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n worker: {\n remark: request.payload.worker.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.location_id.map(i => Number(i))\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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\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 if (requestUserType === \"customer\") {\n\n let request = schemaUserCustomerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address ?? \"\",\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request.payload.credential.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n operator: {},\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n administrator: {},\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n administrator: {},\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n worker: {\n remark: request.payload.worker.remark\n },\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.location_id.map(i => Number(i))\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 credential: {\n // username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 r = req as RequestAuthContext; // ✅ cast here\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.getUserDataTypes();\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} from \"@/schema/payload\";\nimport { QueryList } from \"@/schema/middleware/route\";\nimport { 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 }\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 if (requestUserType === \"operator\") {\n\n let request = schemaUserOperatorCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload?.credential?.address ?? \"\",\n status: reqPayload.credential.status\n },\n administrator: {\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n administrator: {},\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n worker: {\n remark: request.payload.worker.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserCreateProps = {\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n member: {\n companyName: reqPayload.member.company_name,\n 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 user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 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 === \"retailer\") {\n\n let request = schemaUserRetailerCreatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n loginPassword: request.payload.credential.password,\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 if (requestUserType === \"customer\") {\n\n let request = schemaUserCustomerUpdatePayload.parse({\n scope: {\n target: reqScope.target,\n action: reqScope.action\n },\n payload: {\n credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address ?? \"\",\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request.payload.credential.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n operator: {},\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n administrator: {},\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n administrator: {},\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n worker: {\n remark: reqPayload.worker.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n worker: {\n remark: request.payload.worker.remark\n },\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n driver: {\n companyName: reqPayload.driver.company_name,\n remark: reqPayload.driver.remark\n },\n props: {\n location_id: reqPayload.props.location_id\n }\n }\n })\n\n let payload: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\n driver: {\n companyName: request.payload.driver.companyName ?? \"\",\n remark: request.payload.driver.remark ?? \"\"\n },\n props: {\n locationIds: request.payload.props.location_id.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 credential: {\n username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\n member: {\n companyName: reqPayload.member.company_name,\n 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: UserUpdateProps = {\n id: Number(userId),\n userType: requestUserType,\n data: {\n user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 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.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 credential: {\n // username: reqPayload.credential.username,\n password: reqPayload.credential.password,\n firstname: reqPayload.credential.firstname,\n lastname: reqPayload.credential.lastname,\n contact: reqPayload.credential.contact,\n email: reqPayload.credential.email,\n address: reqPayload.credential.address,\n status: reqPayload.credential.status\n },\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 user: {\n loginUsername: request.payload.credential.username,\n ...(request.payload.credential.password ? { loginPassword: request.payload.credential.password } : {}),\n address: request?.payload?.credential?.address ?? \"\",\n contact: request.payload.credential.contact,\n email: request.payload.credential.email,\n firstname: request.payload.credential.firstname,\n lastname: request.payload.credential.lastname,\n status: request.payload.credential.status === 1\n },\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 r = req as RequestAuthContext; // ✅ cast here\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.getUserDataTypes();\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"]}
@@ -14,8 +14,8 @@ export declare const ModelAccountFields: {
14
14
  name: "name";
15
15
  business_id: "business_id";
16
16
  account_code: "account_code";
17
- account_id: "account_id";
18
17
  owner_user_id: "owner_user_id";
18
+ account_id: "account_id";
19
19
  };
20
20
  export type ModelAccount = accounts;
21
21
  export type ModelAccountOmitFields = typeof primaryKey | DefaultOmitFields;
@@ -46,7 +46,7 @@ export type ModelAccountListProps = {
46
46
  limit?: number;
47
47
  };
48
48
  export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
49
- primaryKey: "status" | "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "name" | "business_id" | "account_code" | "account_id" | "owner_user_id";
49
+ primaryKey: "status" | "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "name" | "business_id" | "account_code" | "owner_user_id" | "account_id";
50
50
  getFields: (prefix?: string, excludeKeywords?: string[]) => Promise<{
51
51
  name: string;
52
52
  type: string;
@@ -65,8 +65,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
65
65
  name: string;
66
66
  business_id: bigint | null;
67
67
  account_code: string | null;
68
- account_id: bigint;
69
68
  owner_user_id: bigint;
69
+ account_id: bigint;
70
70
  }>;
71
71
  createMany: ({ dataList, disableRollback, }: {
72
72
  dataList: Omit<any, DefaultOmitFields>[];
@@ -83,8 +83,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
83
83
  name: string;
84
84
  business_id: bigint | null;
85
85
  account_code: string | null;
86
- account_id: bigint;
87
86
  owner_user_id: bigint;
87
+ account_id: bigint;
88
88
  }[]>;
89
89
  get: ({ id, where, include, }: {
90
90
  id?: number;
@@ -102,8 +102,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
102
102
  name: string;
103
103
  business_id: bigint | null;
104
104
  account_code: string | null;
105
- account_id: bigint;
106
105
  owner_user_id: bigint;
106
+ account_id: bigint;
107
107
  } | null>;
108
108
  list: ({ where, orderBy, offset, limit, include }?: any) => Promise<{
109
109
  status: boolean;
@@ -117,14 +117,14 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
117
117
  name: string;
118
118
  business_id: bigint | null;
119
119
  account_code: string | null;
120
- account_id: bigint;
121
120
  owner_user_id: bigint;
121
+ account_id: bigint;
122
122
  }[]>;
123
123
  count: ({ where }?: {
124
124
  where?: Record<string, any>;
125
125
  }) => Promise<number>;
126
126
  aggregate: ({ field, operation, where, }: {
127
- field: "status" | "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "name" | "business_id" | "account_code" | "account_id" | "owner_user_id";
127
+ field: "status" | "createdatetime" | "createuserid" | "updatedatetime" | "updateuserid" | "isdelete" | "istrash" | "accountid" | "name" | "business_id" | "account_code" | "owner_user_id" | "account_id";
128
128
  operation?: "sum" | "avg" | "min" | "max" | "count";
129
129
  where?: Record<string, any>;
130
130
  }) => Promise<number>;
@@ -143,8 +143,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
143
143
  name: string;
144
144
  business_id: bigint | null;
145
145
  account_code: string | null;
146
- account_id: bigint;
147
146
  owner_user_id: bigint;
147
+ account_id: bigint;
148
148
  }>;
149
149
  disableRollback?: Boolean;
150
150
  }) => Promise<{
@@ -159,8 +159,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
159
159
  name: string;
160
160
  business_id: bigint | null;
161
161
  account_code: string | null;
162
- account_id: bigint;
163
162
  owner_user_id: bigint;
163
+ account_id: bigint;
164
164
  }>;
165
165
  updateMany: ({ dataList, disableRollback, }: {
166
166
  dataList: {
@@ -177,8 +177,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
177
177
  name: string;
178
178
  business_id: bigint | null;
179
179
  account_code: string | null;
180
- account_id: bigint;
181
180
  owner_user_id: bigint;
181
+ account_id: bigint;
182
182
  }>;
183
183
  }[];
184
184
  disableRollback?: boolean;
@@ -194,8 +194,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
194
194
  name: string;
195
195
  business_id: bigint | null;
196
196
  account_code: string | null;
197
- account_id: bigint;
198
197
  owner_user_id: bigint;
198
+ account_id: bigint;
199
199
  }[]>;
200
200
  trash: ({ ids }: {
201
201
  ids: number[];
@@ -211,8 +211,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
211
211
  name: string;
212
212
  business_id: bigint | null;
213
213
  account_code: string | null;
214
- account_id: bigint;
215
214
  owner_user_id: bigint;
215
+ account_id: bigint;
216
216
  }[]>;
217
217
  remove: ({ ids, where }: {
218
218
  ids?: number[];
@@ -229,8 +229,8 @@ export declare const AccountModel: ({ ...rest }: DefaultServiceProps) => {
229
229
  name: string;
230
230
  business_id: bigint | null;
231
231
  account_code: string | null;
232
- account_id: bigint;
233
232
  owner_user_id: bigint;
233
+ account_id: bigint;
234
234
  }[]>;
235
235
  raw: <T = any>(query: string, params?: any[]) => Promise<T[]>;
236
236
  rawExec: (query: string, params?: any[]) => Promise<number>;
@@ -7,6 +7,7 @@ export { AdministratorModel, ModelAdministratorFields } from "./user/Administrat
7
7
  export { OperatorModel, ModelOperatorFields } from "./user/OperatorModel";
8
8
  export { WorkerModel, ModelWorkerFields } from "./user/WorkerModel";
9
9
  export { DriverModel, ModelDriverFields } from "./user/DriverModel";
10
+ export { MemberModel, ModelMemberFields } from "./user/MemberModel";
10
11
  export type { ModelUser, ModelUserCreateProps, ModelUserGetProps, ModelUserListProps } from "./user/UserModel";
11
12
  export type { ModelUserStatus, ModelUserStatusCreateProps, ModelUserStatusGetProps, ModelUserStatusListProps } from "./user/UserStatusModel";
12
13
  export type { ModelUserProp, ModelUserPropCreateProps, ModelUserPropGetProps, ModelUserPropListProps } from "./user/UserPropModel";
@@ -16,6 +17,7 @@ export type { ModelAdministrator, ModelAdministratorCreateProps, ModelAdministra
16
17
  export type { ModelOperator, ModelOperatorCreateProps, ModelOperatorGetProps, ModelOperatorListProps } from "./user/OperatorModel";
17
18
  export type { ModelWorker, ModelWorkerCreateProps, ModelWorkerGetProps, ModelWorkerListProps } from "./user/WorkerModel";
18
19
  export type { ModelDriver, ModelDriverCreateProps, ModelDriverGetProps, ModelDriverListProps } from "./user/DriverModel";
20
+ export type { ModelMember, ModelMemberCreateProps, ModelMemberGetProps, ModelMemberListProps } from "./user/MemberModel";
19
21
  export { BusinessModel, ModelBusinessFields } from "./business/BusinessModel";
20
22
  export { AccountModel, ModelAccountFields } from "./account/AccountModel";
21
23
  export type { ModelBusiness, ModelBusinessCreateProps, ModelBusinessGetProps, ModelBusinessListProps } from "./business/BusinessModel";