e07a6ddc8fcc873f785721beff84bf8e5310fe34
[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 _0xd0b9=['status','offset','limit','undefined','count','set','Content-Range','json','reject','save','update','then','destroy','end','error','stack','name','send','index','map','ServicenowConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','getFields','findOne','ServicenowField','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x1c1056,_0x1db6b0){var _0x53f633=function(_0x53e6b0){while(--_0x53e6b0){_0x1c1056['push'](_0x1c1056['shift']());}};_0x53f633(++_0x1db6b0);}(_0xd0b9,0x1e8));var _0x9d0b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd0b9[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x9d0b('0x0'));var rimraf=require(_0x9d0b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9d0b('0x2'));var rp=require(_0x9d0b('0x3'));var moment=require(_0x9d0b('0x4'));var BPromise=require(_0x9d0b('0x5'));var Mustache=require('mustache');var util=require(_0x9d0b('0x6'));var path=require(_0x9d0b('0x7'));var sox=require(_0x9d0b('0x8'));var csv=require('to-csv');var ejs=require(_0x9d0b('0x9'));var fs=require('fs');var fs_extra=require(_0x9d0b('0xa'));var _=require(_0x9d0b('0xb'));var squel=require(_0x9d0b('0xc'));var crypto=require(_0x9d0b('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x9d0b('0xe'));var toCsv=require(_0x9d0b('0xf'));var querystring=require('querystring');var Papa=require(_0x9d0b('0x10'));var Redis=require(_0x9d0b('0x11'));var authService=require(_0x9d0b('0x12'));var qs=require(_0x9d0b('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9d0b('0x14'));var logger=require(_0x9d0b('0x15'))(_0x9d0b('0x16'));var utils=require(_0x9d0b('0x17'));var config=require(_0x9d0b('0x18'));var licenseUtil=require(_0x9d0b('0x19'));var db=require(_0x9d0b('0x1a'))['db'];function respondWithStatusCode(_0x2b53c5,_0x122a9b){_0x122a9b=_0x122a9b||0xcc;return function(_0x551fef){if(_0x551fef){return _0x2b53c5[_0x9d0b('0x1b')](_0x122a9b);}return _0x2b53c5[_0x9d0b('0x1c')](_0x122a9b)['end']();};}function respondWithResult(_0x13e953,_0xfcb7ce){_0xfcb7ce=_0xfcb7ce||0xc8;return function(_0x3be4df){if(_0x3be4df){return _0x13e953['status'](_0xfcb7ce)['json'](_0x3be4df);}};}function respondWithFilteredResult(_0x416d22,_0x3c79c6){return function(_0x5e7213){if(_0x5e7213){var _0x51c985=typeof _0x3c79c6[_0x9d0b('0x1d')]==='undefined'&&typeof _0x3c79c6[_0x9d0b('0x1e')]===_0x9d0b('0x1f');var _0x23d155=_0x5e7213[_0x9d0b('0x20')];var _0x3fc036=_0x51c985?0x0:_0x3c79c6['offset'];var _0xcb21fd=_0x51c985?_0x5e7213[_0x9d0b('0x20')]:_0x3c79c6['offset']+_0x3c79c6[_0x9d0b('0x1e')];var _0x30802d;if(_0xcb21fd>=_0x23d155){_0xcb21fd=_0x23d155;_0x30802d=0xc8;}else{_0x30802d=0xce;}_0x416d22[_0x9d0b('0x1c')](_0x30802d);return _0x416d22[_0x9d0b('0x21')](_0x9d0b('0x22'),_0x3fc036+'-'+_0xcb21fd+'/'+_0x23d155)[_0x9d0b('0x23')](_0x5e7213);}return null;};}function patchUpdates(_0x4d36be){return function(_0x2a90bc){try{jsonpatch['apply'](_0x2a90bc,_0x4d36be,!![]);}catch(_0x5c113b){return BPromise[_0x9d0b('0x24')](_0x5c113b);}return _0x2a90bc[_0x9d0b('0x25')]();};}function saveUpdates(_0x3fea02,_0x38e0dd){return function(_0x39413c){if(_0x39413c){return _0x39413c[_0x9d0b('0x26')](_0x3fea02)[_0x9d0b('0x27')](function(_0x43b74b){return _0x43b74b;});}return null;};}function removeEntity(_0x37984a,_0xcabe47){return function(_0x188fa7){if(_0x188fa7){return _0x188fa7[_0x9d0b('0x28')]()[_0x9d0b('0x27')](function(){_0x37984a[_0x9d0b('0x1c')](0xcc)[_0x9d0b('0x29')]();});}};}function handleEntityNotFound(_0x3b7997,_0x106d2b){return function(_0x58433b){if(!_0x58433b){_0x3b7997['sendStatus'](0x194);}return _0x58433b;};}function handleError(_0x46fc05,_0x11301c){_0x11301c=_0x11301c||0x1f4;return function(_0x4e815b){logger[_0x9d0b('0x2a')](_0x4e815b[_0x9d0b('0x2b')]);if(_0x4e815b[_0x9d0b('0x2c')]){delete _0x4e815b[_0x9d0b('0x2c')];}_0x46fc05[_0x9d0b('0x1c')](_0x11301c)[_0x9d0b('0x2d')](_0x4e815b);};}exports[_0x9d0b('0x2e')]=function(_0x5e8011,_0x4ac4c3){var _0x52be6f={},_0x52658a={},_0x23c2ce={'count':0x0,'rows':[]};var _0x523cc3=_[_0x9d0b('0x2f')](db[_0x9d0b('0x30')][_0x9d0b('0x31')],function(_0x4a108e){return{'name':_0x4a108e[_0x9d0b('0x32')],'type':_0x4a108e[_0x9d0b('0x33')][_0x9d0b('0x34')]};});_0x52658a[_0x9d0b('0x35')]=_[_0x9d0b('0x2f')](_0x523cc3,_0x9d0b('0x2c'));_0x52658a[_0x9d0b('0x36')]=_[_0x9d0b('0x37')](_0x5e8011['query']);_0x52658a[_0x9d0b('0x38')]=_[_0x9d0b('0x39')](_0x52658a['model'],_0x52658a[_0x9d0b('0x36')]);_0x52be6f[_0x9d0b('0x3a')]=_['intersection'](_0x52658a[_0x9d0b('0x35')],qs['fields'](_0x5e8011['query'][_0x9d0b('0x3b')]));_0x52be6f[_0x9d0b('0x3a')]=_0x52be6f[_0x9d0b('0x3a')]['length']?_0x52be6f['attributes']:_0x52658a['model'];if(!_0x5e8011[_0x9d0b('0x36')][_0x9d0b('0x3c')](_0x9d0b('0x3d'))){_0x52be6f['limit']=qs[_0x9d0b('0x1e')](_0x5e8011['query']['limit']);_0x52be6f['offset']=qs[_0x9d0b('0x1d')](_0x5e8011[_0x9d0b('0x36')][_0x9d0b('0x1d')]);}_0x52be6f[_0x9d0b('0x3e')]=qs[_0x9d0b('0x3f')](_0x5e8011[_0x9d0b('0x36')][_0x9d0b('0x3f')]);_0x52be6f['where']=qs[_0x9d0b('0x38')](_[_0x9d0b('0x40')](_0x5e8011['query'],_0x52658a[_0x9d0b('0x38')]),_0x523cc3);if(_0x5e8011['query'][_0x9d0b('0x41')]){_0x52be6f[_0x9d0b('0x42')]=_[_0x9d0b('0x43')](_0x52be6f['where'],{'$or':_['map'](_0x523cc3,function(_0x25b51a){if(_0x25b51a[_0x9d0b('0x33')]!==_0x9d0b('0x44')){var _0xa1e9a={};_0xa1e9a[_0x25b51a[_0x9d0b('0x2c')]]={'$like':'%'+_0x5e8011[_0x9d0b('0x36')]['filter']+'%'};return _0xa1e9a;}})});}_0x52be6f=_[_0x9d0b('0x43')]({},_0x52be6f,_0x5e8011[_0x9d0b('0x45')]);var _0x1b0353={'where':_0x52be6f[_0x9d0b('0x42')]};return db['ServicenowConfiguration']['count'](_0x1b0353)[_0x9d0b('0x27')](function(_0x3a9f5a){_0x23c2ce['count']=_0x3a9f5a;if(_0x5e8011['query'][_0x9d0b('0x46')]){_0x52be6f[_0x9d0b('0x47')]=[{'all':!![]}];}return db[_0x9d0b('0x30')][_0x9d0b('0x48')](_0x52be6f);})['then'](function(_0x1cfecb){_0x23c2ce[_0x9d0b('0x49')]=_0x1cfecb;return _0x23c2ce;})['then'](respondWithFilteredResult(_0x4ac4c3,_0x52be6f))[_0x9d0b('0x4a')](handleError(_0x4ac4c3,null));};exports[_0x9d0b('0x4b')]=function(_0x149e2c,_0x4bb7e5){var _0x1a7e33={'raw':![],'where':{'id':_0x149e2c[_0x9d0b('0x4c')]['id']}},_0x566514={};_0x566514[_0x9d0b('0x35')]=_[_0x9d0b('0x37')](db[_0x9d0b('0x30')][_0x9d0b('0x31')]);_0x566514[_0x9d0b('0x36')]=_['keys'](_0x149e2c[_0x9d0b('0x36')]);_0x566514[_0x9d0b('0x38')]=_['intersection'](_0x566514[_0x9d0b('0x35')],_0x566514[_0x9d0b('0x36')]);_0x1a7e33[_0x9d0b('0x3a')]=_[_0x9d0b('0x39')](_0x566514['model'],qs['fields'](_0x149e2c[_0x9d0b('0x36')][_0x9d0b('0x3b')]));_0x1a7e33['attributes']=_0x1a7e33[_0x9d0b('0x3a')][_0x9d0b('0x4d')]?_0x1a7e33['attributes']:_0x566514[_0x9d0b('0x35')];if(_0x149e2c[_0x9d0b('0x36')][_0x9d0b('0x46')]){_0x1a7e33[_0x9d0b('0x47')]=[{'all':!![]}];}_0x1a7e33=_['merge']({},_0x1a7e33,_0x149e2c['options']);return db['ServicenowConfiguration'][_0x9d0b('0x4e')](_0x1a7e33)[_0x9d0b('0x27')](handleEntityNotFound(_0x4bb7e5,null))['then'](respondWithResult(_0x4bb7e5,null))[_0x9d0b('0x4a')](handleError(_0x4bb7e5,null));};exports[_0x9d0b('0x4f')]=function(_0x2111d1,_0x2e7301){return db[_0x9d0b('0x30')][_0x9d0b('0x4f')](_0x2111d1[_0x9d0b('0x50')],{})['then'](respondWithResult(_0x2e7301,0xc9))[_0x9d0b('0x4a')](handleError(_0x2e7301,null));};exports[_0x9d0b('0x26')]=function(_0x130587,_0x2f2d63){if(_0x130587[_0x9d0b('0x50')]['id']){delete _0x130587[_0x9d0b('0x50')]['id'];}return db[_0x9d0b('0x30')][_0x9d0b('0x4e')]({'where':{'id':_0x130587[_0x9d0b('0x4c')]['id']}})[_0x9d0b('0x27')](handleEntityNotFound(_0x2f2d63,null))[_0x9d0b('0x27')](saveUpdates(_0x130587[_0x9d0b('0x50')],null))[_0x9d0b('0x27')](respondWithResult(_0x2f2d63,null))['catch'](handleError(_0x2f2d63,null));};exports[_0x9d0b('0x28')]=function(_0x426c31,_0x56dc72){return db['ServicenowConfiguration'][_0x9d0b('0x4e')]({'where':{'id':_0x426c31['params']['id']}})[_0x9d0b('0x27')](handleEntityNotFound(_0x56dc72,null))[_0x9d0b('0x27')](removeEntity(_0x56dc72,null))['catch'](handleError(_0x56dc72,null));};exports[_0x9d0b('0x51')]=function(_0x472290,_0x3650ea,_0x3b126c){var _0x499c94={};var _0x5aee5a={};var _0x57fed7;var _0x952fd6;return db[_0x9d0b('0x30')][_0x9d0b('0x52')]({'where':{'id':_0x472290[_0x9d0b('0x4c')]['id']}})[_0x9d0b('0x27')](handleEntityNotFound(_0x3650ea,null))[_0x9d0b('0x27')](function(_0x3c0a11){if(_0x3c0a11){_0x57fed7=_0x3c0a11;_0x5aee5a['model']=_[_0x9d0b('0x37')](db[_0x9d0b('0x53')]['rawAttributes']);_0x5aee5a[_0x9d0b('0x36')]=_[_0x9d0b('0x37')](_0x472290[_0x9d0b('0x36')]);_0x5aee5a[_0x9d0b('0x38')]=_['intersection'](_0x5aee5a[_0x9d0b('0x35')],_0x5aee5a[_0x9d0b('0x36')]);_0x499c94[_0x9d0b('0x3a')]=_['intersection'](_0x5aee5a[_0x9d0b('0x35')],qs[_0x9d0b('0x3b')](_0x472290[_0x9d0b('0x36')][_0x9d0b('0x3b')]));_0x499c94[_0x9d0b('0x3a')]=_0x499c94[_0x9d0b('0x3a')][_0x9d0b('0x4d')]?_0x499c94[_0x9d0b('0x3a')]:_0x5aee5a[_0x9d0b('0x35')];_0x499c94[_0x9d0b('0x3e')]=qs['sort'](_0x472290[_0x9d0b('0x36')][_0x9d0b('0x3f')]);_0x499c94['where']=qs['filters'](_[_0x9d0b('0x40')](_0x472290[_0x9d0b('0x36')],_0x5aee5a[_0x9d0b('0x38')]));if(_0x472290[_0x9d0b('0x36')][_0x9d0b('0x41')]){_0x499c94[_0x9d0b('0x42')]=_['merge'](_0x499c94[_0x9d0b('0x42')],{'$or':_[_0x9d0b('0x2f')](_0x499c94[_0x9d0b('0x3a')],function(_0x11ca3c){var _0x3cdec7={};_0x3cdec7[_0x11ca3c]={'$like':'%'+_0x472290[_0x9d0b('0x36')][_0x9d0b('0x41')]+'%'};return _0x3cdec7;})});}_0x499c94=_[_0x9d0b('0x43')]({},_0x499c94,_0x472290[_0x9d0b('0x45')]);return _0x57fed7[_0x9d0b('0x51')](_0x499c94);}})[_0x9d0b('0x27')](function(_0x177f94){if(_0x177f94){_0x952fd6=_0x177f94['length'];if(!_0x472290['query']['hasOwnProperty'](_0x9d0b('0x3d'))){_0x499c94[_0x9d0b('0x1e')]=qs['limit'](_0x472290['query']['limit']);_0x499c94[_0x9d0b('0x1d')]=qs[_0x9d0b('0x1d')](_0x472290[_0x9d0b('0x36')][_0x9d0b('0x1d')]);}return _0x57fed7['getFields'](_0x499c94);}})[_0x9d0b('0x27')](function(_0x46d0cb){if(_0x46d0cb){return _0x46d0cb?{'count':_0x952fd6,'rows':_0x46d0cb}:null;}})[_0x9d0b('0x27')](respondWithResult(_0x3650ea,null))['catch'](handleError(_0x3650ea,null));};exports[_0x9d0b('0x54')]=function(_0x295d74,_0x16f07b,_0x195023){var _0x398c9b={};var _0xc1c679={};var _0x3f8db6;var _0x22ef61;return db[_0x9d0b('0x30')][_0x9d0b('0x52')]({'where':{'id':_0x295d74[_0x9d0b('0x4c')]['id']}})[_0x9d0b('0x27')](handleEntityNotFound(_0x16f07b,null))[_0x9d0b('0x27')](function(_0x459c98){if(_0x459c98){_0x3f8db6=_0x459c98;_0xc1c679['model']=_['keys'](db[_0x9d0b('0x53')][_0x9d0b('0x31')]);_0xc1c679['query']=_['keys'](_0x295d74['query']);_0xc1c679[_0x9d0b('0x38')]=_[_0x9d0b('0x39')](_0xc1c679[_0x9d0b('0x35')],_0xc1c679[_0x9d0b('0x36')]);_0x398c9b[_0x9d0b('0x3a')]=_[_0x9d0b('0x39')](_0xc1c679['model'],qs[_0x9d0b('0x3b')](_0x295d74[_0x9d0b('0x36')][_0x9d0b('0x3b')]));_0x398c9b[_0x9d0b('0x3a')]=_0x398c9b['attributes']['length']?_0x398c9b[_0x9d0b('0x3a')]:_0xc1c679['model'];_0x398c9b['order']=qs['sort'](_0x295d74[_0x9d0b('0x36')][_0x9d0b('0x3f')]);_0x398c9b[_0x9d0b('0x42')]=qs[_0x9d0b('0x38')](_['pick'](_0x295d74[_0x9d0b('0x36')],_0xc1c679[_0x9d0b('0x38')]));if(_0x295d74[_0x9d0b('0x36')]['filter']){_0x398c9b['where']=_['merge'](_0x398c9b[_0x9d0b('0x42')],{'$or':_['map'](_0x398c9b[_0x9d0b('0x3a')],function(_0x5abc29){var _0x47b4ac={};_0x47b4ac[_0x5abc29]={'$like':'%'+_0x295d74[_0x9d0b('0x36')][_0x9d0b('0x41')]+'%'};return _0x47b4ac;})});}_0x398c9b=_[_0x9d0b('0x43')]({},_0x398c9b,_0x295d74[_0x9d0b('0x45')]);return _0x3f8db6[_0x9d0b('0x54')](_0x398c9b);}})[_0x9d0b('0x27')](function(_0x153bcf){if(_0x153bcf){_0x22ef61=_0x153bcf[_0x9d0b('0x4d')];if(!_0x295d74[_0x9d0b('0x36')][_0x9d0b('0x3c')]('nolimit')){_0x398c9b[_0x9d0b('0x1e')]=qs['limit'](_0x295d74['query'][_0x9d0b('0x1e')]);_0x398c9b[_0x9d0b('0x1d')]=qs[_0x9d0b('0x1d')](_0x295d74['query'][_0x9d0b('0x1d')]);}return _0x3f8db6[_0x9d0b('0x54')](_0x398c9b);}})[_0x9d0b('0x27')](function(_0x5b879){if(_0x5b879){return _0x5b879?{'count':_0x22ef61,'rows':_0x5b879}:null;}})[_0x9d0b('0x27')](respondWithResult(_0x16f07b,null))['catch'](handleError(_0x16f07b,null));};exports['getDescriptions']=function(_0x3ac008,_0x31603f,_0x43ac67){var _0x410ada={};var _0x2c07ef={};var _0x6f510f;var _0x3704a3;return db[_0x9d0b('0x30')][_0x9d0b('0x52')]({'where':{'id':_0x3ac008[_0x9d0b('0x4c')]['id']}})[_0x9d0b('0x27')](handleEntityNotFound(_0x31603f,null))['then'](function(_0x23c11f){if(_0x23c11f){_0x6f510f=_0x23c11f;_0x2c07ef['model']=_[_0x9d0b('0x37')](db[_0x9d0b('0x53')][_0x9d0b('0x31')]);_0x2c07ef[_0x9d0b('0x36')]=_[_0x9d0b('0x37')](_0x3ac008[_0x9d0b('0x36')]);_0x2c07ef[_0x9d0b('0x38')]=_[_0x9d0b('0x39')](_0x2c07ef[_0x9d0b('0x35')],_0x2c07ef[_0x9d0b('0x36')]);_0x410ada[_0x9d0b('0x3a')]=_['intersection'](_0x2c07ef[_0x9d0b('0x35')],qs[_0x9d0b('0x3b')](_0x3ac008['query']['fields']));_0x410ada['attributes']=_0x410ada['attributes'][_0x9d0b('0x4d')]?_0x410ada[_0x9d0b('0x3a')]:_0x2c07ef['model'];_0x410ada['order']=qs[_0x9d0b('0x3f')](_0x3ac008[_0x9d0b('0x36')][_0x9d0b('0x3f')]);_0x410ada[_0x9d0b('0x42')]=qs[_0x9d0b('0x38')](_[_0x9d0b('0x40')](_0x3ac008[_0x9d0b('0x36')],_0x2c07ef[_0x9d0b('0x38')]));if(_0x3ac008[_0x9d0b('0x36')][_0x9d0b('0x41')]){_0x410ada[_0x9d0b('0x42')]=_[_0x9d0b('0x43')](_0x410ada[_0x9d0b('0x42')],{'$or':_[_0x9d0b('0x2f')](_0x410ada[_0x9d0b('0x3a')],function(_0x3f9e29){var _0x2a20f5={};_0x2a20f5[_0x3f9e29]={'$like':'%'+_0x3ac008['query'][_0x9d0b('0x41')]+'%'};return _0x2a20f5;})});}_0x410ada=_[_0x9d0b('0x43')]({},_0x410ada,_0x3ac008['options']);return _0x6f510f[_0x9d0b('0x55')](_0x410ada);}})[_0x9d0b('0x27')](function(_0x1a38a0){if(_0x1a38a0){_0x3704a3=_0x1a38a0[_0x9d0b('0x4d')];if(!_0x3ac008[_0x9d0b('0x36')]['hasOwnProperty'](_0x9d0b('0x3d'))){_0x410ada['limit']=qs[_0x9d0b('0x1e')](_0x3ac008['query']['limit']);_0x410ada[_0x9d0b('0x1d')]=qs[_0x9d0b('0x1d')](_0x3ac008['query'][_0x9d0b('0x1d')]);}return _0x6f510f['getDescriptions'](_0x410ada);}})[_0x9d0b('0x27')](function(_0x5a03c6){if(_0x5a03c6){return _0x5a03c6?{'count':_0x3704a3,'rows':_0x5a03c6}:null;}})[_0x9d0b('0x27')](respondWithResult(_0x31603f,null))[_0x9d0b('0x4a')](handleError(_0x31603f,null));};