@fonoster/identity 0.7.4 → 0.7.7

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 (68) hide show
  1. package/README.md +163 -2
  2. package/dist/apikeys/createApiKey.d.ts +3 -3
  3. package/dist/apikeys/createApiKey.js +24 -36
  4. package/dist/apikeys/deleteApiKey.d.ts +2 -3
  5. package/dist/apikeys/deleteApiKey.js +11 -21
  6. package/dist/apikeys/listApiKeys.d.ts +2 -3
  7. package/dist/apikeys/listApiKeys.js +21 -1
  8. package/dist/apikeys/regenerateApiKey.d.ts +2 -3
  9. package/dist/apikeys/regenerateApiKey.js +18 -26
  10. package/dist/db.d.ts +1 -1
  11. package/dist/errors.d.ts +1 -1
  12. package/dist/errors.js +1 -1
  13. package/dist/exchanges/exchangeApiKey.d.ts +2 -19
  14. package/dist/exchanges/exchangeApiKey.js +12 -22
  15. package/dist/exchanges/exchangeCredentials.d.ts +2 -19
  16. package/dist/exchanges/exchangeCredentials.js +12 -22
  17. package/dist/exchanges/exchangeRefreshToken.d.ts +2 -16
  18. package/dist/exchanges/exchangeRefreshToken.js +11 -19
  19. package/dist/exchanges/index.d.ts +1 -1
  20. package/dist/exchanges/index.js +1 -1
  21. package/dist/exchanges/payloads/users/index.d.ts +1 -1
  22. package/dist/exchanges/payloads/users/index.js +1 -1
  23. package/dist/exchanges/types.d.ts +11 -1
  24. package/dist/index.d.ts +4 -4
  25. package/dist/index.js +4 -4
  26. package/dist/invites/index.d.ts +1 -1
  27. package/dist/invites/index.js +1 -1
  28. package/dist/invites/sendInvite.d.ts +1 -1
  29. package/dist/roles.d.ts +1 -1
  30. package/dist/roles.js +1 -1
  31. package/dist/service.d.ts +37 -57
  32. package/dist/users/createUser.d.ts +2 -3
  33. package/dist/users/createUser.js +16 -28
  34. package/dist/users/deleteUser.d.ts +3 -3
  35. package/dist/users/deleteUser.js +14 -20
  36. package/dist/users/getUser.d.ts +2 -3
  37. package/dist/users/getUser.js +20 -23
  38. package/dist/users/index.d.ts +1 -1
  39. package/dist/users/index.js +1 -1
  40. package/dist/users/updateUser.d.ts +2 -3
  41. package/dist/users/updateUser.js +23 -34
  42. package/dist/users/upsertDefaultUser.d.ts +2 -2
  43. package/dist/users/upsertDefaultUser.js +2 -2
  44. package/dist/utils/generateAccessKeyId.d.ts +1 -1
  45. package/dist/utils/getApiKeyByAccessKeyId.d.ts +3 -3
  46. package/dist/utils/getUserByEmail.d.ts +2 -2
  47. package/dist/utils/index.d.ts +5 -5
  48. package/dist/utils/index.js +5 -5
  49. package/dist/utils/withAccess.js +10 -34
  50. package/dist/workspaces/createWorkspace.d.ts +2 -3
  51. package/dist/workspaces/createWorkspace.js +17 -25
  52. package/dist/workspaces/deleteWorkspace.d.ts +2 -3
  53. package/dist/workspaces/deleteWorkspace.js +14 -17
  54. package/dist/workspaces/getWorkspace.d.ts +2 -3
  55. package/dist/workspaces/getWorkspace.js +20 -23
  56. package/dist/workspaces/index.d.ts +2 -2
  57. package/dist/workspaces/index.js +2 -2
  58. package/dist/workspaces/inviteUserToWorkspace.d.ts +2 -3
  59. package/dist/workspaces/inviteUserToWorkspace.js +57 -70
  60. package/dist/workspaces/listWorkspaces.d.ts +1 -2
  61. package/dist/workspaces/listWorkspaces.js +21 -1
  62. package/dist/workspaces/removeUserFromWorkspace.d.ts +2 -3
  63. package/dist/workspaces/removeUserFromWorkspace.js +34 -37
  64. package/dist/workspaces/resendWorkspaceMembershipInvitation.d.ts +2 -3
  65. package/dist/workspaces/resendWorkspaceMembershipInvitation.js +47 -50
  66. package/dist/workspaces/updateWorkspace.d.ts +2 -3
  67. package/dist/workspaces/updateWorkspace.js +21 -30
  68. package/package.json +5 -5
