generator-martinlabs
Version:
Generates a fullstack CRUD using Java and Vue.js, check the features list
59 lines (49 loc) • 1.64 kB
JavaScript
import VueResource from 'vue-resource';
import simpleStorage from 'simplestorage.js';
import { version } from '../../../package.json';
export default {
install(Vue) {
Vue.use(VueResource);
Vue.http.interceptors.push((request, next) => {
// all requests pass by here
request.headers.set('Accept-Language', Vue.lang);
request.headers.set('X-Client-Version', `w${version}`); // w = web
const token = simpleStorage.get('token<%= modulenameUpper %>') || null;
if (token) {
request.headers.set('Authorization', `Bearer ${token}`);
}
next((resp) => {
if (!resp.ok) {
Vue.$bus.error(resp.body.message, 3000);
if (resp.body.code === 33) {
simpleStorage.deleteKey('token<%= modulenameUpper %>');
simpleStorage.set('beforeLoginIntention', location.href);
Vue.$router.push('/login');
}
}
});
});
const apiPath = process.env.SERVER;
const resources = {
login: Vue.resource(`${apiPath}<%= modulenameUpper %>/Login`),<%
for (var i in tables) {
var table = tables[i];
if (table.inCrud && !table.isNtoNtable) {
%>
<%= table.classLowerCamel %>: Vue.resource(`${apiPath}<%= modulenameUpper %>/<%= table.className %><%
if (table.primaryColumns.length == 1) {
%>{/id}<%
} else {
for (var k in table.primaryColumns) {
%>{/<%= table.primaryColumns[k].propertyName %>}<%
}
}
%>`),<%
}
}
%>
};
Object.assign(Vue.prototype, { $resources: resources });
Object.assign(Vue, { $resources: resources });
},
};