0e405da6ebc7c3e529f07afdfc63142a061f2338
[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 _0xa682=['papaparse','ioredis','../../components/parsers/advancedSearch','../../config/environment','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','apply','save','update','destroy','then','error','stack','send','index','map','ServicenowConfiguration','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','type','VIRTUAL','name','merge','includeAll','include','findAll','catch','params','find','create','body','ServicenowField','order','options','getFields','nolimit','getSubjects','findOne','getDescriptions','rimraf','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xa682,0x87));var _0x2a68=function(_0x1caa51,_0x792083){_0x1caa51=_0x1caa51-0x0;var _0x430271=_0xa682[_0x1caa51];return _0x430271;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2a68('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x2a68('0x1'));var moment=require(_0x2a68('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x2a68('0x3'));var util=require(_0x2a68('0x4'));var path=require('path');var sox=require(_0x2a68('0x5'));var csv=require(_0x2a68('0x6'));var ejs=require(_0x2a68('0x7'));var fs=require('fs');var fs_extra=require(_0x2a68('0x8'));var _=require(_0x2a68('0x9'));var squel=require(_0x2a68('0xa'));var crypto=require(_0x2a68('0xb'));var jsforce=require(_0x2a68('0xc'));var deskjs=require(_0x2a68('0xd'));var toCsv=require(_0x2a68('0x6'));var querystring=require(_0x2a68('0xe'));var Papa=require(_0x2a68('0xf'));var Redis=require(_0x2a68('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2a68('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x2a68('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x2a68('0x13'))['db'];function respondWithStatusCode(_0x103966,_0x3e0c8b){_0x3e0c8b=_0x3e0c8b||0xcc;return function(_0x3ff73e){if(_0x3ff73e){return _0x103966[_0x2a68('0x14')](_0x3e0c8b);}return _0x103966['status'](_0x3e0c8b)[_0x2a68('0x15')]();};}function respondWithResult(_0x23aac0,_0x5ae978){_0x5ae978=_0x5ae978||0xc8;return function(_0x9cb0d1){if(_0x9cb0d1){return _0x23aac0[_0x2a68('0x16')](_0x5ae978)[_0x2a68('0x17')](_0x9cb0d1);}};}function respondWithFilteredResult(_0x417c15,_0x3dec0b){return function(_0x2edc70){if(_0x2edc70){var _0x239dab=typeof _0x3dec0b['offset']===_0x2a68('0x18')&&typeof _0x3dec0b[_0x2a68('0x19')]===_0x2a68('0x18');var _0x265a75=_0x2edc70[_0x2a68('0x1a')];var _0x5149b4=_0x239dab?0x0:_0x3dec0b[_0x2a68('0x1b')];var _0xa54156=_0x239dab?_0x2edc70[_0x2a68('0x1a')]:_0x3dec0b[_0x2a68('0x1b')]+_0x3dec0b[_0x2a68('0x19')];var _0x23e5c2;if(_0xa54156>=_0x265a75){_0xa54156=_0x265a75;_0x23e5c2=0xc8;}else{_0x23e5c2=0xce;}_0x417c15['status'](_0x23e5c2);return _0x417c15[_0x2a68('0x1c')]('Content-Range',_0x5149b4+'-'+_0xa54156+'/'+_0x265a75)['json'](_0x2edc70);}return null;};}function patchUpdates(_0x49a9d7){return function(_0x1aedc9){try{jsonpatch[_0x2a68('0x1d')](_0x1aedc9,_0x49a9d7,!![]);}catch(_0x4c4d0c){return BPromise['reject'](_0x4c4d0c);}return _0x1aedc9[_0x2a68('0x1e')]();};}function saveUpdates(_0x1643e9,_0x38acda){return function(_0x4ef3d1){if(_0x4ef3d1){return _0x4ef3d1[_0x2a68('0x1f')](_0x1643e9)['then'](function(_0x3b04ba){return _0x3b04ba;});}return null;};}function removeEntity(_0x10ee7b,_0xb7c393){return function(_0x4c2b23){if(_0x4c2b23){return _0x4c2b23[_0x2a68('0x20')]()[_0x2a68('0x21')](function(){_0x10ee7b[_0x2a68('0x16')](0xcc)[_0x2a68('0x15')]();});}};}function handleEntityNotFound(_0x5d18d8,_0x11e134){return function(_0x54156f){if(!_0x54156f){_0x5d18d8[_0x2a68('0x14')](0x194);}return _0x54156f;};}function handleError(_0x26e992,_0x3677c5){_0x3677c5=_0x3677c5||0x1f4;return function(_0x460085){logger[_0x2a68('0x22')](_0x460085[_0x2a68('0x23')]);if(_0x460085['name']){delete _0x460085['name'];}_0x26e992[_0x2a68('0x16')](_0x3677c5)[_0x2a68('0x24')](_0x460085);};}exports[_0x2a68('0x25')]=function(_0x447136,_0xe81872){var _0x220ec3={},_0x542849={},_0x13c956={'count':0x0,'rows':[]};var _0x1ffe2b=_[_0x2a68('0x26')](db[_0x2a68('0x27')][_0x2a68('0x28')],function(_0x365535){return{'name':_0x365535['fieldName'],'type':_0x365535['type'][_0x2a68('0x29')]};});_0x542849[_0x2a68('0x2a')]=_[_0x2a68('0x26')](_0x1ffe2b,'name');_0x542849[_0x2a68('0x2b')]=_[_0x2a68('0x2c')](_0x447136[_0x2a68('0x2b')]);_0x542849[_0x2a68('0x2d')]=_[_0x2a68('0x2e')](_0x542849['model'],_0x542849[_0x2a68('0x2b')]);_0x220ec3[_0x2a68('0x2f')]=_['intersection'](_0x542849[_0x2a68('0x2a')],qs[_0x2a68('0x30')](_0x447136['query'][_0x2a68('0x30')]));_0x220ec3[_0x2a68('0x2f')]=_0x220ec3[_0x2a68('0x2f')][_0x2a68('0x31')]?_0x220ec3[_0x2a68('0x2f')]:_0x542849[_0x2a68('0x2a')];if(!_0x447136[_0x2a68('0x2b')][_0x2a68('0x32')]('nolimit')){_0x220ec3[_0x2a68('0x19')]=qs['limit'](_0x447136[_0x2a68('0x2b')][_0x2a68('0x19')]);_0x220ec3[_0x2a68('0x1b')]=qs[_0x2a68('0x1b')](_0x447136[_0x2a68('0x2b')]['offset']);}_0x220ec3['order']=qs[_0x2a68('0x33')](_0x447136[_0x2a68('0x2b')][_0x2a68('0x33')]);_0x220ec3[_0x2a68('0x34')]=qs['filters'](_[_0x2a68('0x35')](_0x447136[_0x2a68('0x2b')],_0x542849[_0x2a68('0x2d')]),_0x1ffe2b);if(_0x447136[_0x2a68('0x2b')][_0x2a68('0x36')]){_0x220ec3[_0x2a68('0x34')]=_['merge'](_0x220ec3[_0x2a68('0x34')],{'$or':_[_0x2a68('0x26')](_0x1ffe2b,function(_0x2ee8c9){if(_0x2ee8c9[_0x2a68('0x37')]!==_0x2a68('0x38')){var _0x336a51={};_0x336a51[_0x2ee8c9[_0x2a68('0x39')]]={'$like':'%'+_0x447136[_0x2a68('0x2b')][_0x2a68('0x36')]+'%'};return _0x336a51;}})});}_0x220ec3=_[_0x2a68('0x3a')]({},_0x220ec3,_0x447136['options']);var _0xdeb39b={'where':_0x220ec3['where']};return db[_0x2a68('0x27')][_0x2a68('0x1a')](_0xdeb39b)['then'](function(_0x3a95e6){_0x13c956[_0x2a68('0x1a')]=_0x3a95e6;if(_0x447136[_0x2a68('0x2b')][_0x2a68('0x3b')]){_0x220ec3[_0x2a68('0x3c')]=[{'all':!![]}];}return db[_0x2a68('0x27')][_0x2a68('0x3d')](_0x220ec3);})[_0x2a68('0x21')](function(_0x564c04){_0x13c956['rows']=_0x564c04;return _0x13c956;})[_0x2a68('0x21')](respondWithFilteredResult(_0xe81872,_0x220ec3))[_0x2a68('0x3e')](handleError(_0xe81872,null));};exports['show']=function(_0x19c8d6,_0x240e79){var _0x5597cb={'raw':![],'where':{'id':_0x19c8d6[_0x2a68('0x3f')]['id']}},_0x1121dc={};_0x1121dc[_0x2a68('0x2a')]=_[_0x2a68('0x2c')](db[_0x2a68('0x27')][_0x2a68('0x28')]);_0x1121dc['query']=_[_0x2a68('0x2c')](_0x19c8d6['query']);_0x1121dc[_0x2a68('0x2d')]=_[_0x2a68('0x2e')](_0x1121dc[_0x2a68('0x2a')],_0x1121dc['query']);_0x5597cb[_0x2a68('0x2f')]=_[_0x2a68('0x2e')](_0x1121dc[_0x2a68('0x2a')],qs['fields'](_0x19c8d6[_0x2a68('0x2b')][_0x2a68('0x30')]));_0x5597cb['attributes']=_0x5597cb[_0x2a68('0x2f')]['length']?_0x5597cb[_0x2a68('0x2f')]:_0x1121dc[_0x2a68('0x2a')];if(_0x19c8d6['query'][_0x2a68('0x3b')]){_0x5597cb[_0x2a68('0x3c')]=[{'all':!![]}];}_0x5597cb=_[_0x2a68('0x3a')]({},_0x5597cb,_0x19c8d6['options']);return db[_0x2a68('0x27')][_0x2a68('0x40')](_0x5597cb)[_0x2a68('0x21')](handleEntityNotFound(_0x240e79,null))[_0x2a68('0x21')](respondWithResult(_0x240e79,null))[_0x2a68('0x3e')](handleError(_0x240e79,null));};exports['create']=function(_0xc1069,_0x3737d3){return db['ServicenowConfiguration'][_0x2a68('0x41')](_0xc1069[_0x2a68('0x42')],{})[_0x2a68('0x21')](respondWithResult(_0x3737d3,0xc9))[_0x2a68('0x3e')](handleError(_0x3737d3,null));};exports[_0x2a68('0x1f')]=function(_0x339ca7,_0x1eab71){if(_0x339ca7[_0x2a68('0x42')]['id']){delete _0x339ca7['body']['id'];}return db[_0x2a68('0x27')][_0x2a68('0x40')]({'where':{'id':_0x339ca7[_0x2a68('0x3f')]['id']}})['then'](handleEntityNotFound(_0x1eab71,null))[_0x2a68('0x21')](saveUpdates(_0x339ca7[_0x2a68('0x42')],null))['then'](respondWithResult(_0x1eab71,null))[_0x2a68('0x3e')](handleError(_0x1eab71,null));};exports['destroy']=function(_0x593aa6,_0x11eb7e){return db[_0x2a68('0x27')][_0x2a68('0x40')]({'where':{'id':_0x593aa6[_0x2a68('0x3f')]['id']}})[_0x2a68('0x21')](handleEntityNotFound(_0x11eb7e,null))[_0x2a68('0x21')](removeEntity(_0x11eb7e,null))['catch'](handleError(_0x11eb7e,null));};exports['getFields']=function(_0x5ead74,_0x455306,_0x14100a){var _0x4d4450={};var _0x4fe7d4={};var _0x5c4b7c;var _0x4b1c49;return db[_0x2a68('0x27')]['findOne']({'where':{'id':_0x5ead74[_0x2a68('0x3f')]['id']}})[_0x2a68('0x21')](handleEntityNotFound(_0x455306,null))['then'](function(_0x4c5c17){if(_0x4c5c17){_0x5c4b7c=_0x4c5c17;_0x4fe7d4[_0x2a68('0x2a')]=_[_0x2a68('0x2c')](db[_0x2a68('0x43')][_0x2a68('0x28')]);_0x4fe7d4[_0x2a68('0x2b')]=_[_0x2a68('0x2c')](_0x5ead74[_0x2a68('0x2b')]);_0x4fe7d4[_0x2a68('0x2d')]=_[_0x2a68('0x2e')](_0x4fe7d4[_0x2a68('0x2a')],_0x4fe7d4[_0x2a68('0x2b')]);_0x4d4450[_0x2a68('0x2f')]=_[_0x2a68('0x2e')](_0x4fe7d4['model'],qs[_0x2a68('0x30')](_0x5ead74[_0x2a68('0x2b')]['fields']));_0x4d4450[_0x2a68('0x2f')]=_0x4d4450['attributes']['length']?_0x4d4450['attributes']:_0x4fe7d4[_0x2a68('0x2a')];_0x4d4450[_0x2a68('0x44')]=qs['sort'](_0x5ead74[_0x2a68('0x2b')]['sort']);_0x4d4450[_0x2a68('0x34')]=qs[_0x2a68('0x2d')](_[_0x2a68('0x35')](_0x5ead74['query'],_0x4fe7d4[_0x2a68('0x2d')]));if(_0x5ead74[_0x2a68('0x2b')][_0x2a68('0x36')]){_0x4d4450[_0x2a68('0x34')]=_[_0x2a68('0x3a')](_0x4d4450[_0x2a68('0x34')],{'$or':_['map'](_0x4d4450['attributes'],function(_0x13fc49){var _0x4617d1={};_0x4617d1[_0x13fc49]={'$like':'%'+_0x5ead74[_0x2a68('0x2b')]['filter']+'%'};return _0x4617d1;})});}_0x4d4450=_[_0x2a68('0x3a')]({},_0x4d4450,_0x5ead74[_0x2a68('0x45')]);return _0x5c4b7c[_0x2a68('0x46')](_0x4d4450);}})[_0x2a68('0x21')](function(_0x5f17c6){if(_0x5f17c6){_0x4b1c49=_0x5f17c6[_0x2a68('0x31')];if(!_0x5ead74['query'][_0x2a68('0x32')](_0x2a68('0x47'))){_0x4d4450[_0x2a68('0x19')]=qs[_0x2a68('0x19')](_0x5ead74['query'][_0x2a68('0x19')]);_0x4d4450[_0x2a68('0x1b')]=qs['offset'](_0x5ead74[_0x2a68('0x2b')][_0x2a68('0x1b')]);}return _0x5c4b7c[_0x2a68('0x46')](_0x4d4450);}})[_0x2a68('0x21')](function(_0x429cf4){if(_0x429cf4){return _0x429cf4?{'count':_0x4b1c49,'rows':_0x429cf4}:null;}})[_0x2a68('0x21')](respondWithResult(_0x455306,null))['catch'](handleError(_0x455306,null));};exports[_0x2a68('0x48')]=function(_0x6346d3,_0x5b6f65,_0x20ae68){var _0x27c908={};var _0x35d5fd={};var _0x3c535f;var _0x48560;return db['ServicenowConfiguration'][_0x2a68('0x49')]({'where':{'id':_0x6346d3[_0x2a68('0x3f')]['id']}})[_0x2a68('0x21')](handleEntityNotFound(_0x5b6f65,null))[_0x2a68('0x21')](function(_0x57fcaf){if(_0x57fcaf){_0x3c535f=_0x57fcaf;_0x35d5fd[_0x2a68('0x2a')]=_[_0x2a68('0x2c')](db['ServicenowField'][_0x2a68('0x28')]);_0x35d5fd[_0x2a68('0x2b')]=_['keys'](_0x6346d3['query']);_0x35d5fd[_0x2a68('0x2d')]=_['intersection'](_0x35d5fd[_0x2a68('0x2a')],_0x35d5fd['query']);_0x27c908['attributes']=_['intersection'](_0x35d5fd[_0x2a68('0x2a')],qs[_0x2a68('0x30')](_0x6346d3[_0x2a68('0x2b')]['fields']));_0x27c908[_0x2a68('0x2f')]=_0x27c908['attributes'][_0x2a68('0x31')]?_0x27c908[_0x2a68('0x2f')]:_0x35d5fd[_0x2a68('0x2a')];_0x27c908[_0x2a68('0x44')]=qs[_0x2a68('0x33')](_0x6346d3['query'][_0x2a68('0x33')]);_0x27c908[_0x2a68('0x34')]=qs['filters'](_[_0x2a68('0x35')](_0x6346d3[_0x2a68('0x2b')],_0x35d5fd['filters']));if(_0x6346d3[_0x2a68('0x2b')]['filter']){_0x27c908[_0x2a68('0x34')]=_[_0x2a68('0x3a')](_0x27c908['where'],{'$or':_[_0x2a68('0x26')](_0x27c908[_0x2a68('0x2f')],function(_0x5b797f){var _0x35d817={};_0x35d817[_0x5b797f]={'$like':'%'+_0x6346d3[_0x2a68('0x2b')][_0x2a68('0x36')]+'%'};return _0x35d817;})});}_0x27c908=_[_0x2a68('0x3a')]({},_0x27c908,_0x6346d3[_0x2a68('0x45')]);return _0x3c535f['getSubjects'](_0x27c908);}})[_0x2a68('0x21')](function(_0x510447){if(_0x510447){_0x48560=_0x510447['length'];if(!_0x6346d3[_0x2a68('0x2b')][_0x2a68('0x32')](_0x2a68('0x47'))){_0x27c908[_0x2a68('0x19')]=qs[_0x2a68('0x19')](_0x6346d3['query'][_0x2a68('0x19')]);_0x27c908['offset']=qs[_0x2a68('0x1b')](_0x6346d3[_0x2a68('0x2b')]['offset']);}return _0x3c535f['getSubjects'](_0x27c908);}})['then'](function(_0x5bbbfd){if(_0x5bbbfd){return _0x5bbbfd?{'count':_0x48560,'rows':_0x5bbbfd}:null;}})[_0x2a68('0x21')](respondWithResult(_0x5b6f65,null))[_0x2a68('0x3e')](handleError(_0x5b6f65,null));};exports[_0x2a68('0x4a')]=function(_0x541888,_0x2fd750,_0x1f04f1){var _0x31f6c8={};var _0x2d18d9={};var _0x1e7c37;var _0x5dd3e8;return db[_0x2a68('0x27')][_0x2a68('0x49')]({'where':{'id':_0x541888[_0x2a68('0x3f')]['id']}})[_0x2a68('0x21')](handleEntityNotFound(_0x2fd750,null))[_0x2a68('0x21')](function(_0x2aeb49){if(_0x2aeb49){_0x1e7c37=_0x2aeb49;_0x2d18d9[_0x2a68('0x2a')]=_['keys'](db[_0x2a68('0x43')][_0x2a68('0x28')]);_0x2d18d9[_0x2a68('0x2b')]=_['keys'](_0x541888[_0x2a68('0x2b')]);_0x2d18d9[_0x2a68('0x2d')]=_[_0x2a68('0x2e')](_0x2d18d9['model'],_0x2d18d9['query']);_0x31f6c8[_0x2a68('0x2f')]=_[_0x2a68('0x2e')](_0x2d18d9[_0x2a68('0x2a')],qs[_0x2a68('0x30')](_0x541888[_0x2a68('0x2b')][_0x2a68('0x30')]));_0x31f6c8['attributes']=_0x31f6c8[_0x2a68('0x2f')][_0x2a68('0x31')]?_0x31f6c8['attributes']:_0x2d18d9['model'];_0x31f6c8[_0x2a68('0x44')]=qs['sort'](_0x541888[_0x2a68('0x2b')][_0x2a68('0x33')]);_0x31f6c8[_0x2a68('0x34')]=qs[_0x2a68('0x2d')](_[_0x2a68('0x35')](_0x541888[_0x2a68('0x2b')],_0x2d18d9[_0x2a68('0x2d')]));if(_0x541888[_0x2a68('0x2b')]['filter']){_0x31f6c8[_0x2a68('0x34')]=_[_0x2a68('0x3a')](_0x31f6c8[_0x2a68('0x34')],{'$or':_['map'](_0x31f6c8[_0x2a68('0x2f')],function(_0x2b0396){var _0x3bddf8={};_0x3bddf8[_0x2b0396]={'$like':'%'+_0x541888[_0x2a68('0x2b')]['filter']+'%'};return _0x3bddf8;})});}_0x31f6c8=_['merge']({},_0x31f6c8,_0x541888[_0x2a68('0x45')]);return _0x1e7c37['getDescriptions'](_0x31f6c8);}})[_0x2a68('0x21')](function(_0x4e3185){if(_0x4e3185){_0x5dd3e8=_0x4e3185[_0x2a68('0x31')];if(!_0x541888['query'][_0x2a68('0x32')](_0x2a68('0x47'))){_0x31f6c8[_0x2a68('0x19')]=qs[_0x2a68('0x19')](_0x541888[_0x2a68('0x2b')][_0x2a68('0x19')]);_0x31f6c8[_0x2a68('0x1b')]=qs[_0x2a68('0x1b')](_0x541888[_0x2a68('0x2b')][_0x2a68('0x1b')]);}return _0x1e7c37[_0x2a68('0x4a')](_0x31f6c8);}})[_0x2a68('0x21')](function(_0x43efc8){if(_0x43efc8){return _0x43efc8?{'count':_0x5dd3e8,'rows':_0x43efc8}:null;}})[_0x2a68('0x21')](respondWithResult(_0x2fd750,null))[_0x2a68('0x3e')](handleError(_0x2fd750,null));};