@@ -34,28 +34,20 @@ exports.exchangeRefreshToken = exchangeRefreshToken;
34
34
  const common_1 = require("@fonoster/common");
35
35
  const logger_1 = require("@fonoster/logger");
36
36
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
37
- const zod_1 = require("zod");
38
37
  const exchangeTokens_1 = require("./exchangeTokens");
39
38
  const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
40
- const ExchangeRefreshTokenRequestSchema = zod_1.z.object({
41
- refreshToken: zod_1.z.string()
42
- });
43
39
  const SIGN_ALGORITHM = "RS256";
44
40
  function exchangeRefreshToken(prisma, identityConfig) {
45
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
46
- try {
47
- const validatedRequest = ExchangeRefreshTokenRequestSchema.parse(call.request);
48
- const { refreshToken: oldRefreshToken } = validatedRequest;
49
- const { privateKey } = identityConfig;
50
- const oldRefreshTokenDecoded = jsonwebtoken_1.default.verify(oldRefreshToken, privateKey, {
51
- algorithms: [SIGN_ALGORITHM]
52
- });
53
- const { accessKeyId } = oldRefreshTokenDecoded;
54
- logger.verbose("call to exchangeRefreshToken", { accessKeyId });
55
- return callback(null, yield (0, exchangeTokens_1.exchangeTokens)(prisma, identityConfig)(accessKeyId));
56
- }
57
- catch (error) {
58
- (0, common_1.handleError)(error, callback);
59
- }
41
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
42
+ const { privateKey } = identityConfig;
43
+ const { request } = call;
44
+ const { refreshToken: oldRefreshToken } = request;
45
+ const oldRefreshTokenDecoded = jsonwebtoken_1.default.verify(oldRefreshToken, privateKey, {
46
+ algorithms: [SIGN_ALGORITHM]
47
+ });
48
+ const { accessKeyId } = oldRefreshTokenDecoded;
49
+ logger.verbose("call to exchangeRefreshToken", { accessKeyId });
50
+ callback(null, yield (0, exchangeTokens_1.exchangeTokens)(prisma, identityConfig)(accessKeyId));
60
51
  });
52
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.exchangeRefreshTokenRequestSchema);
61
53
  }
@@ -1,5 +1,5 @@
1
+ export * from "./TokenUseEnum";
1
2
  export * from "./exchangeApiKey";
2
3
  export * from "./exchangeCredentials";
3
4
  export * from "./exchangeRefreshToken";
4
- export * from "./TokenUseEnum";
5
5
  export * from "./types";
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./TokenUseEnum"), exports);
17
18
  /*
18
19
  * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
19
20
  * http://github.com/fonoster/fonoster
@@ -35,5 +36,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
35
36
  __exportStar(require("./exchangeApiKey"), exports);
36
37
  __exportStar(require("./exchangeCredentials"), exports);
37
38
  __exportStar(require("./exchangeRefreshToken"), exports);
38
- __exportStar(require("./TokenUseEnum"), exports);
39
39
  __exportStar(require("./types"), exports);
@@ -1,3 +1,3 @@
1
- export * from "./getIdTokenPayload";
2
1
  export * from "./getAccessTokenPayload";
2
+ export * from "./getIdTokenPayload";
3
3
  export * from "./getRefreshTokenPayload";
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./getAccessTokenPayload"), exports);
17
18
  /*
18
19
  * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
19
20
  * http://github.com/fonoster/fonoster
@@ -33,5 +34,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
34
  * limitations under the License.
34
35
  */
35
36
  __exportStar(require("./getIdTokenPayload"), exports);
36
- __exportStar(require("./getAccessTokenPayload"), exports);
37
37
  __exportStar(require("./getRefreshTokenPayload"), exports);
@@ -1,4 +1,6 @@
1
+ import { Validators as V } from "@fonoster/common";
1
2
  import { WorkspaceRoleEnum } from "@fonoster/types";
3
+ import { z } from "zod";
2
4
  import { TokenUseEnum } from "./TokenUseEnum";
