2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 19:29:02 +00:00
books/client/index.js

55 lines
1.6 KiB
JavaScript
Raw Normal View History

2018-01-16 06:09:17 +00:00
const common = require('frappejs/common');
2018-02-19 16:41:10 +00:00
const HTTPClient = require('frappejs/backends/http');
2018-01-16 06:09:17 +00:00
const frappe = require('frappejs');
2018-01-12 12:25:07 +00:00
frappe.ui = require('./ui');
const Desk = require('./desk');
const Observable = require('frappejs/utils/observable');
2018-01-12 12:25:07 +00:00
module.exports = {
2018-02-14 16:44:50 +00:00
async start({server, columns = 2}) {
2018-01-12 12:25:07 +00:00
window.frappe = frappe;
frappe.init();
frappe.registerLibs(common);
2018-03-05 16:45:21 +00:00
frappe.registerModels(require('frappejs/models'), 'client');
frappe.registerModels(require('../models'), 'client');
2018-01-12 12:25:07 +00:00
frappe.fetch = window.fetch.bind();
2018-03-26 12:56:21 +00:00
this.setCall();
2018-02-19 16:41:10 +00:00
frappe.db = await new HTTPClient({server: server});
this.socket = io.connect('http://localhost:8000'); // eslint-disable-line
frappe.db.bindSocketClient(this.socket);
frappe.docs = new Observable();
await frappe.getSingle('SystemSettings');
2018-01-12 12:25:07 +00:00
2018-02-14 16:44:50 +00:00
frappe.desk = new Desk(columns);
2018-01-12 12:25:07 +00:00
await frappe.login();
2018-03-26 12:56:21 +00:00
},
setCall() {
frappe.call = async ({method, type='get', args}) => {
let url = `/api/method/${method}`;
let request = {};
if (args) {
if (type.toLowerCase()==='get') {
url += '?' + frappe.getQueryString(args);
} else {
// POST / PUT / DELETE
request.body = JSON.stringify(args);
}
}
request.headers = { 'Accept': 'application/json' };
request.method = type.toUpperCase();
let response = await fetch(url, request);
return await response.json();
}
2018-01-12 12:25:07 +00:00
}
};