@greatapps/common 1.1.44 → 1.1.47

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.
@@ -7,8 +7,12 @@ async function listAccountUsersAction(params) {
7
7
  const { users, total } = await accountService.listAccountUsers(params);
8
8
  return { success: true, data: users, total };
9
9
  } catch (error) {
10
- if (error instanceof ApiError) return { success: false, error: error.message };
11
- return { success: false, error: "Erro ao listar usu\xE1rios. Tente novamente." };
10
+ if (error instanceof ApiError)
11
+ return { success: false, error: error.message };
12
+ return {
13
+ success: false,
14
+ error: "Erro ao listar usu\xE1rios. Tente novamente."
15
+ };
12
16
  }
13
17
  }
14
18
  async function updateUserAction(user) {
@@ -16,8 +20,12 @@ async function updateUserAction(user) {
16
20
  const result = await accountService.updateAccountUser(user);
17
21
  return { success: true, data: result };
18
22
  } catch (error) {
19
- if (error instanceof ApiError) return { success: false, error: error.message };
20
- return { success: false, error: "Erro ao atualizar usu\xE1rio. Tente novamente." };
23
+ if (error instanceof ApiError)
24
+ return { success: false, error: error.message };
25
+ return {
26
+ success: false,
27
+ error: "Erro ao atualizar usu\xE1rio. Tente novamente."
28
+ };
21
29
  }
22
30
  }
23
31
  async function updateAccountUserByIdAction(userId, user) {
@@ -25,8 +33,12 @@ async function updateAccountUserByIdAction(userId, user) {
25
33
  const result = await accountService.updateAccountUserById(userId, user);
26
34
  return { success: true, data: result };
27
35
  } catch (error) {
28
- if (error instanceof ApiError) return { success: false, error: error.message };
29
- return { success: false, error: "Erro ao atualizar usu\xE1rio. Tente novamente." };
36
+ if (error instanceof ApiError)
37
+ return { success: false, error: error.message };
38
+ return {
39
+ success: false,
40
+ error: "Erro ao atualizar usu\xE1rio. Tente novamente."
41
+ };
30
42
  }
31
43
  }
32
44
  async function updateAccountAction(data) {
@@ -34,8 +46,12 @@ async function updateAccountAction(data) {
34
46
  await accountService.updateAccount(data);
35
47
  return { success: true };
36
48
  } catch (error) {
37
- if (error instanceof ApiError) return { success: false, error: error.message };
38
- return { success: false, error: "Erro ao atualizar conta. Tente novamente." };
49
+ if (error instanceof ApiError)
50
+ return { success: false, error: error.message };
51
+ return {
52
+ success: false,
53
+ error: "Erro ao atualizar conta. Tente novamente."
54
+ };
39
55
  }
40
56
  }
41
57
  async function deleteAccountUserAction(userId) {
@@ -43,8 +59,12 @@ async function deleteAccountUserAction(userId) {
43
59
  await accountService.deleteAccountUser(userId);
44
60
  return { success: true };
45
61
  } catch (error) {
46
- if (error instanceof ApiError) return { success: false, error: error.message };
47
- return { success: false, error: "Erro ao remover usu\xE1rio. Tente novamente." };
62
+ if (error instanceof ApiError)
63
+ return { success: false, error: error.message };
64
+ return {
65
+ success: false,
66
+ error: "Erro ao remover usu\xE1rio. Tente novamente."
67
+ };
48
68
  }
49
69
  }
50
70
  async function deleteAccountAction() {
@@ -52,7 +72,8 @@ async function deleteAccountAction() {
52
72
  await accountService.deleteAccount();
53
73
  return { success: true };
54
74
  } catch (error) {
55
- if (error instanceof ApiError) return { success: false, error: error.message };
75
+ if (error instanceof ApiError)
76
+ return { success: false, error: error.message };
56
77
  return { success: false, error: "Erro ao excluir conta. Tente novamente." };
57
78
  }
58
79
  }
@@ -61,7 +82,8 @@ async function createAccountUserAction(user) {
61
82
  const result = await accountService.createAccountUser(user);
62
83
  return { success: true, data: result.data };
63
84
  } catch (error) {
64
- if (error instanceof ApiError) return { success: false, error: error.message };
85
+ if (error instanceof ApiError)
86
+ return { success: false, error: error.message };
65
87
  return { success: false, error: "Erro ao criar usu\xE1rio. Tente novamente." };
66
88
  }