3
5
  type Role = {
4
6
  name: string;
@@ -53,4 +55,12 @@ type IdentityConfig = {
53
55
  };
54
56
  };
55
57
  type DecodedToken<T extends TokenUseEnum> = T extends TokenUseEnum.ID ? IdToken : T extends TokenUseEnum.ACCESS ? AccessToken : T extends TokenUseEnum.REFRESH ? TokenUseEnum : never;
56
- export { Role, IdToken, Access, AccessToken, RefreshToken, DecodedToken, IdentityConfig };
58
+ type ExchangeApiKeysRequest = z.infer<typeof V.exchangeApiKeysRequestSchema>;
59
+ type ExchangeCredentialsRequest = z.infer<typeof V.exchangeCredentialsRequestSchema>;
60
+ type ExchangeResponse = {
61
+ idToken: string;
62
+ accessToken: string;
63
+ refreshToken: string;
64
+ };
65
+ type ExchangeRefreshTokenRequest = z.infer<typeof V.exchangeRefreshTokenRequestSchema>;
66
+ export { Access, AccessToken, DecodedToken, ExchangeApiKeysRequest, ExchangeCredentialsRequest, ExchangeRefreshTokenRequest, ExchangeResponse, IdToken, IdentityConfig, RefreshToken, Role };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  export * from "./apikeys";
3
+ export * from "./createAuthInterceptor";
3
4
  export * from "./exchanges";
5
+ export * from "./getPublicKeyClient";
4
6
  export * from "./invites";
7
+ export * from "./service";
5
8
  export * from "./users";
6
- export * from "./workspaces";
7
9
  export * from "./utils";
8
- export * from "./service";
9
- export * from "./createAuthInterceptor";
10
- export * from "./getPublicKeyClient";
10
+ export * from "./workspaces";
package/dist/index.js CHANGED
@@ -34,11 +34,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
34
34
  * limitations under the License.
35
35
  */
36
36
  __exportStar(require("./apikeys"), exports);
37
+ __exportStar(require("./createAuthInterceptor"), exports);
37
38
  __exportStar(require("./exchanges"), exports);
39
+ __exportStar(require("./getPublicKeyClient"), exports);
38
40
  __exportStar(require("./invites"), exports);
41
+ __exportStar(require("./service"), exports);
39
42
  __exportStar(require("./users"), exports);
40
- __exportStar(require("./workspaces"), exports);
41
43
  __exportStar(require("./utils"), exports);
42
- __exportStar(require("./service"), exports);
43
- __exportStar(require("./createAuthInterceptor"), exports);
44
- __exportStar(require("./getPublicKeyClient"), exports);
44
+ __exportStar(require("./workspaces"), exports);
@@ -1,3 +1,3 @@
1
- export * from "./createInviteBody";
2
1
  export * from "./EmailTemplatesEnum";
2
+ export * from "./createInviteBody";
3
3
  export * from "./sendInvite";
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./EmailTemplatesEnum"), exports);
17
18
  /*
18
19
  * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
19
20
  * http://github.com/fonoster/fonoster
@@ -33,5 +34,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
34
  * limitations under the License.
34
35
  */
35
36
  __exportStar(require("./createInviteBody"), exports);
36
- __exportStar(require("./EmailTemplatesEnum"), exports);
37
37
  __exportStar(require("./sendInvite"), exports);
@@ -8,4 +8,4 @@ type InviteParams = {
8
8
  };
9
9
  type SendInvite = (sendEmail: (params: EmailParams) => Promise<void>, request: InviteParams) => Promise<void>;
10
10
  declare function sendInvite(sendEmail: (params: EmailParams) => Promise<void>, request: InviteParams): Promise<void>;
11
- export { sendInvite, SendInvite, InviteParams };
11
+ export { InviteParams, SendInvite, sendInvite };
package/dist/roles.d.ts CHANGED
@@ -2,4 +2,4 @@ import { Role } from "./exchanges/types";
2
2
  declare const VOICE_SERVICE_ROLE = "VOICE_SERVICE";
3
3
  declare const workspaceAccess: string[];
4
4
  declare const roles: Role[];
