472bc7805274f06878b94e0cc201b5a4a5e63579
[motion2.git] / server / api / intServicenowConfiguration / intServicenowConfiguration.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x7459=['undefined','count','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','index','ServicenowConfiguration','rawAttributes','type','key','map','query','keys','filters','model','intersection','fields','attributes','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','rows','then','show','find','catch','create','body','params','getFields','findOne','ServicenowField','length','pick','options','getSubjects','getDescriptions','rimraf','zip-dir','moment','bluebird','mustache','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x7459,0x11b));var _0x9745=function(_0x27e58a,_0x20f5a2){_0x27e58a=_0x27e58a-0x0;var _0x36f13f=_0x7459[_0x27e58a];return _0x36f13f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9745('0x0'));var zipdir=require(_0x9745('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9745('0x2'));var BPromise=require(_0x9745('0x3'));var Mustache=require(_0x9745('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x9745('0x5'));var ejs=require(_0x9745('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9745('0x7'));var squel=require(_0x9745('0x8'));var crypto=require(_0x9745('0x9'));var jsforce=require(_0x9745('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9745('0xb'));var Papa=require(_0x9745('0xc'));var Redis=require(_0x9745('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9745('0xe'));var hardwareService=require(_0x9745('0xf'));var logger=require(_0x9745('0x10'))('api');var utils=require(_0x9745('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x9745('0x12'));var db=require(_0x9745('0x13'))['db'];function respondWithStatusCode(_0x48cd78,_0x841c29){_0x841c29=_0x841c29||0xcc;return function(_0xa8d1a5){if(_0xa8d1a5){return _0x48cd78[_0x9745('0x14')](_0x841c29);}return _0x48cd78['status'](_0x841c29)[_0x9745('0x15')]();};}function respondWithResult(_0xe4b4bc,_0x55327c){_0x55327c=_0x55327c||0xc8;return function(_0x4208c0){if(_0x4208c0){return _0xe4b4bc[_0x9745('0x16')](_0x55327c)[_0x9745('0x17')](_0x4208c0);}};}function respondWithFilteredResult(_0x1c39f0,_0x58fd12){return function(_0x51857b){if(_0x51857b){var _0x1675d0=typeof _0x58fd12[_0x9745('0x18')]===_0x9745('0x19')&&typeof _0x58fd12['limit']===_0x9745('0x19');var _0x9cd352=_0x51857b['count'];var _0x5825ed=_0x1675d0?0x0:_0x58fd12[_0x9745('0x18')];var _0x11dd70=_0x1675d0?_0x51857b[_0x9745('0x1a')]:_0x58fd12[_0x9745('0x18')]+_0x58fd12['limit'];var _0x2d9db2;if(_0x11dd70>=_0x9cd352){_0x11dd70=_0x9cd352;_0x2d9db2=0xc8;}else{_0x2d9db2=0xce;}_0x1c39f0[_0x9745('0x16')](_0x2d9db2);return _0x1c39f0[_0x9745('0x1b')](_0x9745('0x1c'),_0x5825ed+'-'+_0x11dd70+'/'+_0x9cd352)[_0x9745('0x17')](_0x51857b);}return null;};}function patchUpdates(_0x80e56c){return function(_0x32b21f){try{jsonpatch[_0x9745('0x1d')](_0x32b21f,_0x80e56c,!![]);}catch(_0x46d645){return BPromise[_0x9745('0x1e')](_0x46d645);}return _0x32b21f[_0x9745('0x1f')]();};}function saveUpdates(_0x58439b,_0x276854){return function(_0x2f6995){if(_0x2f6995){return _0x2f6995[_0x9745('0x20')](_0x58439b)['then'](function(_0x306d75){return _0x306d75;});}return null;};}function removeEntity(_0x2db952,_0x20b83e){return function(_0x5423fd){if(_0x5423fd){return _0x5423fd[_0x9745('0x21')]()['then'](function(){_0x2db952[_0x9745('0x16')](0xcc)[_0x9745('0x15')]();});}};}function handleEntityNotFound(_0x5aebe4,_0x50cad8){return function(_0x34f9f9){if(!_0x34f9f9){_0x5aebe4[_0x9745('0x14')](0x194);}return _0x34f9f9;};}function handleError(_0x32588d,_0x1a6042){_0x1a6042=_0x1a6042||0x1f4;return function(_0xb3e632){logger[_0x9745('0x22')](_0xb3e632[_0x9745('0x23')]);if(_0xb3e632[_0x9745('0x24')]){delete _0xb3e632['name'];}_0x32588d[_0x9745('0x16')](_0x1a6042)['send'](_0xb3e632);};}exports[_0x9745('0x25')]=function(_0x438cdb,_0x448e1c){var _0x2938c9={},_0x10994c={},_0xe3af05={'count':0x0,'rows':[]};var _0x245da2=_['map'](db[_0x9745('0x26')][_0x9745('0x27')],function(_0x1f960c){return{'name':_0x1f960c['fieldName'],'type':_0x1f960c[_0x9745('0x28')][_0x9745('0x29')]};});_0x10994c['model']=_[_0x9745('0x2a')](_0x245da2,_0x9745('0x24'));_0x10994c[_0x9745('0x2b')]=_[_0x9745('0x2c')](_0x438cdb[_0x9745('0x2b')]);_0x10994c[_0x9745('0x2d')]=_['intersection'](_0x10994c[_0x9745('0x2e')],_0x10994c[_0x9745('0x2b')]);_0x2938c9['attributes']=_[_0x9745('0x2f')](_0x10994c['model'],qs[_0x9745('0x30')](_0x438cdb[_0x9745('0x2b')][_0x9745('0x30')]));_0x2938c9[_0x9745('0x31')]=_0x2938c9[_0x9745('0x31')]['length']?_0x2938c9[_0x9745('0x31')]:_0x10994c['model'];if(!_0x438cdb[_0x9745('0x2b')][_0x9745('0x32')](_0x9745('0x33'))){_0x2938c9[_0x9745('0x34')]=qs[_0x9745('0x34')](_0x438cdb[_0x9745('0x2b')][_0x9745('0x34')]);_0x2938c9[_0x9745('0x18')]=qs[_0x9745('0x18')](_0x438cdb[_0x9745('0x2b')][_0x9745('0x18')]);}_0x2938c9[_0x9745('0x35')]=qs[_0x9745('0x36')](_0x438cdb[_0x9745('0x2b')][_0x9745('0x36')]);_0x2938c9[_0x9745('0x37')]=qs[_0x9745('0x2d')](_['pick'](_0x438cdb[_0x9745('0x2b')],_0x10994c['filters']),_0x245da2);if(_0x438cdb[_0x9745('0x2b')][_0x9745('0x38')]){_0x2938c9['where']=_[_0x9745('0x39')](_0x2938c9[_0x9745('0x37')],{'$or':_[_0x9745('0x2a')](_0x245da2,function(_0xaa3bfe){if(_0xaa3bfe[_0x9745('0x28')]!==_0x9745('0x3a')){var _0x4c6697={};_0x4c6697[_0xaa3bfe['name']]={'$like':'%'+_0x438cdb[_0x9745('0x2b')]['filter']+'%'};return _0x4c6697;}})});}_0x2938c9=_[_0x9745('0x39')]({},_0x2938c9,_0x438cdb['options']);var _0x709ff0={'where':_0x2938c9[_0x9745('0x37')]};return db[_0x9745('0x26')][_0x9745('0x1a')](_0x709ff0)['then'](function(_0xda81a2){_0xe3af05[_0x9745('0x1a')]=_0xda81a2;if(_0x438cdb[_0x9745('0x2b')][_0x9745('0x3b')]){_0x2938c9[_0x9745('0x3c')]=[{'all':!![]}];}return db[_0x9745('0x26')]['findAll'](_0x2938c9);})['then'](function(_0xf4c043){_0xe3af05[_0x9745('0x3d')]=_0xf4c043;return _0xe3af05;})[_0x9745('0x3e')](respondWithFilteredResult(_0x448e1c,_0x2938c9))['catch'](handleError(_0x448e1c,null));};exports[_0x9745('0x3f')]=function(_0x423747,_0x5ab302){var _0x41abe2={'raw':![],'where':{'id':_0x423747['params']['id']}},_0x593301={};_0x593301[_0x9745('0x2e')]=_[_0x9745('0x2c')](db[_0x9745('0x26')]['rawAttributes']);_0x593301[_0x9745('0x2b')]=_[_0x9745('0x2c')](_0x423747[_0x9745('0x2b')]);_0x593301['filters']=_['intersection'](_0x593301[_0x9745('0x2e')],_0x593301[_0x9745('0x2b')]);_0x41abe2[_0x9745('0x31')]=_[_0x9745('0x2f')](_0x593301['model'],qs[_0x9745('0x30')](_0x423747[_0x9745('0x2b')][_0x9745('0x30')]));_0x41abe2[_0x9745('0x31')]=_0x41abe2[_0x9745('0x31')]['length']?_0x41abe2[_0x9745('0x31')]:_0x593301[_0x9745('0x2e')];if(_0x423747['query']['includeAll']){_0x41abe2['include']=[{'all':!![]}];}_0x41abe2=_[_0x9745('0x39')]({},_0x41abe2,_0x423747['options']);return db['ServicenowConfiguration'][_0x9745('0x40')](_0x41abe2)['then'](handleEntityNotFound(_0x5ab302,null))[_0x9745('0x3e')](respondWithResult(_0x5ab302,null))[_0x9745('0x41')](handleError(_0x5ab302,null));};exports[_0x9745('0x42')]=function(_0x5940bb,_0x3c251d){return db['ServicenowConfiguration'][_0x9745('0x42')](_0x5940bb[_0x9745('0x43')],{})[_0x9745('0x3e')](respondWithResult(_0x3c251d,0xc9))[_0x9745('0x41')](handleError(_0x3c251d,null));};exports['update']=function(_0x5cfd7b,_0x31c74c){if(_0x5cfd7b['body']['id']){delete _0x5cfd7b['body']['id'];}return db[_0x9745('0x26')][_0x9745('0x40')]({'where':{'id':_0x5cfd7b[_0x9745('0x44')]['id']}})[_0x9745('0x3e')](handleEntityNotFound(_0x31c74c,null))[_0x9745('0x3e')](saveUpdates(_0x5cfd7b['body'],null))[_0x9745('0x3e')](respondWithResult(_0x31c74c,null))[_0x9745('0x41')](handleError(_0x31c74c,null));};exports[_0x9745('0x21')]=function(_0x1b5a7a,_0x159640){return db[_0x9745('0x26')][_0x9745('0x40')]({'where':{'id':_0x1b5a7a['params']['id']}})[_0x9745('0x3e')](handleEntityNotFound(_0x159640,null))[_0x9745('0x3e')](removeEntity(_0x159640,null))['catch'](handleError(_0x159640,null));};exports[_0x9745('0x45')]=function(_0x3e5d07,_0x22b25e,_0x8d0973){var _0x108ad5={};var _0x31f013={};var _0x508832;var _0xf30f8d;return db[_0x9745('0x26')][_0x9745('0x46')]({'where':{'id':_0x3e5d07[_0x9745('0x44')]['id']}})[_0x9745('0x3e')](handleEntityNotFound(_0x22b25e,null))[_0x9745('0x3e')](function(_0x2a6b9b){if(_0x2a6b9b){_0x508832=_0x2a6b9b;_0x31f013[_0x9745('0x2e')]=_[_0x9745('0x2c')](db[_0x9745('0x47')]['rawAttributes']);_0x31f013['query']=_['keys'](_0x3e5d07['query']);_0x31f013[_0x9745('0x2d')]=_[_0x9745('0x2f')](_0x31f013[_0x9745('0x2e')],_0x31f013['query']);_0x108ad5[_0x9745('0x31')]=_['intersection'](_0x31f013['model'],qs['fields'](_0x3e5d07['query']['fields']));_0x108ad5['attributes']=_0x108ad5['attributes'][_0x9745('0x48')]?_0x108ad5[_0x9745('0x31')]:_0x31f013['model'];_0x108ad5['order']=qs[_0x9745('0x36')](_0x3e5d07[_0x9745('0x2b')][_0x9745('0x36')]);_0x108ad5[_0x9745('0x37')]=qs[_0x9745('0x2d')](_[_0x9745('0x49')](_0x3e5d07[_0x9745('0x2b')],_0x31f013[_0x9745('0x2d')]));if(_0x3e5d07[_0x9745('0x2b')]['filter']){_0x108ad5['where']=_[_0x9745('0x39')](_0x108ad5['where'],{'$or':_['map'](_0x108ad5[_0x9745('0x31')],function(_0x5b0a21){var _0xc388e={};_0xc388e[_0x5b0a21]={'$like':'%'+_0x3e5d07[_0x9745('0x2b')][_0x9745('0x38')]+'%'};return _0xc388e;})});}_0x108ad5=_[_0x9745('0x39')]({},_0x108ad5,_0x3e5d07[_0x9745('0x4a')]);return _0x508832[_0x9745('0x45')](_0x108ad5);}})['then'](function(_0x3a0a05){if(_0x3a0a05){_0xf30f8d=_0x3a0a05['length'];if(!_0x3e5d07[_0x9745('0x2b')][_0x9745('0x32')](_0x9745('0x33'))){_0x108ad5[_0x9745('0x34')]=qs[_0x9745('0x34')](_0x3e5d07['query'][_0x9745('0x34')]);_0x108ad5[_0x9745('0x18')]=qs[_0x9745('0x18')](_0x3e5d07['query'][_0x9745('0x18')]);}return _0x508832['getFields'](_0x108ad5);}})['then'](function(_0x3baf70){if(_0x3baf70){return _0x3baf70?{'count':_0xf30f8d,'rows':_0x3baf70}:null;}})['then'](respondWithResult(_0x22b25e,null))[_0x9745('0x41')](handleError(_0x22b25e,null));};exports[_0x9745('0x4b')]=function(_0x542680,_0x208ad,_0x5aba8b){var _0x4887c7={};var _0x5b27f5={};var _0x2baa52;var _0xe43038;return db[_0x9745('0x26')][_0x9745('0x46')]({'where':{'id':_0x542680[_0x9745('0x44')]['id']}})[_0x9745('0x3e')](handleEntityNotFound(_0x208ad,null))[_0x9745('0x3e')](function(_0x2c30a0){if(_0x2c30a0){_0x2baa52=_0x2c30a0;_0x5b27f5[_0x9745('0x2e')]=_[_0x9745('0x2c')](db[_0x9745('0x47')][_0x9745('0x27')]);_0x5b27f5[_0x9745('0x2b')]=_[_0x9745('0x2c')](_0x542680[_0x9745('0x2b')]);_0x5b27f5['filters']=_[_0x9745('0x2f')](_0x5b27f5[_0x9745('0x2e')],_0x5b27f5[_0x9745('0x2b')]);_0x4887c7['attributes']=_[_0x9745('0x2f')](_0x5b27f5['model'],qs[_0x9745('0x30')](_0x542680['query'][_0x9745('0x30')]));_0x4887c7[_0x9745('0x31')]=_0x4887c7[_0x9745('0x31')][_0x9745('0x48')]?_0x4887c7[_0x9745('0x31')]:_0x5b27f5[_0x9745('0x2e')];_0x4887c7['order']=qs[_0x9745('0x36')](_0x542680[_0x9745('0x2b')][_0x9745('0x36')]);_0x4887c7['where']=qs[_0x9745('0x2d')](_[_0x9745('0x49')](_0x542680[_0x9745('0x2b')],_0x5b27f5[_0x9745('0x2d')]));if(_0x542680[_0x9745('0x2b')][_0x9745('0x38')]){_0x4887c7[_0x9745('0x37')]=_['merge'](_0x4887c7[_0x9745('0x37')],{'$or':_[_0x9745('0x2a')](_0x4887c7['attributes'],function(_0x3858cb){var _0x2a5153={};_0x2a5153[_0x3858cb]={'$like':'%'+_0x542680['query'][_0x9745('0x38')]+'%'};return _0x2a5153;})});}_0x4887c7=_[_0x9745('0x39')]({},_0x4887c7,_0x542680[_0x9745('0x4a')]);return _0x2baa52['getSubjects'](_0x4887c7);}})['then'](function(_0x456caf){if(_0x456caf){_0xe43038=_0x456caf[_0x9745('0x48')];if(!_0x542680[_0x9745('0x2b')]['hasOwnProperty']('nolimit')){_0x4887c7[_0x9745('0x34')]=qs[_0x9745('0x34')](_0x542680[_0x9745('0x2b')]['limit']);_0x4887c7[_0x9745('0x18')]=qs[_0x9745('0x18')](_0x542680[_0x9745('0x2b')]['offset']);}return _0x2baa52[_0x9745('0x4b')](_0x4887c7);}})[_0x9745('0x3e')](function(_0x56e760){if(_0x56e760){return _0x56e760?{'count':_0xe43038,'rows':_0x56e760}:null;}})[_0x9745('0x3e')](respondWithResult(_0x208ad,null))['catch'](handleError(_0x208ad,null));};exports[_0x9745('0x4c')]=function(_0x12817c,_0x569342,_0x4eb973){var _0x1250e2={};var _0x1c6ded={};var _0x3560ed;var _0x2de1f0;return db['ServicenowConfiguration'][_0x9745('0x46')]({'where':{'id':_0x12817c[_0x9745('0x44')]['id']}})[_0x9745('0x3e')](handleEntityNotFound(_0x569342,null))[_0x9745('0x3e')](function(_0x38c157){if(_0x38c157){_0x3560ed=_0x38c157;_0x1c6ded['model']=_[_0x9745('0x2c')](db[_0x9745('0x47')][_0x9745('0x27')]);_0x1c6ded['query']=_[_0x9745('0x2c')](_0x12817c[_0x9745('0x2b')]);_0x1c6ded['filters']=_['intersection'](_0x1c6ded[_0x9745('0x2e')],_0x1c6ded['query']);_0x1250e2['attributes']=_['intersection'](_0x1c6ded['model'],qs[_0x9745('0x30')](_0x12817c[_0x9745('0x2b')]['fields']));_0x1250e2[_0x9745('0x31')]=_0x1250e2[_0x9745('0x31')]['length']?_0x1250e2['attributes']:_0x1c6ded[_0x9745('0x2e')];_0x1250e2[_0x9745('0x35')]=qs[_0x9745('0x36')](_0x12817c[_0x9745('0x2b')][_0x9745('0x36')]);_0x1250e2[_0x9745('0x37')]=qs[_0x9745('0x2d')](_['pick'](_0x12817c[_0x9745('0x2b')],_0x1c6ded['filters']));if(_0x12817c[_0x9745('0x2b')][_0x9745('0x38')]){_0x1250e2['where']=_['merge'](_0x1250e2[_0x9745('0x37')],{'$or':_['map'](_0x1250e2[_0x9745('0x31')],function(_0x14989d){var _0x41d5c6={};_0x41d5c6[_0x14989d]={'$like':'%'+_0x12817c['query'][_0x9745('0x38')]+'%'};return _0x41d5c6;})});}_0x1250e2=_[_0x9745('0x39')]({},_0x1250e2,_0x12817c[_0x9745('0x4a')]);return _0x3560ed[_0x9745('0x4c')](_0x1250e2);}})[_0x9745('0x3e')](function(_0x4e9547){if(_0x4e9547){_0x2de1f0=_0x4e9547['length'];if(!_0x12817c[_0x9745('0x2b')][_0x9745('0x32')]('nolimit')){_0x1250e2[_0x9745('0x34')]=qs[_0x9745('0x34')](_0x12817c[_0x9745('0x2b')]['limit']);_0x1250e2[_0x9745('0x18')]=qs[_0x9745('0x18')](_0x12817c[_0x9745('0x2b')][_0x9745('0x18')]);}return _0x3560ed['getDescriptions'](_0x1250e2);}})[_0x9745('0x3e')](function(_0x142877){if(_0x142877){return _0x142877?{'count':_0x2de1f0,'rows':_0x142877}:null;}})[_0x9745('0x3e')](respondWithResult(_0x569342,null))['catch'](handleError(_0x569342,null));};