Files
pingvin-share/frontend/src/services/user.service.ts
2022-12-05 15:53:24 +01:00

52 lines
1.0 KiB
TypeScript

import {
CreateUser,
CurrentUser,
UpdateCurrentUser,
UpdateUser,
} from "../types/user.type";
import api from "./api.service";
import authService from "./auth.service";
const list = async () => {
return (await api.get("/users")).data;
};
const create = async (user: CreateUser) => {
return (await api.post("/users", user)).data;
};
const update = async (id: string, user: UpdateUser) => {
return (await api.patch(`/users/${id}`, user)).data;
};
const remove = async (id: string) => {
await api.delete(`/users/${id}`);
};
const updateCurrentUser = async (user: UpdateCurrentUser) => {
return (await api.patch("/users/me", user)).data;
};
const removeCurrentUser = async () => {
await api.delete("/users/me");
};
const getCurrentUser = async (): Promise<CurrentUser | null> => {
try {
await authService.refreshAccessToken();
return (await api.get("users/me")).data;
} catch {
return null;
}
};
export default {
list,
create,
update,
remove,
getCurrentUser,
updateCurrentUser,
removeCurrentUser,
};