mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-23 15:19:41 +02:00
* Translate missing items on About page * Localize import summary dialog * Make site menu translation reactive * Localize import options * Include semi colon in string * Move API texts to frontend + better status codes * Provide feedback to user when no meal is planned * Fix API tests after latest rework * Add warning for API changes in changelog * Refactor API texts handling * Refactor API texts handling #2 * Better API feedback * Rearrange strings hierarchy * Add messages upon recipe updated * Fix 'recipe effected' typo * Remove snackbar usage in backend * Translate toolbox * Provide feedback for tags CRUD * Fix messed up merge * Translate sign-up form * Better feedback for sign-up CRUD * Refactor log-in API texts handling * No error message when user is not authenticated * Remove unimportant console log
68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
const baseURL = "/api/";
|
|
import axios from "axios";
|
|
import { store } from "../store";
|
|
import utils from "@/utils";
|
|
|
|
axios.defaults.headers.common[
|
|
"Authorization"
|
|
] = `Bearer ${store.getters.getToken}`;
|
|
|
|
function handleError(error, getText) {
|
|
if(getText) {
|
|
utils.notify.error(getText(error.response));
|
|
}
|
|
return false;
|
|
}
|
|
function handleResponse(response, getText) {
|
|
if(response && getText) {
|
|
const successText = getText(response);
|
|
utils.notify.success(successText);
|
|
}
|
|
return response;
|
|
}
|
|
|
|
function defaultErrorText(response) {
|
|
return response.statusText;
|
|
}
|
|
|
|
function defaultSuccessText(response) {
|
|
return response.statusText;
|
|
}
|
|
|
|
const apiReq = {
|
|
post: async function(url, data, getErrorText = defaultErrorText, getSuccessText) {
|
|
const response = await axios.post(url, data).catch(function(error) { handleError(error, getErrorText) });
|
|
return handleResponse(response, getSuccessText);
|
|
},
|
|
|
|
put: async function(url, data, getErrorText = defaultErrorText, getSuccessText) {
|
|
const response = await axios.put(url, data).catch(function(error) { handleError(error, getErrorText) });
|
|
return handleResponse(response, getSuccessText);
|
|
},
|
|
|
|
patch: async function(url, data, getErrorText = defaultErrorText, getSuccessText) {
|
|
const response = await axios.patch(url, data).catch(function(error) { handleError(error, getErrorText) });
|
|
return handleResponse(response, getSuccessText);
|
|
},
|
|
|
|
get: function(url, data, getErrorText = defaultErrorText) {
|
|
return axios.get(url, data).catch(function(error) { handleError(error, getErrorText) });
|
|
},
|
|
|
|
delete: async function(url, data, getErrorText = defaultErrorText, getSuccessText = defaultSuccessText ) {
|
|
const response = await axios.delete(url, data).catch( function(error) { handleError(error, getErrorText) } );
|
|
return handleResponse(response, getSuccessText);
|
|
},
|
|
|
|
async download(url) {
|
|
const response = await this.get(url);
|
|
const token = response.data.fileToken;
|
|
|
|
const tokenURL = baseURL + "utils/download?token=" + token;
|
|
window.open(tokenURL, "_blank");
|
|
return response.data;
|
|
},
|
|
};
|
|
|
|
export { apiReq };
|
|
export { baseURL };
|