Commit 3ac8948b1c66a0ef2e9f1164e7bb11bfc2d731a1

Authored by Adhidarma Hadiwinoto
1 parent 8ea2305a03
Exists in master

Compact payload

Showing 1 changed file with 2 additions and 5 deletions Inline Diff

lib/generic-xmlrpc/compose-payload.js
1 const paramsIsArray = (methodName, params) => `<?xml version="1.0"?> 1 const paramsIsArray = (methodName, params) => `<?xml version="1.0"?>
2 <methodCall> 2 <methodCall>
3 <methodName>${methodName}</methodName> 3 <methodName>${methodName}</methodName>
4 <params> 4 <params>
5 <param> 5 <param>
6 <value> 6 <value>
7 <struct> 7 <struct>
8 ${(params || []).map((param) => ` 8 ${(params || []).map((param) => `
9 <member> 9 <member>
10 <name>${param.name}</name> 10 <name>${param.name}</name>
11 <value> 11 <value><${param.type || 'string'}>${param.value}</${param.type || 'string'}></value>
12 <${param.type || 'string'}>${param.value}</${param.type || 'string'}> 12 </member>
13 </value>
14 </member>
15
16 `).join('')} 13 `).join('')}
17 </struct> 14 </struct>
18 </value> 15 </value>
19 </param> 16 </param>
20 </params> 17 </params>
21 </methodCall>`; 18 </methodCall>`;
22 19
23 const paramsIsNotArray = (methodName, params) => { 20 const paramsIsNotArray = (methodName, params) => {
24 const paramsInArray = []; 21 const paramsInArray = [];
25 22
26 // eslint-disable-next-line no-restricted-syntax 23 // eslint-disable-next-line no-restricted-syntax
27 for (const [keyword, value] of Object.entries(params)) { 24 for (const [keyword, value] of Object.entries(params)) {
28 paramsInArray.push({ 25 paramsInArray.push({
29 name: keyword, 26 name: keyword,
30 value: (typeof value === 'object' && value.value) || value, 27 value: (typeof value === 'object' && value.value) || value,
31 type: value.type || 'string', 28 type: value.type || 'string',
32 }); 29 });
33 } 30 }
34 31
35 return paramsIsArray(methodName, paramsInArray); 32 return paramsIsArray(methodName, paramsInArray);
36 }; 33 };
37 34
38 module.exports = (methodName, params) => ( 35 module.exports = (methodName, params) => (
39 Array.isArray(params) 36 Array.isArray(params)
40 ? paramsIsArray(methodName, params) 37 ? paramsIsArray(methodName, params)
41 : paramsIsNotArray(methodName, params) 38 : paramsIsNotArray(methodName, params)
42 ); 39 );
43 40