a9ccee3c250b39842ddfcc2510225c0b3d6bbde7
[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 _0x1635=['merge','body','agent','interaction','account','ServicenowConfiguration','rawAttributes','key','model','map','query','keys','intersection','attributes','fields','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','options','rows','params','length','includeAll','include','create','find','destroy','getFields','ServicenowField','hasOwnProperty','getSubjects','findOne','getDescriptions','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','jayson/promise','http','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','debug','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','save','update','stack','name','send','render'];(function(_0x1230c1,_0x17107d){var _0x3d5298=function(_0x4414d3){while(--_0x4414d3){_0x1230c1['push'](_0x1230c1['shift']());}};_0x3d5298(++_0x17107d);}(_0x1635,0x83));var _0x5163=function(_0xb4fe14,_0x10c445){_0xb4fe14=_0xb4fe14-0x0;var _0xb8ec67=_0x1635[_0xb4fe14];return _0xb8ec67;};'use strict';var emlformat=require(_0x5163('0x0'));var rimraf=require(_0x5163('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5163('0x2'));var rp=require('request-promise');var moment=require(_0x5163('0x3'));var BPromise=require(_0x5163('0x4'));var Mustache=require(_0x5163('0x5'));var util=require(_0x5163('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x5163('0x7'));var ejs=require(_0x5163('0x8'));var fs=require('fs');var fs_extra=require(_0x5163('0x9'));var _=require(_0x5163('0xa'));var squel=require(_0x5163('0xb'));var crypto=require(_0x5163('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x5163('0xd'));var toCsv=require(_0x5163('0x7'));var querystring=require(_0x5163('0xe'));var Papa=require(_0x5163('0xf'));var Redis=require(_0x5163('0x10'));var authService=require(_0x5163('0x11'));var qs=require(_0x5163('0x12'));var as=require(_0x5163('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x5163('0x14'));var utils=require(_0x5163('0x15'));var config=require(_0x5163('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var jayson=require(_0x5163('0x17'));var client=jayson['client'][_0x5163('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x4485fd,_0x5d18dd,_0x48319f,_0x369c0c){return new BPromise(function(_0x2c9d73,_0x440caa){var _0x63117a=_0x369c0c||client;return _0x63117a[_0x5163('0x19')](_0x4485fd,_0x48319f)[_0x5163('0x1a')](function(_0x25899b){logger[_0x5163('0x1b')](_0x5163('0x1c'),_0x5d18dd,_0x5163('0x1d'));logger[_0x5163('0x1e')](_0x5163('0x1f'),_0x5d18dd,_0x5163('0x1d'),JSON[_0x5163('0x20')](_0x25899b));if(_0x25899b[_0x5163('0x21')]){if(_0x25899b[_0x5163('0x21')][_0x5163('0x22')]===0x1f4){logger[_0x5163('0x21')]('ServicenowConfiguration,\x20%s,\x20%s',_0x5d18dd,_0x25899b[_0x5163('0x21')][_0x5163('0x23')]);return _0x440caa(_0x25899b[_0x5163('0x21')][_0x5163('0x23')]);}logger[_0x5163('0x21')](_0x5163('0x1c'),_0x5d18dd,_0x25899b[_0x5163('0x21')][_0x5163('0x23')]);return _0x2c9d73(_0x25899b[_0x5163('0x21')][_0x5163('0x23')]);}else{logger[_0x5163('0x1b')](_0x5163('0x1c'),_0x5d18dd,_0x5163('0x1d'));_0x2c9d73(_0x25899b[_0x5163('0x24')][_0x5163('0x23')]);}})[_0x5163('0x25')](function(_0x313382){logger[_0x5163('0x21')](_0x5163('0x1c'),_0x5d18dd,_0x313382);_0x440caa(_0x313382);});});}function respondWithStatusCode(_0x1a59f2,_0x45ddf6){_0x45ddf6=_0x45ddf6||0xcc;return function(_0x4bdfef){if(_0x4bdfef){return _0x1a59f2[_0x5163('0x26')](_0x45ddf6);}return _0x1a59f2[_0x5163('0x27')](_0x45ddf6)[_0x5163('0x28')]();};}function respondWithResult(_0x3fda99,_0x20ee15){_0x20ee15=_0x20ee15||0xc8;return function(_0xcd1b32){if(_0xcd1b32){return _0x3fda99[_0x5163('0x27')](_0x20ee15)[_0x5163('0x29')](_0xcd1b32);}};}function respondWithFilteredResult(_0x221e7b,_0x269701){return function(_0x3fafdb){if(_0x3fafdb){var _0x16185c=typeof _0x269701[_0x5163('0x2a')]==='undefined'&&typeof _0x269701[_0x5163('0x2b')]===_0x5163('0x2c');var _0x274fd0=_0x3fafdb[_0x5163('0x2d')];var _0x21c463=_0x16185c?0x0:_0x269701[_0x5163('0x2a')];var _0x26c0cc=_0x16185c?_0x3fafdb[_0x5163('0x2d')]:_0x269701[_0x5163('0x2a')]+_0x269701[_0x5163('0x2b')];var _0x291d87;if(_0x26c0cc>=_0x274fd0){_0x26c0cc=_0x274fd0;_0x291d87=0xc8;}else{_0x291d87=0xce;}_0x221e7b[_0x5163('0x27')](_0x291d87);return _0x221e7b['set'](_0x5163('0x2e'),_0x21c463+'-'+_0x26c0cc+'/'+_0x274fd0)[_0x5163('0x29')](_0x3fafdb);}return null;};}function patchUpdates(_0x5c1aef){return function(_0x58712b){try{jsonpatch[_0x5163('0x2f')](_0x58712b,_0x5c1aef,!![]);}catch(_0x26f4e8){return BPromise[_0x5163('0x30')](_0x26f4e8);}return _0x58712b[_0x5163('0x31')]();};}function saveUpdates(_0x2a53b2,_0x286f23){return function(_0x1912bd){if(_0x1912bd){return _0x1912bd[_0x5163('0x32')](_0x2a53b2)['then'](function(_0x5bc01e){return _0x5bc01e;});}return null;};}function removeEntity(_0x35cd45,_0x285463){return function(_0x5bb5c3){if(_0x5bb5c3){return _0x5bb5c3['destroy']()['then'](function(){_0x35cd45[_0x5163('0x27')](0xcc)[_0x5163('0x28')]();});}};}function handleEntityNotFound(_0x29c4f0,_0x210480){return function(_0x442f90){if(!_0x442f90){_0x29c4f0['sendStatus'](0x194);}return _0x442f90;};}function handleError(_0x17cca2,_0xeeba1c){_0xeeba1c=_0xeeba1c||0x1f4;return function(_0x5c51f0){logger[_0x5163('0x21')](_0x5c51f0[_0x5163('0x33')]);if(_0x5c51f0[_0x5163('0x34')]){delete _0x5c51f0[_0x5163('0x34')];}_0x17cca2[_0x5163('0x27')](_0xeeba1c)[_0x5163('0x35')](_0x5c51f0);};}function getMustacheRender(_0x4f8f38,_0x24c696){return Mustache[_0x5163('0x36')](_0x4f8f38,_[_0x5163('0x37')](_0x24c696[_0x5163('0x38')],{'contact':_0x24c696['contact'],'message':_0x24c696[_0x5163('0x23')],'agent':_0x24c696[_0x5163('0x39')],'interaction':_0x24c696[_0x5163('0x3a')],'account':_0x24c696[_0x5163('0x3b')]}))||'';}exports['index']=function(_0x4ee10b,_0x1efa88){var _0x211a9f={},_0x43685a={},_0x350afe={'count':0x0,'rows':[]};var _0x3b6c8b=_['map'](db[_0x5163('0x3c')][_0x5163('0x3d')],function(_0xc1ac71){return{'name':_0xc1ac71['fieldName'],'type':_0xc1ac71['type'][_0x5163('0x3e')]};});_0x43685a[_0x5163('0x3f')]=_[_0x5163('0x40')](_0x3b6c8b,'name');_0x43685a[_0x5163('0x41')]=_[_0x5163('0x42')](_0x4ee10b[_0x5163('0x41')]);_0x43685a['filters']=_[_0x5163('0x43')](_0x43685a['model'],_0x43685a[_0x5163('0x41')]);_0x211a9f[_0x5163('0x44')]=_[_0x5163('0x43')](_0x43685a['model'],qs[_0x5163('0x45')](_0x4ee10b[_0x5163('0x41')][_0x5163('0x45')]));_0x211a9f[_0x5163('0x44')]=_0x211a9f[_0x5163('0x44')]['length']?_0x211a9f[_0x5163('0x44')]:_0x43685a[_0x5163('0x3f')];if(!_0x4ee10b['query']['hasOwnProperty'](_0x5163('0x46'))){_0x211a9f['limit']=qs['limit'](_0x4ee10b['query'][_0x5163('0x2b')]);_0x211a9f[_0x5163('0x2a')]=qs[_0x5163('0x2a')](_0x4ee10b[_0x5163('0x41')][_0x5163('0x2a')]);}_0x211a9f[_0x5163('0x47')]=qs[_0x5163('0x48')](_0x4ee10b[_0x5163('0x41')]['sort']);_0x211a9f[_0x5163('0x49')]=qs[_0x5163('0x4a')](_[_0x5163('0x4b')](_0x4ee10b[_0x5163('0x41')],_0x43685a[_0x5163('0x4a')]),_0x3b6c8b);if(_0x4ee10b[_0x5163('0x41')][_0x5163('0x4c')]){_0x211a9f[_0x5163('0x49')]=_[_0x5163('0x37')](_0x211a9f['where'],{'$or':_[_0x5163('0x40')](_0x3b6c8b,function(_0x352594){if(_0x352594['type']!==_0x5163('0x4d')){var _0x40baa5={};_0x40baa5[_0x352594[_0x5163('0x34')]]={'$like':'%'+_0x4ee10b[_0x5163('0x41')][_0x5163('0x4c')]+'%'};return _0x40baa5;}})});}_0x211a9f=_[_0x5163('0x37')]({},_0x211a9f,_0x4ee10b[_0x5163('0x4e')]);var _0x2576db={'where':_0x211a9f[_0x5163('0x49')]};return db[_0x5163('0x3c')][_0x5163('0x2d')](_0x2576db)[_0x5163('0x1a')](function(_0x1fa56a){_0x350afe['count']=_0x1fa56a;if(_0x4ee10b[_0x5163('0x41')]['includeAll']){_0x211a9f['include']=[{'all':!![]}];}return db['ServicenowConfiguration']['findAll'](_0x211a9f);})[_0x5163('0x1a')](function(_0x450048){_0x350afe[_0x5163('0x4f')]=_0x450048;return _0x350afe;})['then'](respondWithFilteredResult(_0x1efa88,_0x211a9f))[_0x5163('0x25')](handleError(_0x1efa88,null));};exports['show']=function(_0x31cc0b,_0x89ab8a){var _0x26ac29={'raw':![],'where':{'id':_0x31cc0b[_0x5163('0x50')]['id']}},_0x57befc={};_0x57befc[_0x5163('0x3f')]=_['keys'](db[_0x5163('0x3c')][_0x5163('0x3d')]);_0x57befc[_0x5163('0x41')]=_['keys'](_0x31cc0b[_0x5163('0x41')]);_0x57befc[_0x5163('0x4a')]=_['intersection'](_0x57befc['model'],_0x57befc['query']);_0x26ac29[_0x5163('0x44')]=_[_0x5163('0x43')](_0x57befc['model'],qs[_0x5163('0x45')](_0x31cc0b[_0x5163('0x41')]['fields']));_0x26ac29[_0x5163('0x44')]=_0x26ac29['attributes'][_0x5163('0x51')]?_0x26ac29[_0x5163('0x44')]:_0x57befc[_0x5163('0x3f')];if(_0x31cc0b[_0x5163('0x41')][_0x5163('0x52')]){_0x26ac29[_0x5163('0x53')]=[{'all':!![]}];}_0x26ac29=_['merge']({},_0x26ac29,_0x31cc0b['options']);return db[_0x5163('0x3c')]['find'](_0x26ac29)['then'](handleEntityNotFound(_0x89ab8a,null))['then'](respondWithResult(_0x89ab8a,null))['catch'](handleError(_0x89ab8a,null));};exports[_0x5163('0x54')]=function(_0xebb594,_0x2c9286){return db[_0x5163('0x3c')][_0x5163('0x54')](_0xebb594[_0x5163('0x38')],{})[_0x5163('0x1a')](respondWithResult(_0x2c9286,0xc9))['catch'](handleError(_0x2c9286,null));};exports[_0x5163('0x32')]=function(_0x456bd4,_0x4b1eaf){if(_0x456bd4['body']['id']){delete _0x456bd4[_0x5163('0x38')]['id'];}return db[_0x5163('0x3c')][_0x5163('0x55')]({'where':{'id':_0x456bd4[_0x5163('0x50')]['id']}})['then'](handleEntityNotFound(_0x4b1eaf,null))[_0x5163('0x1a')](saveUpdates(_0x456bd4[_0x5163('0x38')],null))[_0x5163('0x1a')](respondWithResult(_0x4b1eaf,null))[_0x5163('0x25')](handleError(_0x4b1eaf,null));};exports[_0x5163('0x56')]=function(_0x204984,_0x258246){return db[_0x5163('0x3c')][_0x5163('0x55')]({'where':{'id':_0x204984[_0x5163('0x50')]['id']}})[_0x5163('0x1a')](handleEntityNotFound(_0x258246,null))[_0x5163('0x1a')](removeEntity(_0x258246,null))[_0x5163('0x25')](handleError(_0x258246,null));};exports[_0x5163('0x57')]=function(_0x5d8776,_0x1c9ef5,_0x47aac9){var _0x4d78e4={};var _0x423926={};var _0x1490d5;var _0x18e9e5;return db['ServicenowConfiguration']['findOne']({'where':{'id':_0x5d8776[_0x5163('0x50')]['id']}})['then'](handleEntityNotFound(_0x1c9ef5,null))['then'](function(_0x3e469b){if(_0x3e469b){_0x1490d5=_0x3e469b;_0x423926[_0x5163('0x3f')]=_['keys'](db[_0x5163('0x58')][_0x5163('0x3d')]);_0x423926[_0x5163('0x41')]=_[_0x5163('0x42')](_0x5d8776[_0x5163('0x41')]);_0x423926['filters']=_[_0x5163('0x43')](_0x423926[_0x5163('0x3f')],_0x423926[_0x5163('0x41')]);_0x4d78e4[_0x5163('0x44')]=_[_0x5163('0x43')](_0x423926[_0x5163('0x3f')],qs[_0x5163('0x45')](_0x5d8776['query'][_0x5163('0x45')]));_0x4d78e4[_0x5163('0x44')]=_0x4d78e4[_0x5163('0x44')][_0x5163('0x51')]?_0x4d78e4['attributes']:_0x423926[_0x5163('0x3f')];_0x4d78e4[_0x5163('0x47')]=qs[_0x5163('0x48')](_0x5d8776['query'][_0x5163('0x48')]);_0x4d78e4[_0x5163('0x49')]=qs[_0x5163('0x4a')](_[_0x5163('0x4b')](_0x5d8776[_0x5163('0x41')],_0x423926[_0x5163('0x4a')]));if(_0x5d8776[_0x5163('0x41')][_0x5163('0x4c')]){_0x4d78e4[_0x5163('0x49')]=_[_0x5163('0x37')](_0x4d78e4[_0x5163('0x49')],{'$or':_[_0x5163('0x40')](_0x4d78e4['attributes'],function(_0x4472e1){var _0x57e29e={};_0x57e29e[_0x4472e1]={'$like':'%'+_0x5d8776[_0x5163('0x41')][_0x5163('0x4c')]+'%'};return _0x57e29e;})});}_0x4d78e4=_[_0x5163('0x37')]({},_0x4d78e4,_0x5d8776[_0x5163('0x4e')]);return _0x1490d5['getFields'](_0x4d78e4);}})[_0x5163('0x1a')](function(_0x29b727){if(_0x29b727){_0x18e9e5=_0x29b727[_0x5163('0x51')];if(!_0x5d8776['query'][_0x5163('0x59')](_0x5163('0x46'))){_0x4d78e4[_0x5163('0x2b')]=qs['limit'](_0x5d8776[_0x5163('0x41')][_0x5163('0x2b')]);_0x4d78e4[_0x5163('0x2a')]=qs['offset'](_0x5d8776[_0x5163('0x41')][_0x5163('0x2a')]);}return _0x1490d5[_0x5163('0x57')](_0x4d78e4);}})['then'](function(_0xccbc3a){if(_0xccbc3a){return _0xccbc3a?{'count':_0x18e9e5,'rows':_0xccbc3a}:null;}})['then'](respondWithResult(_0x1c9ef5,null))[_0x5163('0x25')](handleError(_0x1c9ef5,null));};exports[_0x5163('0x5a')]=function(_0x3dc18f,_0x276d1c,_0x19f66f){var _0xf82f4={};var _0x4c7622={};var _0x359b9c;var _0x58fd75;return db[_0x5163('0x3c')][_0x5163('0x5b')]({'where':{'id':_0x3dc18f[_0x5163('0x50')]['id']}})[_0x5163('0x1a')](handleEntityNotFound(_0x276d1c,null))[_0x5163('0x1a')](function(_0x401bff){if(_0x401bff){_0x359b9c=_0x401bff;_0x4c7622[_0x5163('0x3f')]=_[_0x5163('0x42')](db[_0x5163('0x58')][_0x5163('0x3d')]);_0x4c7622[_0x5163('0x41')]=_['keys'](_0x3dc18f[_0x5163('0x41')]);_0x4c7622['filters']=_[_0x5163('0x43')](_0x4c7622[_0x5163('0x3f')],_0x4c7622['query']);_0xf82f4[_0x5163('0x44')]=_[_0x5163('0x43')](_0x4c7622[_0x5163('0x3f')],qs[_0x5163('0x45')](_0x3dc18f['query'][_0x5163('0x45')]));_0xf82f4[_0x5163('0x44')]=_0xf82f4[_0x5163('0x44')][_0x5163('0x51')]?_0xf82f4[_0x5163('0x44')]:_0x4c7622[_0x5163('0x3f')];_0xf82f4[_0x5163('0x47')]=qs[_0x5163('0x48')](_0x3dc18f[_0x5163('0x41')][_0x5163('0x48')]);_0xf82f4[_0x5163('0x49')]=qs[_0x5163('0x4a')](_[_0x5163('0x4b')](_0x3dc18f[_0x5163('0x41')],_0x4c7622[_0x5163('0x4a')]));if(_0x3dc18f[_0x5163('0x41')][_0x5163('0x4c')]){_0xf82f4['where']=_['merge'](_0xf82f4[_0x5163('0x49')],{'$or':_[_0x5163('0x40')](_0xf82f4[_0x5163('0x44')],function(_0x274729){var _0x35175b={};_0x35175b[_0x274729]={'$like':'%'+_0x3dc18f[_0x5163('0x41')][_0x5163('0x4c')]+'%'};return _0x35175b;})});}_0xf82f4=_[_0x5163('0x37')]({},_0xf82f4,_0x3dc18f['options']);return _0x359b9c['getSubjects'](_0xf82f4);}})['then'](function(_0x25c766){if(_0x25c766){_0x58fd75=_0x25c766[_0x5163('0x51')];if(!_0x3dc18f[_0x5163('0x41')][_0x5163('0x59')]('nolimit')){_0xf82f4['limit']=qs[_0x5163('0x2b')](_0x3dc18f[_0x5163('0x41')][_0x5163('0x2b')]);_0xf82f4['offset']=qs[_0x5163('0x2a')](_0x3dc18f[_0x5163('0x41')][_0x5163('0x2a')]);}return _0x359b9c[_0x5163('0x5a')](_0xf82f4);}})['then'](function(_0x1162f3){if(_0x1162f3){return _0x1162f3?{'count':_0x58fd75,'rows':_0x1162f3}:null;}})['then'](respondWithResult(_0x276d1c,null))[_0x5163('0x25')](handleError(_0x276d1c,null));};exports[_0x5163('0x5c')]=function(_0x28f46a,_0x228032,_0x3a73d7){var _0x416724={};var _0x155987={};var _0x24040f;var _0x452e23;return db[_0x5163('0x3c')][_0x5163('0x5b')]({'where':{'id':_0x28f46a[_0x5163('0x50')]['id']}})[_0x5163('0x1a')](handleEntityNotFound(_0x228032,null))['then'](function(_0x18619c){if(_0x18619c){_0x24040f=_0x18619c;_0x155987['model']=_[_0x5163('0x42')](db[_0x5163('0x58')][_0x5163('0x3d')]);_0x155987['query']=_[_0x5163('0x42')](_0x28f46a['query']);_0x155987[_0x5163('0x4a')]=_[_0x5163('0x43')](_0x155987['model'],_0x155987['query']);_0x416724[_0x5163('0x44')]=_[_0x5163('0x43')](_0x155987[_0x5163('0x3f')],qs[_0x5163('0x45')](_0x28f46a[_0x5163('0x41')][_0x5163('0x45')]));_0x416724['attributes']=_0x416724['attributes']['length']?_0x416724[_0x5163('0x44')]:_0x155987[_0x5163('0x3f')];_0x416724[_0x5163('0x47')]=qs['sort'](_0x28f46a[_0x5163('0x41')][_0x5163('0x48')]);_0x416724[_0x5163('0x49')]=qs[_0x5163('0x4a')](_['pick'](_0x28f46a[_0x5163('0x41')],_0x155987[_0x5163('0x4a')]));if(_0x28f46a['query'][_0x5163('0x4c')]){_0x416724['where']=_['merge'](_0x416724['where'],{'$or':_[_0x5163('0x40')](_0x416724['attributes'],function(_0x3a14fc){var _0x5aea34={};_0x5aea34[_0x3a14fc]={'$like':'%'+_0x28f46a[_0x5163('0x41')]['filter']+'%'};return _0x5aea34;})});}_0x416724=_[_0x5163('0x37')]({},_0x416724,_0x28f46a[_0x5163('0x4e')]);return _0x24040f['getDescriptions'](_0x416724);}})['then'](function(_0x32fccd){if(_0x32fccd){_0x452e23=_0x32fccd[_0x5163('0x51')];if(!_0x28f46a['query'][_0x5163('0x59')](_0x5163('0x46'))){_0x416724[_0x5163('0x2b')]=qs[_0x5163('0x2b')](_0x28f46a['query'][_0x5163('0x2b')]);_0x416724[_0x5163('0x2a')]=qs['offset'](_0x28f46a['query'][_0x5163('0x2a')]);}return _0x24040f[_0x5163('0x5c')](_0x416724);}})[_0x5163('0x1a')](function(_0x356a4b){if(_0x356a4b){return _0x356a4b?{'count':_0x452e23,'rows':_0x356a4b}:null;}})[_0x5163('0x1a')](respondWithResult(_0x228032,null))[_0x5163('0x25')](handleError(_0x228032,null));};