mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-05-31 04:05:33 -04:00
* token error handling * Add additional settings to recipes * fixes #515 * remove index.html Co-authored-by: hay-kot <hay-kot@pm.me>
108 lines
2.9 KiB
JavaScript
108 lines
2.9 KiB
JavaScript
import { API_ROUTES } from "./apiRoutes";
|
|
import { apiReq } from "./api-utils";
|
|
import i18n from "@/i18n.js";
|
|
|
|
export const userAPI = {
|
|
async login(formData) {
|
|
let response = await apiReq.post(API_ROUTES.authToken, formData, null, () => {
|
|
return i18n.t("user.user-successfully-logged-in");
|
|
});
|
|
return response;
|
|
},
|
|
async refresh() {
|
|
return apiReq.getSafe(API_ROUTES.authRefresh);
|
|
},
|
|
async allUsers() {
|
|
let response = await apiReq.get(API_ROUTES.users);
|
|
return response.data;
|
|
},
|
|
create(user) {
|
|
return apiReq.post(
|
|
API_ROUTES.users,
|
|
user,
|
|
() => i18n.t("user.user-creation-failed"),
|
|
() => i18n.t("user.user-created")
|
|
);
|
|
},
|
|
async self() {
|
|
return apiReq.getSafe(API_ROUTES.usersSelf);
|
|
},
|
|
async byID(id) {
|
|
let response = await apiReq.get(API_ROUTES.usersId(id));
|
|
return response.data;
|
|
},
|
|
update(user) {
|
|
return apiReq.put(
|
|
API_ROUTES.usersId(user.id),
|
|
user,
|
|
() => i18n.t("user.user-update-failed"),
|
|
() => i18n.t("user.user-updated")
|
|
);
|
|
},
|
|
changePassword(id, password) {
|
|
return apiReq.put(
|
|
API_ROUTES.usersIdPassword(id),
|
|
password,
|
|
() => i18n.t("user.existing-password-does-not-match"),
|
|
() => i18n.t("user.password-updated")
|
|
);
|
|
},
|
|
|
|
delete(id) {
|
|
return apiReq.delete(API_ROUTES.usersId(id), null, deleteErrorText, () => {
|
|
return i18n.t("user.user-deleted");
|
|
});
|
|
},
|
|
resetPassword(id) {
|
|
return apiReq.put(
|
|
API_ROUTES.usersIdResetPassword(id),
|
|
null,
|
|
() => i18n.t("user.password-reset-failed"),
|
|
() => i18n.t("user.password-has-been-reset-to-the-default-password")
|
|
);
|
|
},
|
|
async createAPIToken(name) {
|
|
const response = await apiReq.post(API_ROUTES.usersApiTokens, { name });
|
|
return response.data;
|
|
},
|
|
async deleteAPIToken(id) {
|
|
const response = await apiReq.delete(API_ROUTES.usersApiTokensTokenId(id));
|
|
return response.data;
|
|
},
|
|
/** Adds a Recipe to the users favorites
|
|
* @param id
|
|
*/
|
|
async getFavorites(id) {
|
|
const response = await apiReq.get(API_ROUTES.usersIdFavorites(id));
|
|
return response.data;
|
|
},
|
|
/** Adds a Recipe to the users favorites
|
|
* @param id
|
|
*/
|
|
async addFavorite(id, slug) {
|
|
const response = await apiReq.post(API_ROUTES.usersIdFavoritesSlug(id, slug));
|
|
return response.data;
|
|
},
|
|
/** Adds a Recipe to the users favorites
|
|
* @param id
|
|
*/
|
|
async removeFavorite(id, slug) {
|
|
const response = await apiReq.delete(API_ROUTES.usersIdFavoritesSlug(id, slug));
|
|
return response.data;
|
|
},
|
|
|
|
userProfileImage(id) {
|
|
if (!id || id === undefined) return;
|
|
return `/api/users/${id}/image`;
|
|
},
|
|
};
|
|
|
|
const deleteErrorText = response => {
|
|
switch (response.data.detail) {
|
|
case "SUPER_USER":
|
|
return i18n.t("user.error-cannot-delete-super-user");
|
|
default:
|
|
return i18n.t("user.you-are-not-allowed-to-delete-this-user");
|
|
}
|
|
};
|