TandoorRecipes/vue/src/utils/api.js
2021-03-18 20:00:13 +01:00

67 lines
2.2 KiB
JavaScript

import axios from "axios";
import {djangoGettext as _, makeToast} from "@/utils/utils";
import {resolveDjangoUrl} from "@/utils/utils";
axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN"
export function apiLoadRecipe(recipe_id) {
let url = resolveDjangoUrl('api:recipe-detail', recipe_id)
if (window.SHARE_UID !== undefined) {
url += '?share=' + window.SHARE_UID
}
return axios.get(url).then((response) => {
return response.data
}).catch((err) => {
handleError(err, 'There was an error loading a resource!', 'danger')
})
}
export function apiLoadImportLog(id) {
let url = resolveDjangoUrl('api:importlog-detail', id)
return axios.get(url).then((response) => {
return response.data
}).catch((err) => {
handleError(err, 'There was an error loading a resource!', 'danger')
})
}
export function apiLogCooking(cook_log) {
return axios.post(resolveDjangoUrl('api:cooklog-list',), cook_log).then((response) => {
makeToast('Saved', 'Cook Log entry saved!', 'success')
}).catch((err) => {
handleError(err, 'There was an error creating a resource!', 'danger')
})
}
export function apiLoadCookBooks(query) {
return axios.get(resolveDjangoUrl('api:recipebook-list') + '?query=' + query).then((response) => {
return response.data
}).catch((err) => {
handleError(err, 'There was an error creating a resource!', 'danger')
})
}
export function apiAddRecipeBookEntry(entry) {
return axios.post(resolveDjangoUrl('api:recipebookentry-list',), entry).then((response) => {
makeToast('Saved', 'Recipe Book entry saved!', 'success')
}).catch((err) => {
handleError(err, 'There was an error creating a resource!', 'danger')
})
}
function handleError(error, message) {
if ('response' in error) {
console.log(error.response)
let title = (('statusText' in error.response) ? error.response.statusText : _('Error'))
message += '\n\n' + JSON.stringify(error.response.data);
makeToast(title, message, 'danger')
} else {
makeToast('Error', message, 'danger')
console.log(error)
}
}