mirror of
https://github.com/mokuappio/serverless-invoices.git
synced 2026-02-09 01:12:38 -05:00
Import data.
This commit is contained in:
41
src/store/data.js
Normal file
41
src/store/data.js
Normal file
@@ -0,0 +1,41 @@
|
||||
import localForage from 'localforage';
|
||||
import { download } from '../utils/helpers';
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state: {
|
||||
isImportModalOpen: false,
|
||||
},
|
||||
mutations: {
|
||||
isImportModalOpen(state, isOpen) {
|
||||
state.isImportModalOpen = isOpen;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
async exportJson() {
|
||||
let results = [];
|
||||
const keys = await localForage.keys();
|
||||
keys.forEach((key) => {
|
||||
results.push(localForage.getItem(key));
|
||||
});
|
||||
results = await Promise.all(results);
|
||||
|
||||
const data = {};
|
||||
keys.forEach((key, index) => {
|
||||
data[key] = results[index];
|
||||
});
|
||||
|
||||
download(JSON.stringify(data), 'serverless-invoices.json', 'application/json');
|
||||
},
|
||||
async importJson({ dispatch }, data) {
|
||||
const results = [];
|
||||
Object.keys(data).forEach((key) => {
|
||||
results.push(localForage.setItem(key, data[key]));
|
||||
});
|
||||
await Promise.all(results);
|
||||
await dispatch('teams/terminate', null, { root: true });
|
||||
return dispatch('teams/init', null, { root: true });
|
||||
},
|
||||
},
|
||||
getters: {},
|
||||
};
|
||||
@@ -12,8 +12,7 @@ import clients from '@/store/clients';
|
||||
import invoices from '@/store/invoices';
|
||||
import teams from '@/store/teams';
|
||||
import themes from '@/store/themes';
|
||||
import localForage from 'localforage';
|
||||
import { download } from '../utils/helpers';
|
||||
import data from '@/store/data';
|
||||
|
||||
Vue.use(Vuex);
|
||||
|
||||
@@ -34,27 +33,9 @@ export default new Vuex.Store({
|
||||
invoices,
|
||||
teams,
|
||||
themes,
|
||||
data,
|
||||
},
|
||||
state: {},
|
||||
mutations: {},
|
||||
actions: {
|
||||
async exportJson() {
|
||||
let results = [];
|
||||
const keys = await localForage.keys();
|
||||
keys.forEach((key) => {
|
||||
results.push(localForage.getItem(key));
|
||||
});
|
||||
results = await Promise.all(results);
|
||||
|
||||
const data = {};
|
||||
keys.forEach((key, index) => {
|
||||
data[key] = results[index];
|
||||
});
|
||||
|
||||
download(JSON.stringify(data), 'serverless-invoices.json', 'application/json');
|
||||
},
|
||||
importJson() {
|
||||
|
||||
},
|
||||
},
|
||||
actions: {},
|
||||
});
|
||||
|
||||
@@ -7,9 +7,11 @@ export default {
|
||||
mutations: {},
|
||||
actions: {
|
||||
async init({ dispatch }) {
|
||||
dispatch('clients/terminate', null, { root: true });
|
||||
dispatch('bankAccounts/terminate', null, { root: true });
|
||||
dispatch('invoices/terminate', null, { root: true });
|
||||
await Promise.all([
|
||||
dispatch('clients/terminate', null, { root: true }),
|
||||
dispatch('bankAccounts/terminate', null, { root: true }),
|
||||
dispatch('invoices/terminate', null, { root: true }),
|
||||
]);
|
||||
|
||||
await dispatch('getTeam');
|
||||
|
||||
@@ -17,6 +19,9 @@ export default {
|
||||
dispatch('bankAccounts/init', null, { root: true });
|
||||
dispatch('invoices/init', null, { root: true });
|
||||
},
|
||||
async terminate() {
|
||||
return Team.deleteAll();
|
||||
},
|
||||
async getTeam() {
|
||||
const team = await TeamService.getTeam();
|
||||
await Team.create({ data: team });
|
||||
|
||||
Reference in New Issue
Block a user