5
- export { roles, workspaceAccess, VOICE_SERVICE_ROLE };
5
+ export { VOICE_SERVICE_ROLE, roles, workspaceAccess };
package/dist/roles.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VOICE_SERVICE_ROLE = exports.workspaceAccess = exports.roles = void 0;
3
+ exports.workspaceAccess = exports.roles = exports.VOICE_SERVICE_ROLE = void 0;
4
4
  /* eslint-disable sonarjs/no-duplicate-string */
5
5
  /*
6
6
  * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
package/dist/service.d.ts CHANGED
@@ -14,82 +14,62 @@ declare function buildIdentityService(identityConfig: IdentityConfig): {
14
14
  };
15
15
  handlers: {
16
16
  createWorkspace: (call: {
17
- request: import("@fonoster/types").CreateWorkspaceRequest;
18
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
17
+ request: unknown;
18
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
19
19
  deleteWorkspace: (call: {
20
- request: import("@fonoster/types").BaseApiObject;
21
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
20
+ request: unknown;
21
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
22
22
  getWorkspace: (call: {
23
- request: import("@fonoster/types").BaseApiObject;
24
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").Workspace) => void) => Promise<void>;
23
+ request: unknown;
24
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
25
25
  updateWorkspace: (call: {
26
- request: import("@fonoster/types").UpdateWorkspaceRequest;
27
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
26
+ request: unknown;
27
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
28
28
  listWorkspaces: (call: {
29
29
  request: unknown;
30
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").ListWorkspacesResponse) => void) => Promise<void>;
30
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
31
31
  inviteUserToWorkspace: (call: {
32
- request: import("@fonoster/types").InviteUserToWorkspaceRequest;
33
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").InviteUserToWorkspaceResponse) => void) => Promise<void>;
32
+ request: unknown;
33
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
34
34
  resendWorkspaceMembershipInvitation: (call: {
35
- request: import("@fonoster/types").ResendWorkspaceMembershipInvitationRequest;
36
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").ResendWorkspaceMembershipInvitationResponse) => void) => Promise<void>;
35
+ request: unknown;
36
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
37
37
  removeUserFromWorkspace: (call: {
38
- request: import("@fonoster/types").RemoveUserFromWorkspaceRequest;
39
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").RemoveUserFromWorkspaceResponse) => void) => Promise<void>;
38
+ request: unknown;
39
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
40
40
  createUser: (call: {
41
- request: import("@fonoster/types").CreateUserRequest;
42
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
41
+ request: unknown;
42
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
43
43
  getUser: (call: {
44
- request: import("@fonoster/types").BaseApiObject;
45
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").User) => void) => Promise<void>;
44
+ request: unknown;
45
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
46
46
  deleteUser: (call: {
47
- request: import("@fonoster/common").BaseApiObject;
48
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/common").BaseApiObject) => void) => Promise<void>;
47
+ request: unknown;
48
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
49
49
  updateUser: (call: {
50
- request: import("@fonoster/types").UpdateUserRequest;
51
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
50
+ request: unknown;
51
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
52
52
  createApiKey: (call: {
53
- request: import("@fonoster/types/dist/identity.types").CreateApiKeyRequest;
54
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types/dist/identity.types").CreateApiKeyResponse) => void) => Promise<void>;
53
+ request: unknown;
54
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
55
55
  deleteApiKey: (call: {
56
- request: import("@fonoster/types").BaseApiObject;
57
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
56
+ request: unknown;
57
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
58
58
  listApiKeys: (call: {
59
- request: import("@fonoster/types").ListApiKeysRequest;
60
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").ListApiKeysResponse) => void) => Promise<void>;
59
+ request: unknown;
60
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
61
61
  regenerateApiKey: (call: {
62
- request: import("@fonoster/types").BaseApiObject;
63
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").RegenerateApiKeyResponse) => void) => Promise<void>;
62
+ request: unknown;
63
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
64
64
  exchangeApiKey: (call: {
65
- request: {
66
- accessKeyId?: string;
67
- accessKeySecret?: string;
68
- };
69
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: {
70
- idToken: string;
71
- accessToken: string;
72
- refreshToken: string;
73
- }) => void) => Promise<void>;
65
+ request: unknown;
66
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
74
67
  exchangeCredentials: (call: {
75
- request: {
76
- username?: string;
77
- password?: string;
78
- };
79
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: {
80
- idToken: string;
81
- accessToken: string;
82
- refreshToken: string;
83
- }) => void) => Promise<void>;
68
+ request: unknown;
69
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
84
70
  exchangeRefreshToken: (call: {
85
- request: {
86
- refreshToken?: string;
87
- };
88
- }, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: {
89
- idToken: string;
90
- accessToken: string;
91
- refreshToken: string;
92
- }) => void) => Promise<void>;
71
+ request: unknown;
72
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
93
73
  getPublicKey: (_: unknown, callback: (error: import("@fonoster/common").GrpcErrorMessage, response?: {
94
74
  publicKey: string;
95
75
  }) => void) => Promise<void>;
@@ -1,7 +1,6 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
- import { BaseApiObject, CreateUserRequest } from "@fonoster/types";
3
2
  import { Prisma } from "../db";
4
3
  declare function createUser(prisma: Prisma): (call: {
5
- request: CreateUserRequest;
6
- }, callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
7
6
  export { createUser };
@@ -30,36 +30,24 @@ exports.createUser = createUser;
30
30
  */
