-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.js
35 lines (28 loc) · 863 Bytes
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'use strict';
async function execute_kw(NODE, state, method, ...params) {
const odooIn = NODE.getInputByName('odoo');
const odoos = await odooIn.getValues(state);
let model = NODE.data.model;
const modelIn = NODE.getInputByName('model');
if (modelIn && modelIn.isConnected()) {
model = (await modelIn.getValues(state))[0];
}
if (!params.length) {
const paramsIn = NODE.getInputByName('params');
params = [await paramsIn.getValues(state)];
}
const values = await Promise.all(odoos.map((odoo) => {
return new Promise((resolve, reject) => {
odoo.execute_kw(model, method, [params], (err, value) => {
if (err) {
NODE.error(err, state);
reject(err);
return;
}
resolve(value);
});
});
}));
return [].concat(...values);
}
module.exports = { execute_kw };