vue-express-mongo-boilerplate
Version:
Express NodeJS application server boilerplate with Mongo and VueJS
75 lines (61 loc) • 1.83 kB
JavaScript
import Vue from "vue";
import toastr from "../../../core/toastr";
import { LOAD, ADD, SELECT, CLEAR_SELECT, UPDATE, REMOVE } from "./types";
import axios from "axios";
export const NAMESPACE = "/api/devices";
export const selectRow = ({ commit }, row, multiSelect) => {
commit(SELECT, row, multiSelect);
};
export const clearSelection = ({ commit }) => {
commit(CLEAR_SELECT);
};
export const downloadRows = ({ commit }) => {
axios.get(NAMESPACE).then((response) => {
let res = response.data;
if (res.status == 200 && res.data)
commit(LOAD, res.data);
else
console.error("Request error!", res.error);
}).catch((response) => {
console.error("Request error!", response.statusText);
});
};
export const saveRow = ({ commit }, model) => {
axios.post(NAMESPACE, model).then((response) => {
let res = response.data;
if (res.status == 200 && res.data)
created({ commit }, res.data, true);
}).catch((response) => {
if (response.data.error)
toastr.error(response.data.error.message);
});
};
export const created = ({ commit }, row, needSelect) => {
commit(ADD, row);
if (needSelect)
commit(SELECT, row, false);
};
export const updateRow = ({ commit }, row) => {
axios.put(NAMESPACE + "/" + row.code, row).then((response) => {
let res = response.data;
if (res.data)
commit(UPDATE, res.data);
}).catch((response) => {
if (response.data.error)
toastr.error(response.data.error.message);
});
};
export const updated = ({ commit }, row) => {
commit(UPDATE, row);
};
export const removeRow = ({ commit }, row) => {
axios.delete(NAMESPACE + "/" + row.code).then((response) => {
commit(REMOVE, row);
}).catch((response) => {
if (response.data.error)
toastr.error(response.data.error.message);
});
};
export const removed = ({ commit }, row) => {
commit(REMOVE, row);
};