4ec659a2638b7b1af4331a5a134537260e60766d
[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 _0x5f40=['create','body','find','getFields','ServicenowField','rawAttributes','order','pick','getSubjects','hasOwnProperty','getDescriptions','findOne','rimraf','fast-json-patch','moment','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','reject','save','then','destroy','error','stack','name','send','index','map','ServicenowConfiguration','fieldName','type','key','model','keys','filters','intersection','attributes','fields','query','length','nolimit','limit','sort','filter','where','merge','VIRTUAL','options','include','findAll','rows','show','params','includeAll','catch'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x5f40,0x192));var _0x05f4=function(_0x5242bd,_0xa047d1){_0x5242bd=_0x5242bd-0x0;var _0x2507db=_0x5f40[_0x5242bd];return _0x2507db;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x05f4('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x05f4('0x1'));var rp=require('request-promise');var moment=require(_0x05f4('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x05f4('0x3'));var path=require('path');var sox=require(_0x05f4('0x4'));var csv=require(_0x05f4('0x5'));var ejs=require(_0x05f4('0x6'));var fs=require('fs');var fs_extra=require(_0x05f4('0x7'));var _=require(_0x05f4('0x8'));var squel=require(_0x05f4('0x9'));var crypto=require(_0x05f4('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x05f4('0xb'));var Papa=require(_0x05f4('0xc'));var Redis=require(_0x05f4('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x05f4('0xe'));var as=require(_0x05f4('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x05f4('0x10'))(_0x05f4('0x11'));var utils=require('../../config/utils');var config=require(_0x05f4('0x12'));var licenseUtil=require(_0x05f4('0x13'));var db=require(_0x05f4('0x14'))['db'];function respondWithStatusCode(_0x332818,_0x1ac994){_0x1ac994=_0x1ac994||0xcc;return function(_0x517e9f){if(_0x517e9f){return _0x332818[_0x05f4('0x15')](_0x1ac994);}return _0x332818[_0x05f4('0x16')](_0x1ac994)['end']();};}function respondWithResult(_0x18b642,_0x405eb6){_0x405eb6=_0x405eb6||0xc8;return function(_0x17bdd8){if(_0x17bdd8){return _0x18b642['status'](_0x405eb6)[_0x05f4('0x17')](_0x17bdd8);}};}function respondWithFilteredResult(_0x5d95c7,_0xf22ae4){return function(_0x408a8a){if(_0x408a8a){var _0xe0f295=typeof _0xf22ae4[_0x05f4('0x18')]===_0x05f4('0x19')&&typeof _0xf22ae4['limit']===_0x05f4('0x19');var _0x415524=_0x408a8a[_0x05f4('0x1a')];var _0x2ab203=_0xe0f295?0x0:_0xf22ae4[_0x05f4('0x18')];var _0x32e655=_0xe0f295?_0x408a8a[_0x05f4('0x1a')]:_0xf22ae4[_0x05f4('0x18')]+_0xf22ae4['limit'];var _0x32b10e;if(_0x32e655>=_0x415524){_0x32e655=_0x415524;_0x32b10e=0xc8;}else{_0x32b10e=0xce;}_0x5d95c7[_0x05f4('0x16')](_0x32b10e);return _0x5d95c7[_0x05f4('0x1b')](_0x05f4('0x1c'),_0x2ab203+'-'+_0x32e655+'/'+_0x415524)[_0x05f4('0x17')](_0x408a8a);}return null;};}function patchUpdates(_0x68859f){return function(_0x49430f){try{jsonpatch['apply'](_0x49430f,_0x68859f,!![]);}catch(_0x557f20){return BPromise[_0x05f4('0x1d')](_0x557f20);}return _0x49430f[_0x05f4('0x1e')]();};}function saveUpdates(_0x175baf,_0x40d638){return function(_0x42a2da){if(_0x42a2da){return _0x42a2da['update'](_0x175baf)[_0x05f4('0x1f')](function(_0x3a01e2){return _0x3a01e2;});}return null;};}function removeEntity(_0x595ba5,_0x1c6ab7){return function(_0xabb188){if(_0xabb188){return _0xabb188[_0x05f4('0x20')]()['then'](function(){_0x595ba5[_0x05f4('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe880c5,_0x4ed4f8){return function(_0xf20b7f){if(!_0xf20b7f){_0xe880c5[_0x05f4('0x15')](0x194);}return _0xf20b7f;};}function handleError(_0x10d575,_0x24a777){_0x24a777=_0x24a777||0x1f4;return function(_0x38e9dc){logger[_0x05f4('0x21')](_0x38e9dc[_0x05f4('0x22')]);if(_0x38e9dc[_0x05f4('0x23')]){delete _0x38e9dc['name'];}_0x10d575[_0x05f4('0x16')](_0x24a777)[_0x05f4('0x24')](_0x38e9dc);};}exports[_0x05f4('0x25')]=function(_0x1fe239,_0x59579e){var _0xb4e22={},_0x25fde3={},_0x1e44f5={'count':0x0,'rows':[]};var _0x18c76d=_[_0x05f4('0x26')](db[_0x05f4('0x27')]['rawAttributes'],function(_0xa3e1b3){return{'name':_0xa3e1b3[_0x05f4('0x28')],'type':_0xa3e1b3[_0x05f4('0x29')][_0x05f4('0x2a')]};});_0x25fde3[_0x05f4('0x2b')]=_['map'](_0x18c76d,_0x05f4('0x23'));_0x25fde3['query']=_[_0x05f4('0x2c')](_0x1fe239['query']);_0x25fde3[_0x05f4('0x2d')]=_[_0x05f4('0x2e')](_0x25fde3[_0x05f4('0x2b')],_0x25fde3['query']);_0xb4e22[_0x05f4('0x2f')]=_['intersection'](_0x25fde3['model'],qs[_0x05f4('0x30')](_0x1fe239[_0x05f4('0x31')][_0x05f4('0x30')]));_0xb4e22[_0x05f4('0x2f')]=_0xb4e22['attributes'][_0x05f4('0x32')]?_0xb4e22[_0x05f4('0x2f')]:_0x25fde3['model'];if(!_0x1fe239[_0x05f4('0x31')]['hasOwnProperty'](_0x05f4('0x33'))){_0xb4e22[_0x05f4('0x34')]=qs[_0x05f4('0x34')](_0x1fe239[_0x05f4('0x31')]['limit']);_0xb4e22[_0x05f4('0x18')]=qs['offset'](_0x1fe239['query'][_0x05f4('0x18')]);}_0xb4e22['order']=qs[_0x05f4('0x35')](_0x1fe239[_0x05f4('0x31')]['sort']);_0xb4e22['where']=qs[_0x05f4('0x2d')](_['pick'](_0x1fe239[_0x05f4('0x31')],_0x25fde3[_0x05f4('0x2d')]),_0x18c76d);if(_0x1fe239['query'][_0x05f4('0x36')]){_0xb4e22[_0x05f4('0x37')]=_[_0x05f4('0x38')](_0xb4e22[_0x05f4('0x37')],{'$or':_[_0x05f4('0x26')](_0x18c76d,function(_0x17210e){if(_0x17210e[_0x05f4('0x29')]!==_0x05f4('0x39')){var _0x53e425={};_0x53e425[_0x17210e[_0x05f4('0x23')]]={'$like':'%'+_0x1fe239[_0x05f4('0x31')]['filter']+'%'};return _0x53e425;}})});}_0xb4e22=_[_0x05f4('0x38')]({},_0xb4e22,_0x1fe239[_0x05f4('0x3a')]);var _0x24154b={'where':_0xb4e22[_0x05f4('0x37')]};return db[_0x05f4('0x27')][_0x05f4('0x1a')](_0x24154b)[_0x05f4('0x1f')](function(_0x1f604e){_0x1e44f5[_0x05f4('0x1a')]=_0x1f604e;if(_0x1fe239['query']['includeAll']){_0xb4e22[_0x05f4('0x3b')]=[{'all':!![]}];}return db[_0x05f4('0x27')][_0x05f4('0x3c')](_0xb4e22);})[_0x05f4('0x1f')](function(_0x497bdb){_0x1e44f5[_0x05f4('0x3d')]=_0x497bdb;return _0x1e44f5;})[_0x05f4('0x1f')](respondWithFilteredResult(_0x59579e,_0xb4e22))['catch'](handleError(_0x59579e,null));};exports[_0x05f4('0x3e')]=function(_0x1b2c52,_0x102d74){var _0x4cdf91={'raw':![],'where':{'id':_0x1b2c52[_0x05f4('0x3f')]['id']}},_0x5e8dd6={};_0x5e8dd6[_0x05f4('0x2b')]=_[_0x05f4('0x2c')](db[_0x05f4('0x27')]['rawAttributes']);_0x5e8dd6[_0x05f4('0x31')]=_[_0x05f4('0x2c')](_0x1b2c52[_0x05f4('0x31')]);_0x5e8dd6[_0x05f4('0x2d')]=_[_0x05f4('0x2e')](_0x5e8dd6['model'],_0x5e8dd6['query']);_0x4cdf91[_0x05f4('0x2f')]=_[_0x05f4('0x2e')](_0x5e8dd6[_0x05f4('0x2b')],qs[_0x05f4('0x30')](_0x1b2c52[_0x05f4('0x31')][_0x05f4('0x30')]));_0x4cdf91[_0x05f4('0x2f')]=_0x4cdf91[_0x05f4('0x2f')][_0x05f4('0x32')]?_0x4cdf91['attributes']:_0x5e8dd6[_0x05f4('0x2b')];if(_0x1b2c52[_0x05f4('0x31')][_0x05f4('0x40')]){_0x4cdf91[_0x05f4('0x3b')]=[{'all':!![]}];}_0x4cdf91=_[_0x05f4('0x38')]({},_0x4cdf91,_0x1b2c52[_0x05f4('0x3a')]);return db[_0x05f4('0x27')]['find'](_0x4cdf91)['then'](handleEntityNotFound(_0x102d74,null))[_0x05f4('0x1f')](respondWithResult(_0x102d74,null))[_0x05f4('0x41')](handleError(_0x102d74,null));};exports[_0x05f4('0x42')]=function(_0x5cd210,_0x376e86){return db[_0x05f4('0x27')][_0x05f4('0x42')](_0x5cd210['body'],{})[_0x05f4('0x1f')](respondWithResult(_0x376e86,0xc9))[_0x05f4('0x41')](handleError(_0x376e86,null));};exports['update']=function(_0xab4d90,_0x3afb37){if(_0xab4d90[_0x05f4('0x43')]['id']){delete _0xab4d90[_0x05f4('0x43')]['id'];}return db[_0x05f4('0x27')][_0x05f4('0x44')]({'where':{'id':_0xab4d90[_0x05f4('0x3f')]['id']}})[_0x05f4('0x1f')](handleEntityNotFound(_0x3afb37,null))['then'](saveUpdates(_0xab4d90['body'],null))['then'](respondWithResult(_0x3afb37,null))[_0x05f4('0x41')](handleError(_0x3afb37,null));};exports[_0x05f4('0x20')]=function(_0x72d1c1,_0x67d5d1){return db['ServicenowConfiguration'][_0x05f4('0x44')]({'where':{'id':_0x72d1c1[_0x05f4('0x3f')]['id']}})[_0x05f4('0x1f')](handleEntityNotFound(_0x67d5d1,null))['then'](removeEntity(_0x67d5d1,null))[_0x05f4('0x41')](handleError(_0x67d5d1,null));};exports[_0x05f4('0x45')]=function(_0x4e39b4,_0x414a8d,_0x566dce){var _0x42d383={};var _0x38fdf4={};var _0x5c8c3e;var _0x2aa73e;return db[_0x05f4('0x27')]['findOne']({'where':{'id':_0x4e39b4[_0x05f4('0x3f')]['id']}})[_0x05f4('0x1f')](handleEntityNotFound(_0x414a8d,null))['then'](function(_0x5bd9f0){if(_0x5bd9f0){_0x5c8c3e=_0x5bd9f0;_0x38fdf4[_0x05f4('0x2b')]=_[_0x05f4('0x2c')](db[_0x05f4('0x46')][_0x05f4('0x47')]);_0x38fdf4[_0x05f4('0x31')]=_[_0x05f4('0x2c')](_0x4e39b4['query']);_0x38fdf4['filters']=_[_0x05f4('0x2e')](_0x38fdf4[_0x05f4('0x2b')],_0x38fdf4[_0x05f4('0x31')]);_0x42d383[_0x05f4('0x2f')]=_[_0x05f4('0x2e')](_0x38fdf4[_0x05f4('0x2b')],qs[_0x05f4('0x30')](_0x4e39b4[_0x05f4('0x31')][_0x05f4('0x30')]));_0x42d383['attributes']=_0x42d383[_0x05f4('0x2f')][_0x05f4('0x32')]?_0x42d383[_0x05f4('0x2f')]:_0x38fdf4['model'];_0x42d383[_0x05f4('0x48')]=qs['sort'](_0x4e39b4[_0x05f4('0x31')][_0x05f4('0x35')]);_0x42d383['where']=qs[_0x05f4('0x2d')](_[_0x05f4('0x49')](_0x4e39b4['query'],_0x38fdf4['filters']));if(_0x4e39b4[_0x05f4('0x31')][_0x05f4('0x36')]){_0x42d383[_0x05f4('0x37')]=_['merge'](_0x42d383['where'],{'$or':_[_0x05f4('0x26')](_0x42d383['attributes'],function(_0xdac89e){var _0x541e3a={};_0x541e3a[_0xdac89e]={'$like':'%'+_0x4e39b4[_0x05f4('0x31')][_0x05f4('0x36')]+'%'};return _0x541e3a;})});}_0x42d383=_['merge']({},_0x42d383,_0x4e39b4[_0x05f4('0x3a')]);return _0x5c8c3e['getFields'](_0x42d383);}})['then'](function(_0x21c226){if(_0x21c226){_0x2aa73e=_0x21c226[_0x05f4('0x32')];if(!_0x4e39b4[_0x05f4('0x31')]['hasOwnProperty'](_0x05f4('0x33'))){_0x42d383[_0x05f4('0x34')]=qs[_0x05f4('0x34')](_0x4e39b4[_0x05f4('0x31')][_0x05f4('0x34')]);_0x42d383[_0x05f4('0x18')]=qs[_0x05f4('0x18')](_0x4e39b4['query'][_0x05f4('0x18')]);}return _0x5c8c3e[_0x05f4('0x45')](_0x42d383);}})['then'](function(_0x232b7d){if(_0x232b7d){return _0x232b7d?{'count':_0x2aa73e,'rows':_0x232b7d}:null;}})[_0x05f4('0x1f')](respondWithResult(_0x414a8d,null))[_0x05f4('0x41')](handleError(_0x414a8d,null));};exports[_0x05f4('0x4a')]=function(_0x58b9e2,_0x1e3747,_0x16ace4){var _0xaeb9a0={};var _0x1fb783={};var _0x3ad323;var _0x56f59b;return db[_0x05f4('0x27')]['findOne']({'where':{'id':_0x58b9e2[_0x05f4('0x3f')]['id']}})[_0x05f4('0x1f')](handleEntityNotFound(_0x1e3747,null))[_0x05f4('0x1f')](function(_0x74907){if(_0x74907){_0x3ad323=_0x74907;_0x1fb783[_0x05f4('0x2b')]=_[_0x05f4('0x2c')](db[_0x05f4('0x46')][_0x05f4('0x47')]);_0x1fb783[_0x05f4('0x31')]=_[_0x05f4('0x2c')](_0x58b9e2[_0x05f4('0x31')]);_0x1fb783[_0x05f4('0x2d')]=_['intersection'](_0x1fb783[_0x05f4('0x2b')],_0x1fb783[_0x05f4('0x31')]);_0xaeb9a0['attributes']=_['intersection'](_0x1fb783['model'],qs[_0x05f4('0x30')](_0x58b9e2[_0x05f4('0x31')][_0x05f4('0x30')]));_0xaeb9a0[_0x05f4('0x2f')]=_0xaeb9a0[_0x05f4('0x2f')][_0x05f4('0x32')]?_0xaeb9a0[_0x05f4('0x2f')]:_0x1fb783[_0x05f4('0x2b')];_0xaeb9a0['order']=qs[_0x05f4('0x35')](_0x58b9e2[_0x05f4('0x31')][_0x05f4('0x35')]);_0xaeb9a0[_0x05f4('0x37')]=qs[_0x05f4('0x2d')](_[_0x05f4('0x49')](_0x58b9e2[_0x05f4('0x31')],_0x1fb783['filters']));if(_0x58b9e2[_0x05f4('0x31')][_0x05f4('0x36')]){_0xaeb9a0['where']=_[_0x05f4('0x38')](_0xaeb9a0['where'],{'$or':_[_0x05f4('0x26')](_0xaeb9a0[_0x05f4('0x2f')],function(_0x1cfdba){var _0x45f7e8={};_0x45f7e8[_0x1cfdba]={'$like':'%'+_0x58b9e2[_0x05f4('0x31')][_0x05f4('0x36')]+'%'};return _0x45f7e8;})});}_0xaeb9a0=_[_0x05f4('0x38')]({},_0xaeb9a0,_0x58b9e2[_0x05f4('0x3a')]);return _0x3ad323[_0x05f4('0x4a')](_0xaeb9a0);}})['then'](function(_0x4ff27a){if(_0x4ff27a){_0x56f59b=_0x4ff27a['length'];if(!_0x58b9e2[_0x05f4('0x31')][_0x05f4('0x4b')](_0x05f4('0x33'))){_0xaeb9a0[_0x05f4('0x34')]=qs['limit'](_0x58b9e2['query'][_0x05f4('0x34')]);_0xaeb9a0[_0x05f4('0x18')]=qs[_0x05f4('0x18')](_0x58b9e2[_0x05f4('0x31')]['offset']);}return _0x3ad323[_0x05f4('0x4a')](_0xaeb9a0);}})[_0x05f4('0x1f')](function(_0x3c8d6b){if(_0x3c8d6b){return _0x3c8d6b?{'count':_0x56f59b,'rows':_0x3c8d6b}:null;}})[_0x05f4('0x1f')](respondWithResult(_0x1e3747,null))['catch'](handleError(_0x1e3747,null));};exports[_0x05f4('0x4c')]=function(_0x569c5b,_0x132d18,_0x399200){var _0x198697={};var _0xe32cd={};var _0x46f0fa;var _0x40b2c1;return db[_0x05f4('0x27')][_0x05f4('0x4d')]({'where':{'id':_0x569c5b[_0x05f4('0x3f')]['id']}})[_0x05f4('0x1f')](handleEntityNotFound(_0x132d18,null))['then'](function(_0x43a3de){if(_0x43a3de){_0x46f0fa=_0x43a3de;_0xe32cd[_0x05f4('0x2b')]=_['keys'](db['ServicenowField'][_0x05f4('0x47')]);_0xe32cd[_0x05f4('0x31')]=_['keys'](_0x569c5b[_0x05f4('0x31')]);_0xe32cd[_0x05f4('0x2d')]=_[_0x05f4('0x2e')](_0xe32cd['model'],_0xe32cd[_0x05f4('0x31')]);_0x198697[_0x05f4('0x2f')]=_[_0x05f4('0x2e')](_0xe32cd[_0x05f4('0x2b')],qs['fields'](_0x569c5b['query'][_0x05f4('0x30')]));_0x198697[_0x05f4('0x2f')]=_0x198697[_0x05f4('0x2f')][_0x05f4('0x32')]?_0x198697[_0x05f4('0x2f')]:_0xe32cd[_0x05f4('0x2b')];_0x198697['order']=qs[_0x05f4('0x35')](_0x569c5b[_0x05f4('0x31')]['sort']);_0x198697[_0x05f4('0x37')]=qs[_0x05f4('0x2d')](_[_0x05f4('0x49')](_0x569c5b['query'],_0xe32cd['filters']));if(_0x569c5b[_0x05f4('0x31')][_0x05f4('0x36')]){_0x198697[_0x05f4('0x37')]=_[_0x05f4('0x38')](_0x198697[_0x05f4('0x37')],{'$or':_['map'](_0x198697[_0x05f4('0x2f')],function(_0x242a0c){var _0x3870f5={};_0x3870f5[_0x242a0c]={'$like':'%'+_0x569c5b[_0x05f4('0x31')]['filter']+'%'};return _0x3870f5;})});}_0x198697=_[_0x05f4('0x38')]({},_0x198697,_0x569c5b[_0x05f4('0x3a')]);return _0x46f0fa['getDescriptions'](_0x198697);}})[_0x05f4('0x1f')](function(_0x52296f){if(_0x52296f){_0x40b2c1=_0x52296f[_0x05f4('0x32')];if(!_0x569c5b['query']['hasOwnProperty']('nolimit')){_0x198697['limit']=qs[_0x05f4('0x34')](_0x569c5b[_0x05f4('0x31')][_0x05f4('0x34')]);_0x198697[_0x05f4('0x18')]=qs[_0x05f4('0x18')](_0x569c5b[_0x05f4('0x31')]['offset']);}return _0x46f0fa[_0x05f4('0x4c')](_0x198697);}})[_0x05f4('0x1f')](function(_0x450d8b){if(_0x450d8b){return _0x450d8b?{'count':_0x40b2c1,'rows':_0x450d8b}:null;}})[_0x05f4('0x1f')](respondWithResult(_0x132d18,null))[_0x05f4('0x41')](handleError(_0x132d18,null));};