When dispatching an action only there are no fulfilled or rejected state for promise.
Thunk code:
export const removeAccount = createAsyncThunk('user/logout', async (user) => {
try {
if (user.provider === 'email') {
return await axios.delete('http://localhost:3001/user/remove', {
data: user,
});
} else {
return await axios.delete('http://localhost:3001/user/remove', {
data: user,
withCredentials: true,
});
}
} catch (e) {
const { response } = e;
if (response.status === 401 && response.data)
throw new Error(response.data.message);
}
});
Server side code:
router.delete('/remove', async (req, res) => {
try {
const currentUser = req.body;
await User.findByIdAndDelete(currentUser._id);
if (!req.user) return res.status(200);
req.logout((err) => {
if (err) {
return res.status(500);
}
return res.status(200);
});
} catch (e) {
console.error(e);
return res.status(500);
}
});
I already tried a different return values and code pieces but situation doesn't changed a lot