memos/web/src/services/userService.ts
2022-05-21 12:21:06 +08:00

55 lines
1.1 KiB
TypeScript

import api from "../helpers/api";
import { signin, signout } from "../store/modules/user";
import store from "../store";
const convertResponseModelUser = (user: User): User => {
return {
...user,
createdTs: user.createdTs * 1000,
updatedTs: user.updatedTs * 1000,
};
};
const userService = {
getState: () => {
return store.getState().user;
},
doSignIn: async () => {
const user = await api.getUser();
if (user) {
store.dispatch(signin(convertResponseModelUser(user)));
} else {
userService.doSignOut();
}
return user;
},
doSignOut: async () => {
store.dispatch(signout);
api.signout().catch(() => {
// do nth
});
},
updateUsername: async (name: string): Promise<void> => {
await api.patchUser({
name,
});
},
updatePassword: async (password: string): Promise<void> => {
await api.patchUser({
password,
});
},
resetOpenId: async (): Promise<string> => {
const user = await api.patchUser({
resetOpenId: true,
});
return user.openId;
},
};
export default userService;