storemw-core-api 1.0.159 → 1.0.160

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.
@@ -33,12 +33,13 @@ export type AuthServiceProps = DefaultServiceProps & {
33
33
  export type AuthGetTokenProps = {
34
34
  authType: AuthType;
35
35
  accountCode?: string;
36
+ skipPassword?: boolean;
36
37
  data: {
37
38
  username: string;
38
39
  password: string;
39
40
  };
40
41
  };
41
42
  export declare const AuthService: (props: AuthServiceProps) => {
42
- getAuthToken: ({ authType, data, accountCode }: AuthGetTokenProps) => Promise<any>;
43
+ getAuthToken: ({ authType, data, accountCode, skipPassword }: AuthGetTokenProps) => Promise<any>;
43
44
  verifyAuthToken: (token: string, secret: string) => AuthJwtToken;
44
45
  };
@@ -61,7 +61,7 @@ const AuthService = (props) => {
61
61
  // }
62
62
  return Number(selectAccountId ?? 0);
63
63
  };
64
- const getAuthToken = async ({ authType, data, accountCode = "" }) => {
64
+ const getAuthToken = async ({ authType, data, accountCode = "", skipPassword = false }) => {
65
65
  let _rest = rest;
66
66
  let _accountId = 0;
67
67
  if (authType !== "operator") {
@@ -69,41 +69,6 @@ const AuthService = (props) => {
69
69
  }
70
70
  // _rest.accountId = accountId
71
71
  _rest.accountId = _accountId;
72
- // check the option pass in using account id or account code
73
- // if (authType !== "operator") {
74
- // _rest.accountId = accountId
75
- // // check if the accountId & accountCode is not empty
76
- // if (!accountId && !accountCode) throwError(`accountId or accountCode is required`)
77
- // let selectAccountId = `${accountId}`
78
- // // check account id is choose
79
- // if (selectAccountId === "0") {
80
- // const globalAccountService = AccountService({ ...rest, isOperator: true })
81
- // // use account code to find the account id
82
- // if (accountCode) {
83
- // let { data: responseAcc } = await globalAccountService.listAccounts({
84
- // limit: 1,
85
- // offset: 0,
86
- // sortfield: `${ModelAccountFields.account_id}`,
87
- // sortorder: `ASC`,
88
- // filters: [{
89
- // field: `${ModelAccountFields.account_code}`,
90
- // operator: `=`,
91
- // value: `${accountCode}`,
92
- // }],
93
- // datatypes: []
94
- // })
95
- // selectAccountId = responseAcc.length > 0 ? responseAcc[0].account_id : ""
96
- // let selectAccountStatus = responseAcc.length > 0 ? responseAcc[0].account_status : ""
97
- // if (selectAccountStatus !== true) throwError(`Inactive account: ${accountCode}`)
98
- // }
99
- // if (!selectAccountId) {
100
- // throwError(`Invalid account code: ${accountCode}`)
101
- // }
102
- // }
103
- // _rest.accountId = Number(selectAccountId)
104
- // } else {
105
- // _rest.accountId = accountId
106
- // }
107
72
  const userService = (0, services_1.UserService)({ userType: authType, ...rest });
108
73
  const accountService = (0, services_1.AccountService)({ ...rest, isOperator: true });
109
74
  const locationService = (0, services_1.LocationService)({ ...rest, locationType: "location" });
@@ -141,23 +106,23 @@ const AuthService = (props) => {
141
106
  throw new Error(`User is inactive: ${data.username}`);
142
107
  }
143
108
  let user = foundUser;
144
- // foundUser.length > 0 ? foundUser[0] : {}
145
109
  let decryptedPass;
146
- try {
147
- decryptedPass = await (0, utils_2.verifyPassword)(data.password, user.password);
148
- }
149
- catch (error) {
150
- throw error;
151
- }
152
- if (decryptedPass === false) {
153
- throw Error(`Invalid credential: ${data["username"]}`);
110
+ // only if the skip password is false (from the route/controller)
111
+ if (skipPassword === false) {
112
+ try {
113
+ decryptedPass = await (0, utils_2.verifyPassword)(data.password, user.password);
114
+ }
115
+ catch (error) {
116
+ throw error;
117
+ }
118
+ if (decryptedPass === false) {
119
+ throw Error(`Invalid credential: ${data["username"]}`);
120
+ }
154
121
  }
155
122
  // dont show out to result
156
123
  delete user.password;
157
124
  let account = {};
158
- // if (_rest.accountId && authType !== "operator") {
159
125
  account = await accountService.getAccount({ id: Number(_rest.accountId), datatypes: [] });
160
- // }
161
126
  const authToken = (0, utils_2.generateAuthToken)(user, account, secretKey);
162
127
  // get the locations for user
163
128
  const locationIds = user?.location_id ? user.location_id.split(", ") : [];
@@ -1 +1 @@
1
- {"version":3,"file":"AuthService.js","sourceRoot":"","sources":["../../../src/services/auth/AuthService.ts"],"names":[],"mappings":"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","sourcesContent":["// import { QueryList, QueryGet } from \"@/schema/common\";\nimport { buildFeatureCallbackProps, DefaultServiceProps, throwError } from \"@/utils\";\nimport {\n UserService,\n // UserGetProps,\n UserType,\n UserListProps,\n // userTypes,\n AccountService,\n LocationService,\n LocationListProps\n} from \"@/services\";\n\nimport jwt, { JwtPayload } from \"jsonwebtoken\";\n\nimport { generateAuthToken, verifyPassword, verifyAuthToken, hashPassword } from \"@/utils\"\nimport { ModelAccountFields, ModelUserFields, UserModel } from \"@/models\";\n\nimport { AuthTokenHook, FeatureAuthTokenSuccessAuthenticateProps } from \"@/features\"\n\nexport const authTypes = {\n operator: \"operator\",\n administrator: \"administrator\",\n worker: \"worker\",\n customer: \"customer\",\n member: \"member\",\n} as const\n\nexport type AuthType = typeof authTypes[keyof typeof authTypes]\n\nexport type AuthTokenResult = {\n token: string\n account: any\n user: any\n user_locations: any[]\n is_owner: boolean\n}\n\nexport type AuthJwtToken = JwtPayload & {\n user?: { id: number, user_id: number, user_type: AuthType };\n account?: { id: number, account_id: number };\n};\n\nexport type AuthServiceProps = DefaultServiceProps & {\n secretKey: string,\n authType: AuthType\n};\n\nexport type AuthGetTokenProps = {\n authType: AuthType,\n // accountId?: number,\n accountCode?: string,\n data:\n // get token\n {\n username: string,\n password: string\n }\n};\n\nexport const AuthService = (props: AuthServiceProps) => {\n\n const {\n secretKey,\n authType = \"administrator\",\n ...rest\n } = props\n\n // let hookSetup: FeatureAuthTokenSuccessAuthenticateProps | null = null\n\n const getUserInjectionFieldName = (authType: AuthType) => {\n\n if (authType === \"administrator\") return [\"administrator_injection_fields\"]\n if (authType === \"customer\") return [\"customer_injection_fields\"]\n if (authType === \"worker\") return [\"worker_injection_fields\"]\n\n return []\n }\n\n const validateAuthAccount = async (accountCode: string) => {\n\n if (accountCode === \"\") {\n return 0\n }\n\n // check if the accountId & accountCode is not empty\n // if (!accountId && !accountCode) throwError(`accountId or accountCode is required`)\n\n let selectAccountId = 0\n\n // check account id is choose \n // if (selectAccountId === 0) {\n\n const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n // use account code to find the account id\n if (accountCode) {\n\n let { data: responseAcc } = await globalAccountService.listAccounts({\n limit: 1,\n offset: 0,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: `ASC`,\n filters: [{\n field: `${ModelAccountFields.account_code}`,\n operator: `=`,\n value: `${accountCode}`,\n }],\n datatypes: []\n })\n\n selectAccountId = responseAcc.length > 0 ? responseAcc[0].account_id : \"\"\n let selectAccountStatus = responseAcc.length > 0 ? responseAcc[0].account_status : \"\"\n\n if (selectAccountStatus !== true) throwError(`Inactive account: ${accountCode}`)\n\n }\n\n if (!selectAccountId) {\n throwError(`Invalid account code: ${accountCode}`)\n }\n\n // }\n\n return Number(selectAccountId ?? 0)\n\n }\n\n const getAuthToken = async ({ authType, data, accountCode = \"\" }: AuthGetTokenProps) => {\n\n let _rest = rest\n let _accountId = 0\n\n if (authType !== \"operator\") {\n _accountId = await validateAuthAccount(accountCode)\n }\n\n // _rest.accountId = accountId\n _rest.accountId = _accountId\n\n // check the option pass in using account id or account code\n // if (authType !== \"operator\") {\n // _rest.accountId = accountId\n\n // // check if the accountId & accountCode is not empty\n // if (!accountId && !accountCode) throwError(`accountId or accountCode is required`)\n\n // let selectAccountId = `${accountId}`\n\n // // check account id is choose \n // if (selectAccountId === \"0\") {\n\n // const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n // // use account code to find the account id\n // if (accountCode) {\n\n // let { data: responseAcc } = await globalAccountService.listAccounts({\n // limit: 1,\n // offset: 0,\n // sortfield: `${ModelAccountFields.account_id}`,\n // sortorder: `ASC`,\n // filters: [{\n // field: `${ModelAccountFields.account_code}`,\n // operator: `=`,\n // value: `${accountCode}`,\n // }],\n // datatypes: []\n // })\n\n // selectAccountId = responseAcc.length > 0 ? responseAcc[0].account_id : \"\"\n // let selectAccountStatus = responseAcc.length > 0 ? responseAcc[0].account_status : \"\"\n\n // if (selectAccountStatus !== true) throwError(`Inactive account: ${accountCode}`)\n\n // }\n\n // if (!selectAccountId) {\n // throwError(`Invalid account code: ${accountCode}`)\n // }\n\n // }\n\n // _rest.accountId = Number(selectAccountId)\n\n // } else {\n // _rest.accountId = accountId\n // }\n\n const userService = UserService({ userType: authType as UserType, ...rest })\n const accountService = AccountService({ ...rest, isOperator: true })\n const locationService = LocationService({ ...rest, locationType: \"location\" })\n\n let foundUser: any = {}\n\n // only for operator & administrator\n if (authType === \"operator\" || authType === \"administrator\") {\n\n // const operatorService = UserService({ ...rest })\n\n const _user = await userService.getUserByUsername({\n username: `${data[\"username\"]}`,\n includePassword: true,\n datatypes: getUserInjectionFieldName(authType) as any\n })\n\n foundUser = _user\n\n } else { // other user type\n\n let payload: UserListProps = {\n includePassword: true,\n limit: 1,\n offset: 0,\n sortfield: \"user_id\",\n sortorder: \"DESC\",\n filters: [\n { field: \"username\", operator: \"=\", value: `${data[\"username\"]}` },\n { field: \"user_type\", operator: \"=\", value: `${authType}` }\n ],\n datatypes: getUserInjectionFieldName(authType)\n }\n\n const { data: foundOtherUser } = await userService.listUsers(payload)\n\n foundUser = foundOtherUser.length > 0 ? foundOtherUser[0] : {}\n\n }\n\n if (!foundUser?.user_id) {\n throw Error(`Invalid username: ${data.username}`)\n }\n\n if (foundUser?.status !== true) {\n throw new Error(`User is inactive: ${data.username}`);\n }\n\n let user = foundUser\n // foundUser.length > 0 ? foundUser[0] : {}\n\n let decryptedPass: boolean\n\n try {\n decryptedPass = await verifyPassword(data.password, user.password)\n } catch (error) {\n throw error\n }\n\n if (decryptedPass === false) {\n throw Error(`Invalid credential: ${data[\"username\"]}`)\n }\n\n // dont show out to result\n delete user.password\n\n let account: any = {}\n\n // if (_rest.accountId && authType !== \"operator\") {\n account = await accountService.getAccount({ id: Number(_rest.accountId), datatypes: [] })\n // }\n\n const authToken = generateAuthToken(user, account, secretKey)\n\n // get the locations for user\n const locationIds = user?.location_id ? user.location_id.split(\", \") : []\n\n let locations: any[] = []\n\n if (locationIds.length > 0) {\n const listPayload: LocationListProps = {\n limit: 100,\n offset: 0,\n sortfield: \"location_id\",\n sortorder: \"ASC\",\n filters: [{\n field: \"location_id\",\n operator: \"where_in\",\n value: locationIds.map((i: any) => Number(i))\n }],\n datatypes: []\n }\n\n const { data } = await locationService.listLocations(listPayload)\n locations = data\n }\n\n const result: AuthTokenResult = {\n token: authToken,\n account,\n user,\n user_locations: locations,\n // parent_user_id: 0,\n // roles: [\n // {\n // id: 23,\n // role_name: \"123\"\n // }\n // ],\n // permissions: [],\n is_owner: Boolean(user?.is_owner),\n // owner_id: 0\n }\n\n let newResult: any\n\n // Call the consumer hook, if registered\n if (AuthTokenHook?.onSuccessAuthenticate) {\n\n const userType: UserType = user?.user_type ?? \"administrator\"\n\n newResult = await AuthTokenHook.onSuccessAuthenticate(buildFeatureCallbackProps({\n defaultServiceProps: {\n accountId: Number(account?.account_id),\n actionUserId: Number(user?.user_id),\n actionUserType: user?.user_type ?? \"\",\n authToken: authToken,\n isOperator: Boolean(userType === \"operator\"),\n accessKey: \"\",\n accessKeyId: \"\"\n },\n callbackParams: result\n }))\n }\n\n return newResult ? newResult : result\n };\n\n return {\n getAuthToken,\n verifyAuthToken,\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"AuthService.js","sourceRoot":"","sources":["../../../src/services/auth/AuthService.ts"],"names":[],"mappings":"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","sourcesContent":["// import { QueryList, QueryGet } from \"@/schema/common\";\nimport { buildFeatureCallbackProps, DefaultServiceProps, throwError } from \"@/utils\";\nimport {\n UserService,\n // UserGetProps,\n UserType,\n UserListProps,\n // userTypes,\n AccountService,\n LocationService,\n LocationListProps\n} from \"@/services\";\n\nimport jwt, { JwtPayload } from \"jsonwebtoken\";\n\nimport { generateAuthToken, verifyPassword, verifyAuthToken, hashPassword } from \"@/utils\"\nimport { ModelAccountFields, ModelUserFields, UserModel } from \"@/models\";\n\nimport { AuthTokenHook, FeatureAuthTokenSuccessAuthenticateProps } from \"@/features\"\n\nexport const authTypes = {\n operator: \"operator\",\n administrator: \"administrator\",\n worker: \"worker\",\n customer: \"customer\",\n member: \"member\",\n} as const\n\nexport type AuthType = typeof authTypes[keyof typeof authTypes]\n\nexport type AuthTokenResult = {\n token: string\n account: any\n user: any\n user_locations: any[]\n is_owner: boolean\n}\n\nexport type AuthJwtToken = JwtPayload & {\n user?: { id: number, user_id: number, user_type: AuthType };\n account?: { id: number, account_id: number };\n};\n\nexport type AuthServiceProps = DefaultServiceProps & {\n secretKey: string,\n authType: AuthType\n};\n\nexport type AuthGetTokenProps = {\n authType: AuthType,\n // accountId?: number,\n accountCode?: string,\n skipPassword?: boolean\n data:\n // get token\n {\n username: string,\n password: string\n }\n};\n\nexport const AuthService = (props: AuthServiceProps) => {\n\n const {\n secretKey,\n authType = \"administrator\",\n ...rest\n } = props\n\n // let hookSetup: FeatureAuthTokenSuccessAuthenticateProps | null = null\n\n const getUserInjectionFieldName = (authType: AuthType) => {\n\n if (authType === \"administrator\") return [\"administrator_injection_fields\"]\n if (authType === \"customer\") return [\"customer_injection_fields\"]\n if (authType === \"worker\") return [\"worker_injection_fields\"]\n\n return []\n }\n\n const validateAuthAccount = async (accountCode: string) => {\n\n if (accountCode === \"\") {\n return 0\n }\n\n // check if the accountId & accountCode is not empty\n // if (!accountId && !accountCode) throwError(`accountId or accountCode is required`)\n\n let selectAccountId = 0\n\n // check account id is choose \n // if (selectAccountId === 0) {\n\n const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n // use account code to find the account id\n if (accountCode) {\n\n let { data: responseAcc } = await globalAccountService.listAccounts({\n limit: 1,\n offset: 0,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: `ASC`,\n filters: [{\n field: `${ModelAccountFields.account_code}`,\n operator: `=`,\n value: `${accountCode}`,\n }],\n datatypes: []\n })\n\n selectAccountId = responseAcc.length > 0 ? responseAcc[0].account_id : \"\"\n let selectAccountStatus = responseAcc.length > 0 ? responseAcc[0].account_status : \"\"\n\n if (selectAccountStatus !== true) throwError(`Inactive account: ${accountCode}`)\n\n }\n\n if (!selectAccountId) {\n throwError(`Invalid account code: ${accountCode}`)\n }\n\n // }\n\n return Number(selectAccountId ?? 0)\n\n }\n\n const getAuthToken = async ({ authType, data, accountCode = \"\", skipPassword = false }: AuthGetTokenProps) => {\n\n let _rest = rest\n let _accountId = 0\n\n if (authType !== \"operator\") {\n _accountId = await validateAuthAccount(accountCode)\n }\n\n // _rest.accountId = accountId\n _rest.accountId = _accountId\n\n const userService = UserService({ userType: authType as UserType, ...rest })\n const accountService = AccountService({ ...rest, isOperator: true })\n const locationService = LocationService({ ...rest, locationType: \"location\" })\n\n let foundUser: any = {}\n\n // only for operator & administrator\n if (authType === \"operator\" || authType === \"administrator\") {\n\n // const operatorService = UserService({ ...rest })\n\n const _user = await userService.getUserByUsername({\n username: `${data[\"username\"]}`,\n includePassword: true,\n datatypes: getUserInjectionFieldName(authType) as any\n })\n\n foundUser = _user\n\n } else { // other user type\n\n let payload: UserListProps = {\n includePassword: true,\n limit: 1,\n offset: 0,\n sortfield: \"user_id\",\n sortorder: \"DESC\",\n filters: [\n { field: \"username\", operator: \"=\", value: `${data[\"username\"]}` },\n { field: \"user_type\", operator: \"=\", value: `${authType}` }\n ],\n datatypes: getUserInjectionFieldName(authType)\n }\n\n const { data: foundOtherUser } = await userService.listUsers(payload)\n\n foundUser = foundOtherUser.length > 0 ? foundOtherUser[0] : {}\n\n }\n\n if (!foundUser?.user_id) {\n throw Error(`Invalid username: ${data.username}`)\n }\n\n if (foundUser?.status !== true) {\n throw new Error(`User is inactive: ${data.username}`);\n }\n\n let user = foundUser\n let decryptedPass: boolean\n\n // only if the skip password is false (from the route/controller)\n if (skipPassword === false) {\n try {\n decryptedPass = await verifyPassword(data.password, user.password)\n } catch (error) {\n throw error\n }\n\n if (decryptedPass === false) {\n throw Error(`Invalid credential: ${data[\"username\"]}`)\n }\n }\n\n // dont show out to result\n delete user.password\n\n let account: any = {}\n account = await accountService.getAccount({ id: Number(_rest.accountId), datatypes: [] })\n\n const authToken = generateAuthToken(user, account, secretKey)\n\n // get the locations for user\n const locationIds = user?.location_id ? user.location_id.split(\", \") : []\n\n let locations: any[] = []\n\n if (locationIds.length > 0) {\n const listPayload: LocationListProps = {\n limit: 100,\n offset: 0,\n sortfield: \"location_id\",\n sortorder: \"ASC\",\n filters: [{\n field: \"location_id\",\n operator: \"where_in\",\n value: locationIds.map((i: any) => Number(i))\n }],\n datatypes: []\n }\n\n const { data } = await locationService.listLocations(listPayload)\n locations = data\n }\n\n const result: AuthTokenResult = {\n token: authToken,\n account,\n user,\n user_locations: locations,\n // parent_user_id: 0,\n // roles: [\n // {\n // id: 23,\n // role_name: \"123\"\n // }\n // ],\n // permissions: [],\n is_owner: Boolean(user?.is_owner),\n // owner_id: 0\n }\n\n let newResult: any\n\n // Call the consumer hook, if registered\n if (AuthTokenHook?.onSuccessAuthenticate) {\n\n const userType: UserType = user?.user_type ?? \"administrator\"\n\n newResult = await AuthTokenHook.onSuccessAuthenticate(buildFeatureCallbackProps({\n defaultServiceProps: {\n accountId: Number(account?.account_id),\n actionUserId: Number(user?.user_id),\n actionUserType: user?.user_type ?? \"\",\n authToken: authToken,\n isOperator: Boolean(userType === \"operator\"),\n accessKey: \"\",\n accessKeyId: \"\"\n },\n callbackParams: result\n }))\n }\n\n return newResult ? newResult : result\n };\n\n return {\n getAuthToken,\n verifyAuthToken,\n }\n\n}\n\n"]}
@@ -136,9 +136,10 @@ const AdministratorService = (props) => {
136
136
  includePassword,
137
137
  limit: 1,
138
138
  offset: 0,
139
- filters: [{
140
- field: `username`, operator: "=", value: `${username}`
141
- }],
139
+ filters: [
140
+ { field: `username`, operator: "=", value: `${username}` },
141
+ { field: `user_type`, operator: "=", value: `administrator` },
142
+ ],
142
143
  sortfield: `${models_1.ModelUserFields.user_id}`,
143
144
  sortorder: "ASC",
144
145
  datatypes,
@@ -1 +1 @@
1
- {"version":3,"file":"AdministratorService.js","sourceRoot":"","sources":["../../../src/services/user/AdministratorService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AdministratorModel,\n ModelAdministratorFields,\n ModelGroupFields,\n ModelUserPropFields,\n ModelLocationFields\n} from \"@/models\";\n\nimport { InjectionFieldService, userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"administrator\"\n\nexport const administratorDataTypes = {\n location: \"location\",\n locationCount: \"location_count\",\n administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type AdministratorDataType = keyof typeof administratorDataTypes;\n\nexport type AdministratorServiceProps = DefaultServiceProps & {};\n\nexport type AdministratorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorListProps = QueryList & {\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type AdministratorCreateProps = {\n data:\n // administrator\n {\n administrator: {\n userId: number,\n isOwner: boolean\n }\n }\n}\n\nexport type AdministratorUpdateProps = {\n userId: number,\n data:\n // administrator\n {\n administrator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: AdministratorCreateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n [`${ModelAdministratorFields.is_owner}`]: Boolean(data.administrator.isOwner),\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AdministratorUpdateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n // [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`adm.${ModelAdministratorFields.administrator_id}`]: \"administrator_id\",\n [`adm.${ModelAdministratorFields.user_id}`]: \"user_id\",\n [`adm.${ModelAdministratorFields.is_owner}`]: \"is_owner\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`adm.${ModelAdministratorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`adm.${ModelAdministratorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`adm.${ModelAdministratorFields.isdelete}`]: \"isdelete\",\n [`adm.${ModelAdministratorFields.istrash}`]: \"istrash\",\n [`adm.${ModelAdministratorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\nlet userPropLocationSqlSelect = {\n // [`COALESCE(usrprop_location.${ModelUserPropFields.props_id}::int, 0)`]: \"location_id\",\n [`COALESCE(\n STRING_AGG(DISTINCT usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n ''\n )`]: \"location_id\",\n // [`COALESCE(location.${ModelLocationFields.location_name}::text, '')`]: \"location_name\",\n [`COALESCE(\n STRING_AGG(DISTINCT location.${ModelLocationFields.location_name}::text, ', '),\n ''\n )`]: \"location_name\",\n}\n\nlet groupOwnerSqlSelect = {\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_id}::text, ', '),\n ''\n )`]: \"access_group_id\",\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_label}::text, ', '),\n ''\n )`]: \"access_group_label\",\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_description}::text, ', '),\n ''\n )`]: \"access_group_description\",\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_type}::text, ', '),\n ''\n )`]: \"access_group_type\"\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelGroupFields.group_label}', grp.group_label,\n // '${ModelGroupFields.group_id}', grp.group_id,\n // '${ModelGroupFields.group_type}', grp.group_type\n // )\n // ) FILTER (WHERE grp.group_id IS NOT NULL AND grp.isdelete = false AND grp.istrash = false), \n // '[]'\n // )`]: \"grp\"\n}\n\nexport const AdministratorService = (props: AdministratorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const administratorModel = AdministratorModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createAdministrator = async ({ data }: AdministratorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.create({ data: _data })\n\n return response\n }\n\n const updateAdministrator = async ({ userId, data }: AdministratorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.update({ where: { [`${ModelAdministratorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getAdministrator = async ({ id, datatypes = [], includePassword = false, skipFilterAccountId = false }: AdministratorGetProps) => {\n\n let { data } = await listAdministrators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: \"user_id\", operator: \"=\", value: id }],\n sortfield: \"user_id\",\n sortorder: \"ASC\",\n datatypes,\n skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const getAdministratorByUsername = async ({ username = \"\", includePassword = false, datatypes = [], skipFilterAccountId = false }: AdministratorGetByUsernameProps) => {\n\n let { data } = await listAdministrators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{\n field: `username`, operator: \"=\", value: `${username}`\n }],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n datatypes,\n skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const listAdministrators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = [],\n skipFilterAccountId = false\n }: AdministratorListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n // buildSqlSelect(``, userStatusIsOwnerSqlSelect),\n buildSqlSelect(``, userPropLocationSqlSelect),\n buildSqlSelect(``, groupOwnerSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"adm\", \"users\", \"usr\", [\"adm.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"creator\", [\"adm.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"updater\", [\"adm.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"adm\", \"user_status\", \"usrsta_isowner\", [\"adm.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"user_props\", \"usrprop_location\", [\"adm.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"group_owners\", \"grpown\", [\"adm.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userStatusIsOwnerSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n // ...userStatusIsOwnerSqlSelect,\n ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(administratorDataTypes.administratorInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"administrator\")\n\n const administratorInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...administratorInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, administratorInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"adm\", \"user_injection_fields\", \"uif\", [\"adm.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'administrator'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(administratorInjectionFieldSqlSelect)]\n }\n\n if (datatypes.includes(administratorDataTypes.location)) {\n\n let locationSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelLocationFields.location_id}', location.location_id,\n '${ModelLocationFields.location_code}', location.location_code,\n '${ModelLocationFields.location_name}', location.location_name,\n '${ModelLocationFields.location_type}', location.location_type,\n '${ModelLocationFields.address_1}', location.address_1,\n '${ModelLocationFields.address_2}', location.address_2,\n '${ModelLocationFields.area_id}', location.area_id,\n '${ModelLocationFields.country_id}', location.country_id,\n '${ModelLocationFields.state_id}', location.state_id,\n '${ModelLocationFields.postcode}', location.postcode,\n '${ModelLocationFields.is_default}', location.is_default,\n '${ModelLocationFields.person_contact}', location.person_contact,\n '${ModelLocationFields.person_name}', location.person_contact,\n '${ModelLocationFields.person_email}', location.person_email,\n '${ModelLocationFields.isdelete}', location.isdelete,\n '${ModelLocationFields.istrash}', location.istrash\n )\n ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n '[]'\n )`]: \"locations\"\n }\n\n filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"adm.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.locationCount)) {\n\n let locationCountSqlSelect = {\n [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n }\n\n filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"adm.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.parentUser)) {\n\n filterColumns = { ...filterColumns, ...userParentSqlSelect }\n\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"users\", \"parentuser\", [\"usr.parent_user_id = parentuser.user_id\", \"parentuser.isdelete = false\", \"parentuser.istrash = false\"])]\n sqlSelect = [...sqlSelect, buildSqlSelect(``, userParentSqlSelect)]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(userParentSqlSelect)]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"adm.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `adm.isdelete = false`,\n `adm.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"administrators\",\n mainAlias: \"adm\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId\n })\n\n data = await administratorModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeAdministrators = async ({ userIds }: AdministratorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await administratorModel.remove({\n where: {\n [`${ModelAdministratorFields.user_id}`]: {\n in: userIds\n },\n [`${ModelAdministratorFields.is_owner}`]: false // cannot default is_owner account\n }\n });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(administratorDataTypes);\n }\n\n // return {\n // createAdministrator,\n // updateAdministrator,\n // getAdministrator,\n // listAdministrators,\n // removeAdministrators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getAdministrator: { fn: getAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator\" },\n getAdministratorByUsername: { fn: getAdministratorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator by username\" },\n listAdministrators: { fn: listAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"list administrators\" },\n createAdministrator: { fn: createAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"create administrator\" },\n updateAdministrator: { fn: updateAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"update administrator\" },\n removeAdministrators: { fn: removeAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"remove administrators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator datatypes\" },\n };\n\n return ServiceFactory(\"AdministratorService\", rest, methodConfigs);\n\n}\n\n"]}
1
+ {"version":3,"file":"AdministratorService.js","sourceRoot":"","sources":["../../../src/services/user/AdministratorService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AdministratorModel,\n ModelAdministratorFields,\n ModelGroupFields,\n ModelUserPropFields,\n ModelLocationFields\n} from \"@/models\";\n\nimport { InjectionFieldService, userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"administrator\"\n\nexport const administratorDataTypes = {\n location: \"location\",\n locationCount: \"location_count\",\n administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type AdministratorDataType = keyof typeof administratorDataTypes;\n\nexport type AdministratorServiceProps = DefaultServiceProps & {};\n\nexport type AdministratorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorListProps = QueryList & {\n includePassword?: boolean\n datatypes: AdministratorDataType[]\n skipFilterAccountId?: boolean\n};\n\nexport type AdministratorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type AdministratorCreateProps = {\n data:\n // administrator\n {\n administrator: {\n userId: number,\n isOwner: boolean\n }\n }\n}\n\nexport type AdministratorUpdateProps = {\n userId: number,\n data:\n // administrator\n {\n administrator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: AdministratorCreateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n [`${ModelAdministratorFields.is_owner}`]: Boolean(data.administrator.isOwner),\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AdministratorUpdateProps[\"data\"]) => {\n\n if (\"administrator\" in data) {\n\n return {\n // [`${ModelAdministratorFields.user_id}`]: data.administrator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`adm.${ModelAdministratorFields.administrator_id}`]: \"administrator_id\",\n [`adm.${ModelAdministratorFields.user_id}`]: \"user_id\",\n [`adm.${ModelAdministratorFields.is_owner}`]: \"is_owner\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`adm.${ModelAdministratorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`adm.${ModelAdministratorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`adm.${ModelAdministratorFields.isdelete}`]: \"isdelete\",\n [`adm.${ModelAdministratorFields.istrash}`]: \"istrash\",\n [`adm.${ModelAdministratorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\nlet userPropLocationSqlSelect = {\n // [`COALESCE(usrprop_location.${ModelUserPropFields.props_id}::int, 0)`]: \"location_id\",\n [`COALESCE(\n STRING_AGG(DISTINCT usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n ''\n )`]: \"location_id\",\n // [`COALESCE(location.${ModelLocationFields.location_name}::text, '')`]: \"location_name\",\n [`COALESCE(\n STRING_AGG(DISTINCT location.${ModelLocationFields.location_name}::text, ', '),\n ''\n )`]: \"location_name\",\n}\n\nlet groupOwnerSqlSelect = {\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_id}::text, ', '),\n ''\n )`]: \"access_group_id\",\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_label}::text, ', '),\n ''\n )`]: \"access_group_label\",\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_description}::text, ', '),\n ''\n )`]: \"access_group_description\",\n [`COALESCE(\n STRING_AGG(DISTINCT grp.${ModelGroupFields.group_type}::text, ', '),\n ''\n )`]: \"access_group_type\"\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelGroupFields.group_label}', grp.group_label,\n // '${ModelGroupFields.group_id}', grp.group_id,\n // '${ModelGroupFields.group_type}', grp.group_type\n // )\n // ) FILTER (WHERE grp.group_id IS NOT NULL AND grp.isdelete = false AND grp.istrash = false), \n // '[]'\n // )`]: \"grp\"\n}\n\nexport const AdministratorService = (props: AdministratorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const administratorModel = AdministratorModel({ ...rest })\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createAdministrator = async ({ data }: AdministratorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.create({ data: _data })\n\n return response\n }\n\n const updateAdministrator = async ({ userId, data }: AdministratorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update administrator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await administratorModel.update({ where: { [`${ModelAdministratorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getAdministrator = async ({ id, datatypes = [], includePassword = false, skipFilterAccountId = false }: AdministratorGetProps) => {\n\n let { data } = await listAdministrators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: \"user_id\", operator: \"=\", value: id }],\n sortfield: \"user_id\",\n sortorder: \"ASC\",\n datatypes,\n skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const getAdministratorByUsername = async ({ username = \"\", includePassword = false, datatypes = [], skipFilterAccountId = false }: AdministratorGetByUsernameProps) => {\n\n let { data } = await listAdministrators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [\n { field: `username`, operator: \"=\", value: `${username}` },\n { field: `user_type`, operator: \"=\", value: `administrator` },\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n datatypes,\n skipFilterAccountId\n })\n\n return data[0] ?? null;\n\n };\n\n const listAdministrators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = [],\n skipFilterAccountId = false\n }: AdministratorListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n // buildSqlSelect(``, userStatusIsOwnerSqlSelect),\n buildSqlSelect(``, userPropLocationSqlSelect),\n buildSqlSelect(``, groupOwnerSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"adm\", \"users\", \"usr\", [\"adm.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"creator\", [\"adm.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"users\", \"updater\", [\"adm.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"adm\", \"user_status\", \"usrsta_isowner\", [\"adm.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"user_props\", \"usrprop_location\", [\"adm.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"group_owners\", \"grpown\", [\"adm.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n buildSqlRelation(\"left\", \"adm\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userStatusIsOwnerSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n // ...userStatusIsOwnerSqlSelect,\n ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(administratorDataTypes.administratorInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"administrator\")\n\n const administratorInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...administratorInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, administratorInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"adm\", \"user_injection_fields\", \"uif\", [\"adm.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'administrator'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(administratorInjectionFieldSqlSelect)]\n }\n\n if (datatypes.includes(administratorDataTypes.location)) {\n\n let locationSqlSelect = {\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelLocationFields.location_id}', location.location_id,\n '${ModelLocationFields.location_code}', location.location_code,\n '${ModelLocationFields.location_name}', location.location_name,\n '${ModelLocationFields.location_type}', location.location_type,\n '${ModelLocationFields.address_1}', location.address_1,\n '${ModelLocationFields.address_2}', location.address_2,\n '${ModelLocationFields.area_id}', location.area_id,\n '${ModelLocationFields.country_id}', location.country_id,\n '${ModelLocationFields.state_id}', location.state_id,\n '${ModelLocationFields.postcode}', location.postcode,\n '${ModelLocationFields.is_default}', location.is_default,\n '${ModelLocationFields.person_contact}', location.person_contact,\n '${ModelLocationFields.person_name}', location.person_contact,\n '${ModelLocationFields.person_email}', location.person_email,\n '${ModelLocationFields.isdelete}', location.isdelete,\n '${ModelLocationFields.istrash}', location.istrash\n )\n ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n '[]'\n )`]: \"locations\"\n }\n\n filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"adm.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.locationCount)) {\n\n let locationCountSqlSelect = {\n [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n }\n\n filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"adm.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n }\n\n if (datatypes.includes(administratorDataTypes.parentUser)) {\n\n filterColumns = { ...filterColumns, ...userParentSqlSelect }\n\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"users\", \"parentuser\", [\"usr.parent_user_id = parentuser.user_id\", \"parentuser.isdelete = false\", \"parentuser.istrash = false\"])]\n sqlSelect = [...sqlSelect, buildSqlSelect(``, userParentSqlSelect)]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(userParentSqlSelect)]\n\n }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"adm.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `adm.isdelete = false`,\n `adm.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"administrators\",\n mainAlias: \"adm\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId\n })\n\n data = await administratorModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeAdministrators = async ({ userIds }: AdministratorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await administratorModel.remove({\n where: {\n [`${ModelAdministratorFields.user_id}`]: {\n in: userIds\n },\n [`${ModelAdministratorFields.is_owner}`]: false // cannot default is_owner account\n }\n });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(administratorDataTypes);\n }\n\n // return {\n // createAdministrator,\n // updateAdministrator,\n // getAdministrator,\n // listAdministrators,\n // removeAdministrators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getAdministrator: { fn: getAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator\" },\n getAdministratorByUsername: { fn: getAdministratorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator by username\" },\n listAdministrators: { fn: listAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"list administrators\" },\n createAdministrator: { fn: createAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"create administrator\" },\n updateAdministrator: { fn: updateAdministrator, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"update administrator\" },\n removeAdministrators: { fn: removeAdministrators, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"remove administrators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get administrator datatypes\" },\n };\n\n return ServiceFactory(\"AdministratorService\", rest, methodConfigs);\n\n}\n\n"]}
@@ -133,9 +133,10 @@ const OperatorService = (props) => {
133
133
  includePassword,
134
134
  limit: 1,
135
135
  offset: 0,
136
- filters: [{
137
- field: `username`, operator: "=", value: `${username}`
138
- }],
136
+ filters: [
137
+ { field: `username`, operator: "=", value: `${username}` },
138
+ { field: `user_type`, operator: "=", value: `operator` },
139
+ ],
139
140
  sortfield: `${models_1.ModelUserFields.user_id}`,
140
141
  sortorder: "ASC",
141
142
  datatypes
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorService.js","sourceRoot":"","sources":["../../../src/services/user/OperatorService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n OperatorModel,\n ModelOperatorFields,\n} from \"@/models\";\n\nimport { userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"operator\"\n\nexport const operatorDataTypes = {\n // location: \"location\",\n // locationCount: \"location_count\",\n // administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type OperatorDataType = keyof typeof operatorDataTypes;\n\nexport type OperatorServiceProps = DefaultServiceProps & {};\n\nexport type OperatorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorListProps = QueryList & {\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type OperatorCreateProps = {\n data:\n // operator\n {\n operator: {\n userId: number,\n }\n }\n}\n\nexport type OperatorUpdateProps = {\n userId: number,\n data:\n // operator\n {\n operator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: OperatorCreateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n [`${ModelOperatorFields.user_id}`]: data.operator.userId\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: OperatorUpdateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n // [`${ModelOperatorFields.user_id}`]: data.operator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`oper.${ModelOperatorFields.operator_id}`]: \"operator_id\",\n [`oper.${ModelOperatorFields.user_id}`]: \"user_id\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`oper.${ModelOperatorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`oper.${ModelOperatorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`oper.${ModelOperatorFields.isdelete}`]: \"isdelete\",\n [`oper.${ModelOperatorFields.istrash}`]: \"istrash\",\n [`oper.${ModelOperatorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\n// let userPropLocationSqlSelect = {\n// // [`COALESCE(usrprop_location.${ModelUserPropFields.props_id}::int, 0)`]: \"location_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n// ''\n// )`]: \"location_id\",\n// // [`COALESCE(location.${ModelLocationFields.location_name}::text, '')`]: \"location_name\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT location.${ModelLocationFields.location_name}::text, ', '),\n// ''\n// )`]: \"location_name\",\n// }\n\n// let groupOwnerSqlSelect = {\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_id}::text, ', '),\n// ''\n// )`]: \"access_group_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_label}::text, ', '),\n// ''\n// )`]: \"access_group_label\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_description}::text, ', '),\n// ''\n// )`]: \"access_group_description\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_type}::text, ', '),\n// ''\n// )`]: \"access_group_type\"\n// // [`COALESCE(\n// // JSON_AGG(\n// // DISTINCT JSONB_BUILD_OBJECT(\n// // '${ModelGroupFields.group_label}', grp.group_label,\n// // '${ModelGroupFields.group_id}', grp.group_id,\n// // '${ModelGroupFields.group_type}', grp.group_type\n// // )\n// // ) FILTER (WHERE grp.group_id IS NOT NULL AND grp.isdelete = false AND grp.istrash = false), \n// // '[]'\n// // )`]: \"grp\"\n// }\n\nexport const OperatorService = (props: OperatorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const operatorModel = OperatorModel({ ...rest })\n\n // const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createOperator = async ({ data }: OperatorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.create({ data: _data })\n\n return response\n }\n\n const updateOperator = async ({ userId, data }: OperatorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.update({ where: { [`${ModelOperatorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getOperator = async ({ id, datatypes = [], includePassword = false }: OperatorGetProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOperatorFields.user_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOperatorFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const getOperatorByUsername = async ({ username = \"\", includePassword = false, datatypes = [] }: OperatorGetByUsernameProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{\n field: `username`, operator: \"=\", value: `${username}`\n }],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listOperators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: OperatorListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n // buildSqlSelect(``, userStatusIsOwnerSqlSelect),\n // buildSqlSelect(``, userPropLocationSqlSelect),\n // buildSqlSelect(``, groupOwnerSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"oper\", \"users\", \"usr\", [\"oper.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"creator\", [\"oper.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"updater\", [\"oper.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_status\", \"usrsta_isowner\", [\"oper.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_props\", \"usrprop_location\", [\"oper.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"group_owners\", \"grpown\", [\"oper.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userStatusIsOwnerSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n // ...userStatusIsOwnerSqlSelect,\n // ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(operatorDataTypes.parentUser)) {\n\n filterColumns = { ...filterColumns, ...userParentSqlSelect }\n\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"users\", \"parentuser\", [\"usr.parent_user_id = parentuser.user_id\", \"parentuser.isdelete = false\", \"parentuser.istrash = false\"])]\n sqlSelect = [...sqlSelect, buildSqlSelect(``, userParentSqlSelect)]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(userParentSqlSelect)]\n\n }\n\n // if (datatypes.includes(operatorDataTypes.administratorInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"administrator\")\n\n // const administratorInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...administratorInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, administratorInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"adm\", \"user_injection_fields\", \"uif\", [\"oper.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'administrator'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(administratorInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(operatorDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"oper.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(operatorDataTypes.locationCount)) {\n\n // let locationCountSqlSelect = {\n // [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"oper.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `oper.isdelete = false`,\n `oper.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"operators\",\n mainAlias: \"oper\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await operatorModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeOperators = async ({ userIds }: OperatorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await operatorModel.remove({ where: { [`${ModelOperatorFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(operatorDataTypes);\n }\n\n // return {\n // createOperator,\n // updateOperator,\n // getOperator,\n // listOperators,\n // removeOperators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getOperator: { fn: getOperator, allowUserTypes: [\"operator\"] as const, actionName: \"get operator\" },\n getOperatorByUsername: { fn: getOperatorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get operator by username\" },\n listOperators: { fn: listOperators, allowUserTypes: [\"operator\"] as const, actionName: \"list operators\" },\n createOperator: { fn: createOperator, allowUserTypes: [\"operator\"] as const, actionName: \"create operator\" },\n updateOperator: { fn: updateOperator, allowUserTypes: [\"operator\"] as const, actionName: \"update operator\" },\n removeOperators: { fn: removeOperators, allowUserTypes: [\"operator\"] as const, actionName: \"remove operators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\"] as const, actionName: \"get operator datatypes\" },\n };\n\n return ServiceFactory(\"OperatorService\", rest, methodConfigs);\n\n}\n\n"]}
1
+ {"version":3,"file":"OperatorService.js","sourceRoot":"","sources":["../../../src/services/user/OperatorService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n OperatorModel,\n ModelOperatorFields,\n} from \"@/models\";\n\nimport { userParentSqlSelect } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nexport type UserType = \"operator\"\n\nexport const operatorDataTypes = {\n // location: \"location\",\n // locationCount: \"location_count\",\n // administratorInjectionFields: \"administrator_injection_fields\",\n parentUser: \"parent_user\"\n}\n\nexport type OperatorDataType = keyof typeof operatorDataTypes;\n\nexport type OperatorServiceProps = DefaultServiceProps & {};\n\nexport type OperatorGetProps = {\n id: number,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorGetByUsernameProps = {\n username: string,\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorListProps = QueryList & {\n includePassword?: boolean\n datatypes: OperatorDataType[]\n};\n\nexport type OperatorRemoveProps = {\n userIds: BigInt[]\n};\n\nexport type OperatorCreateProps = {\n data:\n // operator\n {\n operator: {\n userId: number,\n }\n }\n}\n\nexport type OperatorUpdateProps = {\n userId: number,\n data:\n // operator\n {\n operator: {\n // userId: number,\n }\n }\n}\n\nconst getCreatePayload = (data: OperatorCreateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n [`${ModelOperatorFields.user_id}`]: data.operator.userId\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: OperatorUpdateProps[\"data\"]) => {\n\n if (\"operator\" in data) {\n\n return {\n // [`${ModelOperatorFields.user_id}`]: data.operator.userId,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`oper.${ModelOperatorFields.operator_id}`]: \"operator_id\",\n [`oper.${ModelOperatorFields.user_id}`]: \"user_id\",\n}\n\nlet userSqlSelect = {\n [`usr.${ModelUserFields.login_username}`]: \"username\",\n [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n [`CONCAT(usr.${ModelUserFields.contact_country_code}, usr.${ModelUserFields.contact_phone_number})`]: \"contact\",\n [`usr.${ModelUserFields.contact_country_code}`]: \"contact_country_code\",\n [`usr.${ModelUserFields.contact_phone_number}`]: \"contact_phone_number\",\n [`usr.${ModelUserFields.email}`]: \"email\",\n [`usr.${ModelUserFields.address}`]: \"address\",\n [`usr.${ModelUserFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`oper.${ModelOperatorFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`oper.${ModelOperatorFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`oper.${ModelOperatorFields.isdelete}`]: \"isdelete\",\n [`oper.${ModelOperatorFields.istrash}`]: \"istrash\",\n [`oper.${ModelOperatorFields.accountid}`]: \"accountid\",\n}\n\n// let userStatusIsOwnerSqlSelect = {\n// [`COALESCE(usrsta_isowner.${ModelUserStatusFields.status}::int, 0)`]: \"is_owner\"\n// }\n\n// let userPropLocationSqlSelect = {\n// // [`COALESCE(usrprop_location.${ModelUserPropFields.props_id}::int, 0)`]: \"location_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT usrprop_location.${ModelUserPropFields.props_id}::text, ', '),\n// ''\n// )`]: \"location_id\",\n// // [`COALESCE(location.${ModelLocationFields.location_name}::text, '')`]: \"location_name\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT location.${ModelLocationFields.location_name}::text, ', '),\n// ''\n// )`]: \"location_name\",\n// }\n\n// let groupOwnerSqlSelect = {\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_id}::text, ', '),\n// ''\n// )`]: \"access_group_id\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_label}::text, ', '),\n// ''\n// )`]: \"access_group_label\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_description}::text, ', '),\n// ''\n// )`]: \"access_group_description\",\n// [`COALESCE(\n// STRING_AGG(DISTINCT grp.${ModelGroupFields.group_type}::text, ', '),\n// ''\n// )`]: \"access_group_type\"\n// // [`COALESCE(\n// // JSON_AGG(\n// // DISTINCT JSONB_BUILD_OBJECT(\n// // '${ModelGroupFields.group_label}', grp.group_label,\n// // '${ModelGroupFields.group_id}', grp.group_id,\n// // '${ModelGroupFields.group_type}', grp.group_type\n// // )\n// // ) FILTER (WHERE grp.group_id IS NOT NULL AND grp.isdelete = false AND grp.istrash = false), \n// // '[]'\n// // )`]: \"grp\"\n// }\n\nexport const OperatorService = (props: OperatorServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const operatorModel = OperatorModel({ ...rest })\n\n // const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"user\" })\n\n const createOperator = async ({ data }: OperatorCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.create({ data: _data })\n\n return response\n }\n\n const updateOperator = async ({ userId, data }: OperatorUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update operator payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await operatorModel.update({ where: { [`${ModelOperatorFields.user_id}`]: userId }, data: _data })\n\n return response\n }\n\n const getOperator = async ({ id, datatypes = [], includePassword = false }: OperatorGetProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOperatorFields.user_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOperatorFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const getOperatorByUsername = async ({ username = \"\", includePassword = false, datatypes = [] }: OperatorGetByUsernameProps) => {\n\n let { data } = await listOperators({\n includePassword,\n limit: 1,\n offset: 0,\n filters: [\n { field: `username`, operator: \"=\", value: `${username}` },\n { field: `user_type`, operator: \"=\", value: `operator` },\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listOperators = async ({\n includePassword = false,\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: OperatorListProps) => {\n\n let data = []\n\n if (includePassword === true) {\n userSqlSelect = {\n ...userSqlSelect,\n [`usr.${ModelUserFields.login_password}`]: \"password\",\n }\n } else {\n delete userSqlSelect[`usr.${ModelUserFields.login_password}`];\n }\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n // buildSqlSelect(``, userStatusIsOwnerSqlSelect),\n // buildSqlSelect(``, userPropLocationSqlSelect),\n // buildSqlSelect(``, groupOwnerSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"oper\", \"users\", \"usr\", [\"oper.user_id = usr.user_id\", \"usr.isdelete = false\", \"usr.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"creator\", [\"oper.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"oper\", \"users\", \"updater\", [\"oper.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_status\", \"usrsta_isowner\", [\"oper.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"user_props\", \"usrprop_location\", [\"oper.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"group_owners\", \"grpown\", [\"oper.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n // buildSqlRelation(\"left\", \"oper\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(userSqlSelect),\n // ...Object.keys(userStatusIsOwnerSqlSelect),\n // ...Object.keys(userPropLocationSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...userSqlSelect,\n // ...userStatusIsOwnerSqlSelect,\n // ...userPropLocationSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(operatorDataTypes.parentUser)) {\n\n filterColumns = { ...filterColumns, ...userParentSqlSelect }\n\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"wrk\", \"users\", \"parentuser\", [\"usr.parent_user_id = parentuser.user_id\", \"parentuser.isdelete = false\", \"parentuser.istrash = false\"])]\n sqlSelect = [...sqlSelect, buildSqlSelect(``, userParentSqlSelect)]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(userParentSqlSelect)]\n\n }\n\n // if (datatypes.includes(operatorDataTypes.administratorInjectionFields)) {\n\n // let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"user\", \"administrator\")\n\n // const administratorInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"uif\", activeInjectionFields)\n\n // filterColumns = { ...filterColumns, ...administratorInjectionFieldSqlSelect }\n\n // sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, administratorInjectionFieldSqlSelect)] : [])]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"adm\", \"user_injection_fields\", \"uif\", [\"oper.user_id = uif.user_id\", \"uif.field_ref = 'user'\", \"uif.field_module = 'administrator'\", \"uif.isdelete = false\", \"uif.istrash = false\"])]\n // sqlGroupBy = [...sqlGroupBy, ...Object.keys(administratorInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(operatorDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"oper.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(operatorDataTypes.locationCount)) {\n\n // let locationCountSqlSelect = {\n // [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"oper.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `oper.isdelete = false`,\n `oper.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"operators\",\n mainAlias: \"oper\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true\n })\n\n data = await operatorModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeOperators = async ({ userIds }: OperatorRemoveProps) => {\n\n if (!userIds.length) throwError('userIds is required');\n\n const response = await operatorModel.remove({ where: { [`${ModelOperatorFields.user_id}`]: { in: userIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(operatorDataTypes);\n }\n\n // return {\n // createOperator,\n // updateOperator,\n // getOperator,\n // listOperators,\n // removeOperators,\n // getDataTypes\n // }\n\n const methodConfigs = {\n getOperator: { fn: getOperator, allowUserTypes: [\"operator\"] as const, actionName: \"get operator\" },\n getOperatorByUsername: { fn: getOperatorByUsername, allowUserTypes: [\"operator\", \"administrator\"] as const, actionName: \"get operator by username\" },\n listOperators: { fn: listOperators, allowUserTypes: [\"operator\"] as const, actionName: \"list operators\" },\n createOperator: { fn: createOperator, allowUserTypes: [\"operator\"] as const, actionName: \"create operator\" },\n updateOperator: { fn: updateOperator, allowUserTypes: [\"operator\"] as const, actionName: \"update operator\" },\n removeOperators: { fn: removeOperators, allowUserTypes: [\"operator\"] as const, actionName: \"remove operators\" },\n getDataTypes: { fn: getDataTypes, allowUserTypes: [\"operator\"] as const, actionName: \"get operator datatypes\" },\n };\n\n return ServiceFactory(\"OperatorService\", rest, methodConfigs);\n\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.159",
3
+ "version": "1.0.160",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",