31
31
  const common_1 = require("@fonoster/common");
32
32
  const logger_1 = require("@fonoster/logger");
33
- const zod_1 = require("zod");
34
33
  const generateAccessKeyId_1 = require("../utils/generateAccessKeyId");
35
34
  const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
36
- const CreateUserRequestSchema = zod_1.z.object({
37
- name: zod_1.z.string().min(3, "Name must contain at least 3 characters").max(50),
38
- email: zod_1.z.string().email(),
39
- password: zod_1.z.string().min(8).max(100),
40
- avatar: zod_1.z.string().url()
41
- });
42
35
  function createUser(prisma) {
43
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
44
- try {
45
- const validatedRequest = CreateUserRequestSchema.parse(call.request);
46
- const { name, email, password, avatar } = validatedRequest;
47
- logger.verbose("call to createUser", { email });
48
- const user = yield prisma.user.create({
49
- data: {
50
- name,
51
- email,
52
- accessKeyId: (0, generateAccessKeyId_1.generateAccessKeyId)(generateAccessKeyId_1.AccessKeyIdType.USER),
53
- password,
54
- avatar
55
- }
56
- });
57
- callback(null, {
58
- ref: user.ref
59
- });
60
- }
61
- catch (error) {
62
- (0, common_1.handleError)(error, callback);
63
- }
36
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
37
+ const { request } = call;
38
+ const { name, email, password, avatar } = request;
39
+ logger.verbose("call to createUser", { email });
40
+ const user = yield prisma.user.create({
41
+ data: {
42
+ name,
43
+ email,
44
+ accessKeyId: (0, generateAccessKeyId_1.generateAccessKeyId)(generateAccessKeyId_1.AccessKeyIdType.USER),
45
+ password,
46
+ avatar
47
+ }
48
+ });
49
+ const { ref } = user;
50
+ callback(null, { ref });
64
51
  });
52
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.createUserRequestSchema);
65
53
  }
@@ -1,6 +1,6 @@
1
- import { BaseApiObject, GrpcErrorMessage } from "@fonoster/common";
1
+ import { GrpcErrorMessage } from "@fonoster/common";
2
2
  import { Prisma } from "../db";
3
3
  declare function deleteUser(prisma: Prisma): (call: {
4
- request: BaseApiObject;
5
- }, callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
6
6
  export { deleteUser };
@@ -34,25 +34,19 @@ const utils_1 = require("../utils");
34
34
  const getTokenFromCall_1 = require("../utils/getTokenFromCall");
35
35
  const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
36
36
  function deleteUser(prisma) {
37
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
38
- try {
39
- const { ref } = call.request;
40
- const token = (0, getTokenFromCall_1.getTokenFromCall)(call);
41
- const accessKeyId = (0, utils_1.getAccessKeyIdFromToken)(token);
42
- logger.verbose("deleting user from the system", { ref, accessKeyId });
43
- yield prisma.user.delete({
44
- where: {
45
- ref,
46
- accessKeyId
47
- }
48
- });
49
- const response = {
50
- ref
51
- };
52
- callback(null, response);
53
- }
54
- catch (error) {
55
- (0, common_1.handleError)(error, callback);
56
- }
37
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
38
+ const { request } = call;
39
+ const { ref } = request;
40
+ const token = (0, getTokenFromCall_1.getTokenFromCall)(call);
41
+ const accessKeyId = (0, utils_1.getAccessKeyIdFromToken)(token);
42
+ logger.verbose("deleting user from the system", { ref, accessKeyId });
43
+ yield prisma.user.delete({
44
+ where: {
45
+ ref,
46
+ accessKeyId
47
+ }
48
+ });
49
+ callback(null, { ref });
57
50
  });
