TandoorRecipes/vue/src/utils/api.js
2022-07-13 15:46:39 +02:00

55 lines
1.7 KiB
JavaScript

import axios from "axios";
import {djangoGettext as _, makeToast} from "@/utils/utils";
import {resolveDjangoUrl} from "@/utils/utils";
import {ApiApiFactory} from "@/utils/openapi/api.ts";
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 && window.SHARE_UID !== 'None') {
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')
})
}
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)
}
}
/*
* Generic class to use OpenAPIs with parameters and provide generic modals
* */