Skip to content

Commit e932c25

Browse files
fix(many): fixing user token and users authorazation services
1 parent 2e33864 commit e932c25

File tree

3 files changed

+46
-26
lines changed

3 files changed

+46
-26
lines changed

src/contexts/auth.tsx

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,10 @@ const AuthProvider = ({ children }: AuthProviderProps) => {
5050
setData({ token, user });
5151
return true;
5252
} catch (err) {
53-
const errorStatus = err.response?.status;
54-
55-
if (errorStatus === 401) {
56-
setInviteError(err.response?.data.message);
57-
}
53+
const errorData = err.response?.data;
54+
const celebrateError = errorData?.validation?.body?.message;
5855

56+
setInviteError(celebrateError || errorData?.message);
5957
return false;
6058
}
6159
}, []);
@@ -72,9 +70,9 @@ const AuthProvider = ({ children }: AuthProviderProps) => {
7270
setSignUpSuccess(true);
7371
} catch (err) {
7472
const errorData = err.response?.data;
75-
const validationError = errorData?.validation?.body?.message;
73+
const celebrateError = errorData?.validation?.body?.message;
7674

77-
setSignUpError(validationError || err.response.validation?.body?.message);
75+
setSignUpError(celebrateError || errorData?.message);
7876
setSignUpLoader(false);
7977
setSignUpSuccess(false);
8078
}
@@ -89,9 +87,9 @@ const AuthProvider = ({ children }: AuthProviderProps) => {
8987

9088
const inviteUser = useCallback(async ({ name, email, type }) => {
9189
setInviteLoader(true);
90+
setInviteError('');
9291

9392
try {
94-
setInviteError('');
9593
const response = await api.post('/invite-users', {
9694
name,
9795
email,
@@ -105,27 +103,28 @@ const AuthProvider = ({ children }: AuthProviderProps) => {
105103
JSON.stringify({ name: inviteData.name, email: inviteData.email }),
106104
);
107105
} catch (err) {
108-
const errorStatus = err.response?.status;
106+
const errorData = err.response?.data;
107+
const celebrateError = errorData?.validation?.body?.message;
109108

110-
if (errorStatus === 401) {
111-
setInviteError(err.response?.data.message);
112-
}
109+
setInviteError(celebrateError || errorData?.message);
113110
}
114111

115112
setInviteLoader(false);
116113
}, []);
117114

118115
const recoveryPassword = useCallback(async ({ email }) => {
119116
setRecoveryLoader(true);
117+
setRecoveryError('');
120118

121119
try {
122-
setRecoveryError('');
123-
124120
await api.post('/password/forgot', {
125121
email,
126122
});
127123
} catch (err) {
128-
setRecoveryError(err.response?.data.message);
124+
const errorData = err.response?.data;
125+
const celebrateError = errorData?.validation?.body?.message;
126+
127+
setRecoveryError(celebrateError || errorData?.message);
129128
}
130129

131130
setRecoveryLoader(false);
@@ -134,22 +133,24 @@ const AuthProvider = ({ children }: AuthProviderProps) => {
134133
const resetPassword = useCallback(
135134
async ({ email, password, password_confirmation }) => {
136135
setResetLoader(true);
136+
setResetError('');
137137

138138
try {
139-
setResetError('');
140-
141139
await api.post('/password/reset', {
142140
email,
143141
password,
144142
password_confirmation,
145143
});
146144

147-
setResetLoader(false);
148145
setResetSuccess(true);
149146
} catch (err) {
150-
setResetLoader(false);
151-
setResetError(err.response?.data.validation.body.message);
147+
const errorData = err.response?.data;
148+
const celebrateError = errorData?.validation?.body?.message;
149+
150+
setResetError(celebrateError || errorData?.message);
152151
}
152+
153+
setResetLoader(false);
153154
},
154155
[],
155156
);

src/contexts/user.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ const UsersProvider = ({ children }: UserProviderProps) => {
3030
setUpdateUserInfoLoader(true);
3131
try {
3232
await api.put('/users/logged', data);
33-
} catch (error) {
34-
setUpdateUserInfoError(error?.response?.data?.validation.body.message);
33+
} catch (err) {
34+
const errorData = err.response?.data;
35+
const celebrateError = errorData?.validation?.body?.message;
36+
37+
setUpdateUserInfoError(celebrateError || errorData?.message);
3538
}
3639
setUpdateUserInfoLoader(false);
3740
}, []);
@@ -41,16 +44,19 @@ const UsersProvider = ({ children }: UserProviderProps) => {
4144
await api.patch(`/users/${id}`, { type: userType });
4245
setUpdateUserTypeSuccess(true);
4346
} catch (error) {
44-
setUpdateUserTypeSuccess(true);
47+
setUpdateUserTypeSuccess(false);
4548
}
4649
}, []);
4750

4851
const deleteUser = useCallback(async id => {
4952
setDeleteUserLoader(true);
5053
try {
5154
await api.delete(`/users/${id}`);
52-
} catch (error) {
53-
setDeleteUserError(error?.response?.data?.message);
55+
} catch (err) {
56+
const errorData = err.response?.data;
57+
const celebrateError = errorData?.validation?.body?.message;
58+
59+
setDeleteUserError(celebrateError || errorData?.message);
5460
}
5561
setDeleteUserLoader(false);
5662
}, []);

src/services/api.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
import axios from 'axios';
22
import { getUserToken } from './auth';
33

4-
const token = getUserToken();
4+
// eslint-disable-next-line consistent-return
5+
const tryGetUserToken = (count = 1) => {
6+
if (count >= 100) return '';
7+
8+
const token = getUserToken();
9+
10+
if (token) return token;
11+
12+
setTimeout(() => {
13+
tryGetUserToken(count + 1);
14+
}, 500 * count);
15+
};
16+
17+
const token = tryGetUserToken();
518

619
const api = axios.create({
720
baseURL: 'http://localhost:3333',

0 commit comments

Comments
 (0)