mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-10-28 16:54:19 -04: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
74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
import { baseURL } from "./api-utils";
|
|
import { apiReq } from "./api-utils";
|
|
import { store } from "@/store";
|
|
import i18n from '@/i18n.js';
|
|
|
|
const backupBase = baseURL + "backups/";
|
|
|
|
export const backupURLs = {
|
|
// Backup
|
|
available: `${backupBase}available`,
|
|
createBackup: `${backupBase}export/database`,
|
|
importBackup: fileName => `${backupBase}${fileName}/import`,
|
|
deleteBackup: fileName => `${backupBase}${fileName}/delete`,
|
|
downloadBackup: fileName => `${backupBase}${fileName}/download`,
|
|
};
|
|
|
|
|
|
|
|
export const backupAPI = {
|
|
/**
|
|
* Request all backups available on the server
|
|
* @returns {Array} List of Available Backups
|
|
*/
|
|
async requestAvailable() {
|
|
let response = await apiReq.get(backupURLs.available);
|
|
return response.data;
|
|
},
|
|
/**
|
|
* Calls for importing a file on the server
|
|
* @param {string} fileName
|
|
* @param {object} data
|
|
* @returns A report containing status of imported items
|
|
*/
|
|
async import(fileName, data) {
|
|
let response = await apiReq.post(backupURLs.importBackup(fileName), data);
|
|
store.dispatch("requestRecentRecipes");
|
|
return response;
|
|
},
|
|
/**
|
|
* Removes a file from the server
|
|
* @param {string} fileName
|
|
*/
|
|
async delete(fileName) {
|
|
return apiReq.delete(
|
|
backupURLs.deleteBackup(fileName),
|
|
null,
|
|
function() { return i18n.t('settings.backup.unable-to-delete-backup'); },
|
|
function() { return i18n.t('settings.backup.backup-deleted'); }
|
|
);
|
|
},
|
|
/**
|
|
* Creates a backup on the serve given a set of options
|
|
* @param {object} data
|
|
* @returns
|
|
*/
|
|
async create(options) {
|
|
return apiReq.post(
|
|
backupURLs.createBackup,
|
|
options,
|
|
function() { return i18n.t('settings.backup.error-creating-backup-see-log-file'); },
|
|
function(response) { return i18n.t('settings.backup.backup-created-at-response-export_path', {path: response.data.export_path}); }
|
|
);
|
|
},
|
|
/**
|
|
* Downloads a file from the server. I don't actually think this is used?
|
|
* @param {string} fileName
|
|
* @returns Download URL
|
|
*/
|
|
async download(fileName) {
|
|
const url = backupURLs.downloadBackup(fileName);
|
|
apiReq.download(url);
|
|
},
|
|
};
|