67
89
  }
@@ -70,7 +92,8 @@ async function changePasswordAction(data) {
70
92
  await accountService.changePassword(data);
71
93
  return { success: true };
72
94
  } catch (error) {
73
- if (error instanceof ApiError) return { success: false, error: error.message };
95
+ if (error instanceof ApiError)
96
+ return { success: false, error: error.message };
74
97
  return { success: false, error: "Erro ao alterar senha. Tente novamente." };
75
98
  }
76
99
  }
@@ -79,8 +102,12 @@ async function requestEmailChangeAction(newEmail) {
79
102
  await accountService.requestContactReset("email", newEmail);
80
103
  return { success: true };
81
104
  } catch (error) {
82
- if (error instanceof ApiError) return { success: false, error: error.message };
83
- return { success: false, error: "E-mail j\xE1 existente ou ocorreu um erro. Tente novamente mais tarde." };
105
+ if (error instanceof ApiError)
106
+ return { success: false, error: error.message };
107
+ return {
108
+ success: false,
109
+ error: "E-mail j\xE1 existente ou ocorreu um erro. Tente novamente mais tarde."
110
+ };
84
111
  }
85
112
  }
86
113
  async function confirmEmailChangeAction(token, newEmail) {
@@ -88,8 +115,12 @@ async function confirmEmailChangeAction(token, newEmail) {
88
115
  await accountService.confirmContactReset("email", token, newEmail);
89
116
  return { success: true };
90
117
  } catch (error) {
91
- if (error instanceof ApiError) return { success: false, error: error.message };
92
- return { success: false, error: "C\xF3digo inv\xE1lido ou expirado. Tente novamente." };
118
+ if (error instanceof ApiError)
119
+ return { success: false, error: error.message };
120
+ return {
121
+ success: false,
122
+ error: "C\xF3digo inv\xE1lido ou expirado. Tente novamente."
123
+ };
93
124
  }
94
125
  }
95
126
  async function requestPhoneChangeAction(newPhone) {
@@ -97,8 +128,12 @@ async function requestPhoneChangeAction(newPhone) {
97
128
  await accountService.requestContactReset("phone", newPhone);
98
129
  return { success: true };
99
130
  } catch (error) {
100
- if (error instanceof ApiError) return { success: false, error: error.message };
101
- return { success: false, error: "N\xFAmero j\xE1 existente ou ocorreu um erro. Tente novamente mais tarde." };
131
+ if (error instanceof ApiError)
132
+ return { success: false, error: error.message };
133
+ return {
134
+ success: false,
135
+ error: "N\xFAmero j\xE1 existente ou ocorreu um erro. Tente novamente mais tarde."
136
+ };
102
137
  }
103
138
  }
104
139
  async function confirmPhoneChangeAction(token, newPhone) {
@@ -106,41 +141,57 @@ async function confirmPhoneChangeAction(token, newPhone) {
106
141
  await accountService.confirmContactReset("phone", token, newPhone);
107
142
  return { success: true };
108
143
  } catch (error) {
109
- if (error instanceof ApiError) return { success: false, error: error.message };
110
- return { success: false, error: "C\xF3digo inv\xE1lido ou expirado. Tente novamente." };
144
+ if (error instanceof ApiError)
145
+ return { success: false, error: error.message };
146
+ return {
147
+ success: false,
148
+ error: "C\xF3digo inv\xE1lido ou expirado. Tente novamente."
149
+ };
111
150
  }
112
151
  }
113
152
  async function generateTwoFactorAction() {
114
153
  try {
115
154
  const result = await twoFactorService.generate();
116
- return { success: true, qrcode: result.data.qrcode, backupCodes: result.data.backup_codes };
117
- } catch (error) {
118
- if (error instanceof ApiError) return { success: false, error: error.message };
155
+ return {
156
+ success: true,
157
+ qrcode: result.data.qrcode,
158
+ backupCodes: result.data.backup_codes
159
+ };
160
+ } catch (error) {
161
+ if (error instanceof ApiError)
162
+ return { success: false, error: error.message };
119
163
  return { success: false, error: "Erro ao gerar QR Code. Tente novamente." };
120
164
  }
121
165
  }