51
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.baseApiObjectSchema);
58
52
  }
@@ -1,7 +1,6 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
- import { BaseApiObject, User } from "@fonoster/types";
3
2
  import { Prisma } from "../db";
4
3
  declare function getUser(prisma: Prisma): (call: {
5
- request: BaseApiObject;
6
- }, callback: (error: GrpcErrorMessage, response?: User) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
7
6
  export { getUser };
@@ -35,32 +35,29 @@ const utils_1 = require("../utils");
35
35
  const getTokenFromCall_1 = require("../utils/getTokenFromCall");
36
36
  const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
37
37
  function getUser(prisma) {
38
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
39
- try {
40
- const { ref } = call.request;
41
- const token = (0, getTokenFromCall_1.getTokenFromCall)(call);
42
- const accessKeyId = (0, utils_1.getAccessKeyIdFromToken)(token);
43
- logger.verbose("getting user with ref and accessKeyId", {
38
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
39
+ const { request } = call;
40
+ const { ref } = request;
41
+ const token = (0, getTokenFromCall_1.getTokenFromCall)(call);
42
+ const accessKeyId = (0, utils_1.getAccessKeyIdFromToken)(token);
43
+ logger.verbose("getting user with ref and accessKeyId", {
44
+ ref,
45
+ accessKeyId
46
+ });
47
+ const user = yield prisma.user.findUnique({
48
+ where: {
44
49
  ref,
45
50
  accessKeyId
46
- });
47
- const user = yield prisma.user.findUnique({
48
- where: {
49
- ref,
50
- accessKeyId
51
- }
52
- });
53
- if (!user) {
54
- callback({
55
- code: grpc_js_1.status.NOT_FOUND,
56
- message: `User not found: ${ref}`
57
- });
58
- return;
59
51
  }
60
- callback(null, (0, common_1.datesMapper)(user));
61
- }
62
- catch (error) {
63
- (0, common_1.handleError)(error, callback);
52
+ });
53
+ if (!user) {
54
+ callback({
55
+ code: grpc_js_1.status.NOT_FOUND,
56
+ message: `User not found: ${ref}`
57
+ });
58
+ return;
64
59
  }
60
+ callback(null, (0, common_1.datesMapper)(user));
65
61
  });
62
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.baseApiObjectSchema);
66
63
  }
@@ -1,5 +1,5 @@
1
1
  export * from "./createUser";
2
- export * from "./getUser";
3
2
  export * from "./deleteUser";
3
+ export * from "./getUser";
4
4
  export * from "./updateUser";
5
5
  export * from "./upsertDefaultUser";
@@ -33,7 +33,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
33
  * limitations under the License.
34
34
  */
35
35
  __exportStar(require("./createUser"), exports);
36
- __exportStar(require("./getUser"), exports);
37
36
  __exportStar(require("./deleteUser"), exports);
37
+ __exportStar(require("./getUser"), exports);
38
38
  __exportStar(require("./updateUser"), exports);
39
39
  __exportStar(require("./upsertDefaultUser"), exports);
@@ -1,7 +1,6 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
- import { BaseApiObject, UpdateUserRequest } from "@fonoster/types";
3
2
  import { Prisma } from "../db";