122
166
  async function confirmTwoFactorAction(code) {
123
167
  try {
124
168
  await twoFactorService.confirm(code);
125
- return { success: true };
169
+ await accountService.updateAccountUser({ two_factor_authentication: true });
126
170
  } catch (error) {
127
- if (error instanceof ApiError) return { success: false, error: error.message };
171
+ if (error instanceof ApiError)
172
+ return { success: false, error: error.message };
128
173
  return { success: false, error: "C\xF3digo inv\xE1lido. Tente novamente." };
129
174
  }
175
+ return { success: true };
130
176
  }
131
177
  async function disableTwoFactorAction(code) {
132
178
  try {
133
179
  await twoFactorService.verify(code);
134
180
  } catch (error) {
135
- if (error instanceof ApiError) return { success: false, error: error.message };
181
+ if (error instanceof ApiError)
182
+ return { success: false, error: error.message };
136
183
  return { success: false, error: "C\xF3digo inv\xE1lido. Tente novamente." };
137
184
  }
138
185
  try {
139
186
  await twoFactorService.disable();
140
187
  return { success: true };
141
188
  } catch (error) {
142
- if (error instanceof ApiError) return { success: false, error: error.message };
143
- return { success: false, error: "Erro ao desabilitar 2FA. Tente novamente." };
189
+ if (error instanceof ApiError)
190
+ return { success: false, error: error.message };
191
+ return {
192
+ success: false,
193
+ error: "Erro ao desabilitar 2FA. Tente novamente."
194
+ };
144
195
  }
145
196
  }
146
197
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/accounts/actions/account-management.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { accountService } from '../services/account.service';\r\nimport { ApiError } from '../../../infra/api/types';\r\nimport type {\r\n AccountUsersPaginationParams,\r\n AccountUsersActionResult,\r\n ChangePasswordActionResult,\r\n ChangePasswordRequest,\r\n ContactResetResult,\r\n CreateAccountUserRequest,\r\n DeleteAccountActionResult,\r\n DeleteUserActionResult,\r\n TwoFactorActionResult,\r\n TwoFactorGenerateResult,\r\n UpdateAccountActionResult,\r\n UpdateAccountRequest,\r\n UpdateAccountUserRequest,\r\n UpdateUserActionResult,\r\n} from '../types';\r\nimport { twoFactorService } from '../services/two-factor.service';\r\n\r\nexport async function listAccountUsersAction(\r\n params?: AccountUsersPaginationParams\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const { users, total } = await accountService.listAccountUsers(params);\r\n return { success: true, data: users, total };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao listar usuários. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function updateUserAction(\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUser(user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao atualizar usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function updateAccountUserByIdAction(\r\n userId: number,\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUserById(userId, user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao atualizar usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function updateAccountAction(\r\n data: UpdateAccountRequest\r\n): Promise<UpdateAccountActionResult> {\r\n try {\r\n await accountService.updateAccount(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao atualizar conta. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function deleteAccountUserAction(userId: number): Promise<DeleteUserActionResult> {\r\n try {\r\n await accountService.deleteAccountUser(userId);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao remover usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function deleteAccountAction(): Promise<DeleteAccountActionResult> {\r\n try {\r\n await accountService.deleteAccount();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao excluir conta. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function createAccountUserAction(\r\n user: CreateAccountUserRequest\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const result = await accountService.createAccountUser(user);\r\n return { success: true, data: result.data };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao criar usuário. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function changePasswordAction(\r\n data: ChangePasswordRequest\r\n): Promise<ChangePasswordActionResult> {\r\n try {\r\n await accountService.changePassword(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao alterar senha. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function requestEmailChangeAction(newEmail: string): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset('email', newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.' };\r\n }\r\n}\r\n\r\nexport async function confirmEmailChangeAction(\r\n token: string,\r\n newEmail: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset('email', token, newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido ou expirado. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function requestPhoneChangeAction(newPhone: string): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset('phone', newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.' };\r\n }\r\n}\r\n\r\nexport async function confirmPhoneChangeAction(\r\n token: string,\r\n newPhone: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset('phone', token, newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido ou expirado. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function generateTwoFactorAction(): Promise<TwoFactorGenerateResult> {\r\n try {\r\n const result = await twoFactorService.generate();\r\n return { success: true, qrcode: result.data.qrcode, backupCodes: result.data.backup_codes };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao gerar QR Code. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function confirmTwoFactorAction(code: string): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.confirm(code);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido. Tente novamente.' };\r\n }\r\n}\r\n\r\nexport async function disableTwoFactorAction(code: string): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.verify(code);\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Código inválido. Tente novamente.' };\r\n }\r\n\r\n try {\r\n await twoFactorService.disable();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError) return { success: false, error: error.message };\r\n return { success: false, error: 'Erro ao desabilitar 2FA. Tente novamente.' };\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/accounts/actions/account-management.action.ts"],"sourcesContent":["\"use server\";\r\n\r\nimport { accountService } from \"../services/account.service\";\r\nimport { ApiError } from \"../../../infra/api/types\";\r\nimport type {\r\n AccountUsersPaginationParams,\r\n AccountUsersActionResult,\r\n ChangePasswordActionResult,\r\n ChangePasswordRequest,\r\n ContactResetResult,\r\n CreateAccountUserRequest,\r\n DeleteAccountActionResult,\r\n DeleteUserActionResult,\r\n TwoFactorActionResult,\r\n TwoFactorGenerateResult,\r\n UpdateAccountActionResult,\r\n UpdateAccountRequest,\r\n UpdateAccountUserRequest,\r\n UpdateUserActionResult,\r\n} from \"../types\";\r\nimport { twoFactorService } from \"../services/two-factor.service\";\r\n\r\nexport async function listAccountUsersAction(\r\n params?: AccountUsersPaginationParams\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const { users, total } = await accountService.listAccountUsers(params);\r\n return { success: true, data: users, total };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao listar usuários. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function updateUserAction(\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUser(user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao atualizar usuário. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function updateAccountUserByIdAction(\r\n userId: number,\r\n user: UpdateAccountUserRequest\r\n): Promise<UpdateUserActionResult> {\r\n try {\r\n const result = await accountService.updateAccountUserById(userId, user);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao atualizar usuário. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function updateAccountAction(\r\n data: UpdateAccountRequest\r\n): Promise<UpdateAccountActionResult> {\r\n try {\r\n await accountService.updateAccount(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao atualizar conta. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function deleteAccountUserAction(\r\n userId: number\r\n): Promise<DeleteUserActionResult> {\r\n try {\r\n await accountService.deleteAccountUser(userId);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao remover usuário. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function deleteAccountAction(): Promise<DeleteAccountActionResult> {\r\n try {\r\n await accountService.deleteAccount();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao excluir conta. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function createAccountUserAction(\r\n user: CreateAccountUserRequest\r\n): Promise<AccountUsersActionResult> {\r\n try {\r\n const result = await accountService.createAccountUser(user);\r\n return { success: true, data: result.data };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao criar usuário. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function changePasswordAction(\r\n data: ChangePasswordRequest\r\n): Promise<ChangePasswordActionResult> {\r\n try {\r\n await accountService.changePassword(data);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao alterar senha. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function requestEmailChangeAction(\r\n newEmail: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset(\"email\", newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error:\r\n \"E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function confirmEmailChangeAction(\r\n token: string,\r\n newEmail: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset(\"email\", token, newEmail);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Código inválido ou expirado. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function requestPhoneChangeAction(\r\n newPhone: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.requestContactReset(\"phone\", newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error:\r\n \"Número já existente ou ocorreu um erro. Tente novamente mais tarde.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function confirmPhoneChangeAction(\r\n token: string,\r\n newPhone: string\r\n): Promise<ContactResetResult> {\r\n try {\r\n await accountService.confirmContactReset(\"phone\", token, newPhone);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Código inválido ou expirado. Tente novamente.\",\r\n };\r\n }\r\n}\r\n\r\nexport async function generateTwoFactorAction(): Promise<TwoFactorGenerateResult> {\r\n try {\r\n const result = await twoFactorService.generate();\r\n return {\r\n success: true,\r\n qrcode: result.data.qrcode,\r\n backupCodes: result.data.backup_codes,\r\n };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Erro ao gerar QR Code. Tente novamente.\" };\r\n }\r\n}\r\n\r\nexport async function confirmTwoFactorAction(\r\n code: string\r\n): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.confirm(code);\r\n await accountService.updateAccountUser({ two_factor_authentication: true });\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Código inválido. Tente novamente.\" };\r\n }\r\n\r\n return { success: true };\r\n}\r\n\r\nexport async function disableTwoFactorAction(\r\n code: string\r\n): Promise<TwoFactorActionResult> {\r\n try {\r\n await twoFactorService.verify(code);\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return { success: false, error: \"Código inválido. Tente novamente.\" };\r\n }\r\n\r\n try {\r\n await twoFactorService.disable();\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof ApiError)\r\n return { success: false, error: error.message };\r\n return {\r\n success: false,\r\n error: \"Erro ao desabilitar 2FA. Tente novamente.\",\r\n };\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greatapps/common",
3
- "version": "1.1.44",
3
+ "version": "1.1.47",
4
4
  "description": "Shared library for GreatApps frontend applications",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./src/index.ts",
@@ -1,7 +1,7 @@
1
- 'use server';
1
+ "use server";
2
2
 
3
- import { accountService } from '../services/account.service';
4
- import { ApiError } from '../../../infra/api/types';
3
+ import { accountService } from "../services/account.service";
4
+ import { ApiError } from "../../../infra/api/types";
5
5
  import type {
6
6
  AccountUsersPaginationParams,
7
7
  AccountUsersActionResult,
@@ -17,8 +17,8 @@ import type {
17
17
  UpdateAccountRequest,
18
18
  UpdateAccountUserRequest,
19
19
  UpdateUserActionResult,
20
- } from '../types';
21
- import { twoFactorService } from '../services/two-factor.service';
20
+ } from "../types";
21
+ import { twoFactorService } from "../services/two-factor.service";
22
22
 
23
23
  export async function listAccountUsersAction(
24
24
  params?: AccountUsersPaginationParams
@@ -27,8 +27,12 @@ export async function listAccountUsersAction(
27
27
  const { users, total } = await accountService.listAccountUsers(params);
28
28
  return { success: true, data: users, total };
29
29
  } catch (error) {
30
- if (error instanceof ApiError) return { success: false, error: error.message };
31
- return { success: false, error: 'Erro ao listar usuários. Tente novamente.' };
30
+ if (error instanceof ApiError)
31
+ return { success: false, error: error.message };
32
+ return {
33
+ success: false,
34
+ error: "Erro ao listar usuários. Tente novamente.",
35
+ };
32
36
  }
33
37
  }
34
38
 
@@ -39,8 +43,12 @@ export async function updateUserAction(
39
43
  const result = await accountService.updateAccountUser(user);
40
44
  return { success: true, data: result };
41
45
  } catch (error) {
42
- if (error instanceof ApiError) return { success: false, error: error.message };
43
- return { success: false, error: 'Erro ao atualizar usuário. Tente novamente.' };
46
+ if (error instanceof ApiError)
47
+ return { success: false, error: error.message };
48
+ return {
49
+ success: false,
50
+ error: "Erro ao atualizar usuário. Tente novamente.",
51
+ };
44
52
  }
45
53
  }
46
54
 
@@ -52,8 +60,12 @@ export async function updateAccountUserByIdAction(
52
60
  const result = await accountService.updateAccountUserById(userId, user);
53
61
  return { success: true, data: result };
54
62
  } catch (error) {
55
- if (error instanceof ApiError) return { success: false, error: error.message };
56
- return { success: false, error: 'Erro ao atualizar usuário. Tente novamente.' };
63
+ if (error instanceof ApiError)
64
+ return { success: false, error: error.message };
65
+ return {
66
+ success: false,
67
+ error: "Erro ao atualizar usuário. Tente novamente.",
68
+ };
57
69
  }
58
70
  }
59
71
 
@@ -64,18 +76,28 @@ export async function updateAccountAction(
64
76
  await accountService.updateAccount(data);
65
77
  return { success: true };
66
78
  } catch (error) {
67
- if (error instanceof ApiError) return { success: false, error: error.message };
68
- return { success: false, error: 'Erro ao atualizar conta. Tente novamente.' };
79
+ if (error instanceof ApiError)
80
+ return { success: false, error: error.message };
81
+ return {
82
+ success: false,
83
+ error: "Erro ao atualizar conta. Tente novamente.",
84
+ };
69
85
  }
70
86
  }
71
87
 
72
- export async function deleteAccountUserAction(userId: number): Promise<DeleteUserActionResult> {
88
+ export async function deleteAccountUserAction(
89
+ userId: number
90
+ ): Promise<DeleteUserActionResult> {
73
91
  try {
74
92
  await accountService.deleteAccountUser(userId);
75
93
  return { success: true };
76
94
  } catch (error) {
77
- if (error instanceof ApiError) return { success: false, error: error.message };
78
- return { success: false, error: 'Erro ao remover usuário. Tente novamente.' };
95
+ if (error instanceof ApiError)
96
+ return { success: false, error: error.message };
97
+ return {
98
+ success: false,
99
+ error: "Erro ao remover usuário. Tente novamente.",
100
+ };
79
101
  }
80
102
  }
81
103
 
@@ -84,8 +106,9 @@ export async function deleteAccountAction(): Promise<DeleteAccountActionResult>
84
106
  await accountService.deleteAccount();
85
107
  return { success: true };
86
108
  } catch (error) {
87
- if (error instanceof ApiError) return { success: false, error: error.message };
88
- return { success: false, error: 'Erro ao excluir conta. Tente novamente.' };
109
+ if (error instanceof ApiError)
110
+ return { success: false, error: error.message };
111
+ return { success: false, error: "Erro ao excluir conta. Tente novamente." };
89
112
  }
90
113
  }
91
114
 
@@ -96,8 +119,9 @@ export async function createAccountUserAction(
96
119
  const result = await accountService.createAccountUser(user);
97
120
  return { success: true, data: result.data };
98
121
  } catch (error) {
99
- if (error instanceof ApiError) return { success: false, error: error.message };
100
- return { success: false, error: 'Erro ao criar usuário. Tente novamente.' };
122
+ if (error instanceof ApiError)
123
+ return { success: false, error: error.message };
124
+ return { success: false, error: "Erro ao criar usuário. Tente novamente." };
101
125
  }
102
126
  }
103
127
 
@@ -108,18 +132,26 @@ export async function changePasswordAction(
108
132
  await accountService.changePassword(data);
109
133
  return { success: true };
110
134
  } catch (error) {
111
- if (error instanceof ApiError) return { success: false, error: error.message };
112
- return { success: false, error: 'Erro ao alterar senha. Tente novamente.' };
135
+ if (error instanceof ApiError)
136
+ return { success: false, error: error.message };
137
+ return { success: false, error: "Erro ao alterar senha. Tente novamente." };
113
138
  }
114
139
  }
115
140
 
116
- export async function requestEmailChangeAction(newEmail: string): Promise<ContactResetResult> {
141
+ export async function requestEmailChangeAction(
142
+ newEmail: string
143
+ ): Promise<ContactResetResult> {
117
144
  try {
118
- await accountService.requestContactReset('email', newEmail);
145
+ await accountService.requestContactReset("email", newEmail);
119
146
  return { success: true };
120
147
  } catch (error) {
121
- if (error instanceof ApiError) return { success: false, error: error.message };
122
- return { success: false, error: 'E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.' };
148
+ if (error instanceof ApiError)
149
+ return { success: false, error: error.message };
150
+ return {
151
+ success: false,
152
+ error:
153
+ "E-mail já existente ou ocorreu um erro. Tente novamente mais tarde.",
154
+ };
123
155
  }
124
156
  }
125
157
 
@@ -128,21 +160,32 @@ export async function confirmEmailChangeAction(
128
160
  newEmail: string
129
161
  ): Promise<ContactResetResult> {
130
162
  try {
131
- await accountService.confirmContactReset('email', token, newEmail);
163
+ await accountService.confirmContactReset("email", token, newEmail);
132
164
  return { success: true };
133
165
  } catch (error) {
134
- if (error instanceof ApiError) return { success: false, error: error.message };
135
- return { success: false, error: 'Código inválido ou expirado. Tente novamente.' };
166
+ if (error instanceof ApiError)
167
+ return { success: false, error: error.message };
168
+ return {
169
+ success: false,
170
+ error: "Código inválido ou expirado. Tente novamente.",
171
+ };
136
172
  }
137
173
  }
138
174
 
139
- export async function requestPhoneChangeAction(newPhone: string): Promise<ContactResetResult> {
175
+ export async function requestPhoneChangeAction(
176
+ newPhone: string
177
+ ): Promise<ContactResetResult> {
140
178
  try {
141
- await accountService.requestContactReset('phone', newPhone);
179
+ await accountService.requestContactReset("phone", newPhone);
142
180
  return { success: true };
143
181
  } catch (error) {
144
- if (error instanceof ApiError) return { success: false, error: error.message };
145
- return { success: false, error: 'Número já existente ou ocorreu um erro. Tente novamente mais tarde.' };
182
+ if (error instanceof ApiError)
183
+ return { success: false, error: error.message };
184
+ return {
185
+ success: false,
186
+ error:
187
+ "Número já existente ou ocorreu um erro. Tente novamente mais tarde.",
188
+ };
146
189
  }
147
190
  }
148
191
 
@@ -151,47 +194,68 @@ export async function confirmPhoneChangeAction(
151
194
  newPhone: string
152
195
  ): Promise<ContactResetResult> {
153
196
  try {
154
- await accountService.confirmContactReset('phone', token, newPhone);
197
+ await accountService.confirmContactReset("phone", token, newPhone);
155
198
  return { success: true };
156
199
  } catch (error) {
157
- if (error instanceof ApiError) return { success: false, error: error.message };
158
- return { success: false, error: 'Código inválido ou expirado. Tente novamente.' };
200
+ if (error instanceof ApiError)
201
+ return { success: false, error: error.message };
202
+ return {
203
+ success: false,
204
+ error: "Código inválido ou expirado. Tente novamente.",
205
+ };
159
206
  }
160
207
  }
161
208
 
162
209
  export async function generateTwoFactorAction(): Promise<TwoFactorGenerateResult> {
163
210
  try {
164
211
  const result = await twoFactorService.generate();
165
- return { success: true, qrcode: result.data.qrcode, backupCodes: result.data.backup_codes };
212
+ return {
213
+ success: true,
214
+ qrcode: result.data.qrcode,
215
+ backupCodes: result.data.backup_codes,
216
+ };
166
217
  } catch (error) {
167
- if (error instanceof ApiError) return { success: false, error: error.message };
168
- return { success: false, error: 'Erro ao gerar QR Code. Tente novamente.' };
218
+ if (error instanceof ApiError)
219
+ return { success: false, error: error.message };
220
+ return { success: false, error: "Erro ao gerar QR Code. Tente novamente." };
169
221
  }
170
222
  }
171
223
 
172
- export async function confirmTwoFactorAction(code: string): Promise<TwoFactorActionResult> {
224
+ export async function confirmTwoFactorAction(
225
+ code: string
226
+ ): Promise<TwoFactorActionResult> {
173
227
  try {
174
228
  await twoFactorService.confirm(code);
175
- return { success: true };
229
+ await accountService.updateAccountUser({ two_factor_authentication: true });
176
230
  } catch (error) {
177
- if (error instanceof ApiError) return { success: false, error: error.message };
178
- return { success: false, error: 'Código inválido. Tente novamente.' };
231
+ if (error instanceof ApiError)
232
+ return { success: false, error: error.message };
233
+ return { success: false, error: "Código inválido. Tente novamente." };
179
234
  }
235
+
236
+ return { success: true };
180
237
  }
181
238
 
182
- export async function disableTwoFactorAction(code: string): Promise<TwoFactorActionResult> {
239
+ export async function disableTwoFactorAction(
240
+ code: string
241
+ ): Promise<TwoFactorActionResult> {
183
242
  try {
184
243
  await twoFactorService.verify(code);
185
244
  } catch (error) {
186
- if (error instanceof ApiError) return { success: false, error: error.message };
187
- return { success: false, error: 'Código inválido. Tente novamente.' };
245
+ if (error instanceof ApiError)
246
+ return { success: false, error: error.message };
247
+ return { success: false, error: "Código inválido. Tente novamente." };
188
248
  }
189
249
 
190
250
  try {
191
251
  await twoFactorService.disable();
192
252
  return { success: true };
193
253
  } catch (error) {
194
- if (error instanceof ApiError) return { success: false, error: error.message };
195
- return { success: false, error: 'Erro ao desabilitar 2FA. Tente novamente.' };
254
+ if (error instanceof ApiError)
255
+ return { success: false, error: error.message };
256
+ return {
257
+ success: false,
258
+ error: "Erro ao desabilitar 2FA. Tente novamente.",
259
+ };
196
260
  }
197
261
  }
@@ -108,6 +108,7 @@ export interface UpdateAccountUserRequest {
108
108
  receive_email?: boolean;
109
109
  photo?: File | string | null;
110
110
  projects?: number[];
111
+ two_factor_authentication?: boolean;
111
112
  }
112
113
 
113
114
  export interface UpdateAccountUserResponse {