4
3
  declare function updateUser(prisma: Prisma): (call: {
5
- request: UpdateUserRequest;
6
- }, callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
7
6
  export { updateUser };
@@ -30,43 +30,32 @@ exports.updateUser = updateUser;
30
30
  */
31
31
  const common_1 = require("@fonoster/common");
32
32
  const logger_1 = require("@fonoster/logger");
33
- const zod_1 = require("zod");
34
33
  const utils_1 = require("../utils");
35
34
  const getTokenFromCall_1 = require("../utils/getTokenFromCall");
36
35
  const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
37
- const UpdateUserRequestSchema = zod_1.z.object({
38
- ref: zod_1.z.string(),
39
- name: zod_1.z.string().min(3).max(50).or(zod_1.z.string().optional().nullable()),
40
- password: zod_1.z.string().min(8).max(50).or(zod_1.z.string().optional().nullable()),
41
- avatar: zod_1.z.string().url().or(zod_1.z.string().optional().nullable())
42
- });
43
36
  function updateUser(prisma) {
44
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
45
- try {
46
- const validatedRequest = UpdateUserRequestSchema.parse(call.request);
47
- const token = (0, getTokenFromCall_1.getTokenFromCall)(call);
48
- const accessKeyId = (0, utils_1.getAccessKeyIdFromToken)(token);
49
- const { ref, name, avatar, password } = validatedRequest;
50
- logger.verbose("call to updateUser", { ref, password });
51
- yield prisma.user.update({
52
- where: {
53
- ref,
54
- accessKeyId
55
- },
56
- data: {
57
- name,
58
- avatar,
59
- password: password || undefined,
60
- updatedAt: new Date()
61
- }
62
- });
63
- const response = {
64
- ref
65
- };
66
- callback(null, response);
67
- }
68
- catch (error) {
69
- (0, common_1.handleError)(error, callback);
70
- }
37
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
38
+ const { request } = call;
39
+ const { ref, name, avatar, password } = request;
40
+ const token = (0, getTokenFromCall_1.getTokenFromCall)(call);
41
+ const accessKeyId = (0, utils_1.getAccessKeyIdFromToken)(token);
42
+ logger.verbose("call to updateUser", { ref, password });
43
+ yield prisma.user.update({
44
+ where: {
45
+ ref,
46
+ accessKeyId
47
+ },
48
+ data: {
49
+ name,
50
+ avatar,
51
+ password: password || undefined,
52
+ updatedAt: new Date()
53
+ }
54
+ });
55
+ const response = {
56
+ ref
57
+ };
58
+ callback(null, response);
71
59
  });
60
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.updateUserRequestSchema);
72
61
  }
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- declare const CreateUserRequestSchema: z.ZodObject<{
2
+ declare const createUserRequestSchema: z.ZodObject<{
3
3
  name: z.ZodString;
4
4
  email: z.ZodString;
5
5
  password: z.ZodUnion<[z.ZodString, z.ZodNullable<z.ZodOptional<z.ZodString>>]>;
@@ -12,6 +12,6 @@ declare const CreateUserRequestSchema: z.ZodObject<{
12
12
  email?: string;
13
13
  password?: string;
14
14
  }>;
15
- type CreateUserRequest = z.infer<typeof CreateUserRequestSchema>;
15
+ type CreateUserRequest = z.infer<typeof createUserRequestSchema>;
16
16
  declare function upsertDefaultUser(request: CreateUserRequest): Promise<void>;
17
17
  export { upsertDefaultUser };
@@ -32,7 +32,7 @@ const logger_1 = require("@fonoster/logger");
32
32
  const zod_1 = require("zod");
33
33
  const db_1 = require("../db");
34
34
  const logger = (0, logger_1.getLogger)({ service: "identity", filePath: __filename });
35
- const CreateUserRequestSchema = zod_1.z.object({
35
+ const createUserRequestSchema = zod_1.z.object({
36
36
  name: zod_1.z.string().min(3).max(50),
37
37
  email: zod_1.z.string().email(),
38
38
  password: zod_1.z.string().min(8).max(50).or(zod_1.z.string().optional().nullable())
@@ -44,7 +44,7 @@ const WORKSPACE_ACCESS_KEY_ID = "WO00000000000000000000000000000000";
44
44
  function upsertDefaultUser(request) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  try {
47
- const validatedRequest = CreateUserRequestSchema.parse(request);
47
+ const validatedRequest = createUserRequestSchema.parse(request);
48
48
  const { name, email, password } = validatedRequest;
49
49
  logger.verbose("call to upsertDefaultUser", {
50
50
  email,
@@ -5,4 +5,4 @@ declare enum AccessKeyIdType {
5
5
  API_KEY = 3
6
6
  }
7
7
  declare function generateAccessKeyId(type: AccessKeyIdType): string;
8
- export { generateAccessKeyId, AccessKeyIdType };
8
+ export { AccessKeyIdType, generateAccessKeyId };