a1938b615b5e4a9ccc65f4e93d098b44acbc5f97
[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 _0xca85=['moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','name','send','index','ServicenowConfiguration','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','order','sort','where','filter','VIRTUAL','options','include','findAll','catch','show','params','includeAll','merge','find','create','body','findOne','ServicenowField','pick','getFields','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch'];(function(_0x188c59,_0x1e64a8){var _0x25caba=function(_0x5f420f){while(--_0x5f420f){_0x188c59['push'](_0x188c59['shift']());}};_0x25caba(++_0x1e64a8);}(_0xca85,0x95));var _0x5ca8=function(_0x7373f4,_0x1b3715){_0x7373f4=_0x7373f4-0x0;var _0xa2dc37=_0xca85[_0x7373f4];return _0xa2dc37;};'use strict';var emlformat=require(_0x5ca8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5ca8('0x1'));var jsonpatch=require(_0x5ca8('0x2'));var rp=require('request-promise');var moment=require(_0x5ca8('0x3'));var BPromise=require(_0x5ca8('0x4'));var Mustache=require('mustache');var util=require(_0x5ca8('0x5'));var path=require(_0x5ca8('0x6'));var sox=require(_0x5ca8('0x7'));var csv=require(_0x5ca8('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5ca8('0x9'));var _=require(_0x5ca8('0xa'));var squel=require(_0x5ca8('0xb'));var crypto=require('crypto');var jsforce=require(_0x5ca8('0xc'));var deskjs=require(_0x5ca8('0xd'));var toCsv=require('to-csv');var querystring=require(_0x5ca8('0xe'));var Papa=require('papaparse');var Redis=require(_0x5ca8('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x5ca8('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5ca8('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x5ca8('0x12'));var licenseUtil=require(_0x5ca8('0x13'));var db=require(_0x5ca8('0x14'))['db'];function respondWithStatusCode(_0x2a9774,_0x280b2f){_0x280b2f=_0x280b2f||0xcc;return function(_0x160c8c){if(_0x160c8c){return _0x2a9774['sendStatus'](_0x280b2f);}return _0x2a9774[_0x5ca8('0x15')](_0x280b2f)['end']();};}function respondWithResult(_0x2d9707,_0x48a55b){_0x48a55b=_0x48a55b||0xc8;return function(_0x201ff4){if(_0x201ff4){return _0x2d9707[_0x5ca8('0x15')](_0x48a55b)[_0x5ca8('0x16')](_0x201ff4);}};}function respondWithFilteredResult(_0x1d0413,_0x2cc5f5){return function(_0x36e003){if(_0x36e003){var _0x4dea09=typeof _0x2cc5f5['offset']===_0x5ca8('0x17')&&typeof _0x2cc5f5[_0x5ca8('0x18')]===_0x5ca8('0x17');var _0x27c025=_0x36e003[_0x5ca8('0x19')];var _0x283374=_0x4dea09?0x0:_0x2cc5f5['offset'];var _0x1002fe=_0x4dea09?_0x36e003[_0x5ca8('0x19')]:_0x2cc5f5['offset']+_0x2cc5f5[_0x5ca8('0x18')];var _0x2a1596;if(_0x1002fe>=_0x27c025){_0x1002fe=_0x27c025;_0x2a1596=0xc8;}else{_0x2a1596=0xce;}_0x1d0413[_0x5ca8('0x15')](_0x2a1596);return _0x1d0413[_0x5ca8('0x1a')](_0x5ca8('0x1b'),_0x283374+'-'+_0x1002fe+'/'+_0x27c025)[_0x5ca8('0x16')](_0x36e003);}return null;};}function patchUpdates(_0x30314d){return function(_0x504178){try{jsonpatch[_0x5ca8('0x1c')](_0x504178,_0x30314d,!![]);}catch(_0x51e0cf){return BPromise[_0x5ca8('0x1d')](_0x51e0cf);}return _0x504178['save']();};}function saveUpdates(_0x268080,_0x386cfa){return function(_0x16c4d3){if(_0x16c4d3){return _0x16c4d3[_0x5ca8('0x1e')](_0x268080)[_0x5ca8('0x1f')](function(_0x3a2574){return _0x3a2574;});}return null;};}function removeEntity(_0x538e58,_0x46a971){return function(_0x5d2c09){if(_0x5d2c09){return _0x5d2c09[_0x5ca8('0x20')]()[_0x5ca8('0x1f')](function(){_0x538e58[_0x5ca8('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4afd81,_0x42e342){return function(_0x551e46){if(!_0x551e46){_0x4afd81['sendStatus'](0x194);}return _0x551e46;};}function handleError(_0x4ddc63,_0x4e56ad){_0x4e56ad=_0x4e56ad||0x1f4;return function(_0xb1b542){logger[_0x5ca8('0x21')](_0xb1b542['stack']);if(_0xb1b542[_0x5ca8('0x22')]){delete _0xb1b542['name'];}_0x4ddc63['status'](_0x4e56ad)[_0x5ca8('0x23')](_0xb1b542);};}exports[_0x5ca8('0x24')]=function(_0x5def92,_0x3ecd83){var _0x48bfa9={},_0x1e5b0c={},_0xab9eb6={'count':0x0,'rows':[]};var _0x1229f5=_['map'](db[_0x5ca8('0x25')][_0x5ca8('0x26')],function(_0x2fb71a){return{'name':_0x2fb71a[_0x5ca8('0x27')],'type':_0x2fb71a[_0x5ca8('0x28')][_0x5ca8('0x29')]};});_0x1e5b0c[_0x5ca8('0x2a')]=_[_0x5ca8('0x2b')](_0x1229f5,_0x5ca8('0x22'));_0x1e5b0c[_0x5ca8('0x2c')]=_[_0x5ca8('0x2d')](_0x5def92[_0x5ca8('0x2c')]);_0x1e5b0c[_0x5ca8('0x2e')]=_[_0x5ca8('0x2f')](_0x1e5b0c['model'],_0x1e5b0c[_0x5ca8('0x2c')]);_0x48bfa9['attributes']=_[_0x5ca8('0x2f')](_0x1e5b0c[_0x5ca8('0x2a')],qs[_0x5ca8('0x30')](_0x5def92[_0x5ca8('0x2c')][_0x5ca8('0x30')]));_0x48bfa9[_0x5ca8('0x31')]=_0x48bfa9[_0x5ca8('0x31')][_0x5ca8('0x32')]?_0x48bfa9[_0x5ca8('0x31')]:_0x1e5b0c[_0x5ca8('0x2a')];if(!_0x5def92[_0x5ca8('0x2c')][_0x5ca8('0x33')](_0x5ca8('0x34'))){_0x48bfa9[_0x5ca8('0x18')]=qs[_0x5ca8('0x18')](_0x5def92[_0x5ca8('0x2c')][_0x5ca8('0x18')]);_0x48bfa9[_0x5ca8('0x35')]=qs['offset'](_0x5def92[_0x5ca8('0x2c')][_0x5ca8('0x35')]);}_0x48bfa9[_0x5ca8('0x36')]=qs[_0x5ca8('0x37')](_0x5def92['query'][_0x5ca8('0x37')]);_0x48bfa9[_0x5ca8('0x38')]=qs[_0x5ca8('0x2e')](_['pick'](_0x5def92[_0x5ca8('0x2c')],_0x1e5b0c[_0x5ca8('0x2e')]),_0x1229f5);if(_0x5def92[_0x5ca8('0x2c')][_0x5ca8('0x39')]){_0x48bfa9[_0x5ca8('0x38')]=_['merge'](_0x48bfa9[_0x5ca8('0x38')],{'$or':_[_0x5ca8('0x2b')](_0x1229f5,function(_0x5eaf95){if(_0x5eaf95[_0x5ca8('0x28')]!==_0x5ca8('0x3a')){var _0x1fd898={};_0x1fd898[_0x5eaf95[_0x5ca8('0x22')]]={'$like':'%'+_0x5def92['query'][_0x5ca8('0x39')]+'%'};return _0x1fd898;}})});}_0x48bfa9=_['merge']({},_0x48bfa9,_0x5def92[_0x5ca8('0x3b')]);var _0x291982={'where':_0x48bfa9[_0x5ca8('0x38')]};return db[_0x5ca8('0x25')]['count'](_0x291982)[_0x5ca8('0x1f')](function(_0x47c6ad){_0xab9eb6[_0x5ca8('0x19')]=_0x47c6ad;if(_0x5def92[_0x5ca8('0x2c')]['includeAll']){_0x48bfa9[_0x5ca8('0x3c')]=[{'all':!![]}];}return db[_0x5ca8('0x25')][_0x5ca8('0x3d')](_0x48bfa9);})['then'](function(_0x4832cb){_0xab9eb6['rows']=_0x4832cb;return _0xab9eb6;})[_0x5ca8('0x1f')](respondWithFilteredResult(_0x3ecd83,_0x48bfa9))[_0x5ca8('0x3e')](handleError(_0x3ecd83,null));};exports[_0x5ca8('0x3f')]=function(_0x50f5e5,_0x2cf3d5){var _0x4aceb5={'raw':![],'where':{'id':_0x50f5e5[_0x5ca8('0x40')]['id']}},_0x3ec944={};_0x3ec944[_0x5ca8('0x2a')]=_[_0x5ca8('0x2d')](db[_0x5ca8('0x25')][_0x5ca8('0x26')]);_0x3ec944[_0x5ca8('0x2c')]=_['keys'](_0x50f5e5[_0x5ca8('0x2c')]);_0x3ec944[_0x5ca8('0x2e')]=_[_0x5ca8('0x2f')](_0x3ec944[_0x5ca8('0x2a')],_0x3ec944[_0x5ca8('0x2c')]);_0x4aceb5['attributes']=_[_0x5ca8('0x2f')](_0x3ec944[_0x5ca8('0x2a')],qs[_0x5ca8('0x30')](_0x50f5e5[_0x5ca8('0x2c')][_0x5ca8('0x30')]));_0x4aceb5[_0x5ca8('0x31')]=_0x4aceb5['attributes'][_0x5ca8('0x32')]?_0x4aceb5['attributes']:_0x3ec944[_0x5ca8('0x2a')];if(_0x50f5e5[_0x5ca8('0x2c')][_0x5ca8('0x41')]){_0x4aceb5[_0x5ca8('0x3c')]=[{'all':!![]}];}_0x4aceb5=_[_0x5ca8('0x42')]({},_0x4aceb5,_0x50f5e5[_0x5ca8('0x3b')]);return db[_0x5ca8('0x25')][_0x5ca8('0x43')](_0x4aceb5)[_0x5ca8('0x1f')](handleEntityNotFound(_0x2cf3d5,null))[_0x5ca8('0x1f')](respondWithResult(_0x2cf3d5,null))[_0x5ca8('0x3e')](handleError(_0x2cf3d5,null));};exports[_0x5ca8('0x44')]=function(_0x5935f0,_0x3679d2){return db['ServicenowConfiguration'][_0x5ca8('0x44')](_0x5935f0[_0x5ca8('0x45')],{})[_0x5ca8('0x1f')](respondWithResult(_0x3679d2,0xc9))[_0x5ca8('0x3e')](handleError(_0x3679d2,null));};exports['update']=function(_0x531980,_0x5e6d6a){if(_0x531980[_0x5ca8('0x45')]['id']){delete _0x531980[_0x5ca8('0x45')]['id'];}return db[_0x5ca8('0x25')][_0x5ca8('0x43')]({'where':{'id':_0x531980[_0x5ca8('0x40')]['id']}})['then'](handleEntityNotFound(_0x5e6d6a,null))[_0x5ca8('0x1f')](saveUpdates(_0x531980['body'],null))[_0x5ca8('0x1f')](respondWithResult(_0x5e6d6a,null))[_0x5ca8('0x3e')](handleError(_0x5e6d6a,null));};exports[_0x5ca8('0x20')]=function(_0x102893,_0x424747){return db[_0x5ca8('0x25')][_0x5ca8('0x43')]({'where':{'id':_0x102893[_0x5ca8('0x40')]['id']}})[_0x5ca8('0x1f')](handleEntityNotFound(_0x424747,null))['then'](removeEntity(_0x424747,null))[_0x5ca8('0x3e')](handleError(_0x424747,null));};exports['getFields']=function(_0x533aca,_0x336c74,_0x538ad4){var _0x38c45f={};var _0x5d5283={};var _0x16649d;var _0x3ce49e;return db[_0x5ca8('0x25')][_0x5ca8('0x46')]({'where':{'id':_0x533aca[_0x5ca8('0x40')]['id']}})[_0x5ca8('0x1f')](handleEntityNotFound(_0x336c74,null))[_0x5ca8('0x1f')](function(_0x5ac573){if(_0x5ac573){_0x16649d=_0x5ac573;_0x5d5283[_0x5ca8('0x2a')]=_[_0x5ca8('0x2d')](db[_0x5ca8('0x47')][_0x5ca8('0x26')]);_0x5d5283[_0x5ca8('0x2c')]=_[_0x5ca8('0x2d')](_0x533aca['query']);_0x5d5283[_0x5ca8('0x2e')]=_[_0x5ca8('0x2f')](_0x5d5283[_0x5ca8('0x2a')],_0x5d5283['query']);_0x38c45f[_0x5ca8('0x31')]=_[_0x5ca8('0x2f')](_0x5d5283[_0x5ca8('0x2a')],qs[_0x5ca8('0x30')](_0x533aca[_0x5ca8('0x2c')][_0x5ca8('0x30')]));_0x38c45f[_0x5ca8('0x31')]=_0x38c45f[_0x5ca8('0x31')]['length']?_0x38c45f['attributes']:_0x5d5283[_0x5ca8('0x2a')];_0x38c45f[_0x5ca8('0x36')]=qs[_0x5ca8('0x37')](_0x533aca['query'][_0x5ca8('0x37')]);_0x38c45f[_0x5ca8('0x38')]=qs[_0x5ca8('0x2e')](_[_0x5ca8('0x48')](_0x533aca[_0x5ca8('0x2c')],_0x5d5283[_0x5ca8('0x2e')]));if(_0x533aca[_0x5ca8('0x2c')][_0x5ca8('0x39')]){_0x38c45f[_0x5ca8('0x38')]=_[_0x5ca8('0x42')](_0x38c45f[_0x5ca8('0x38')],{'$or':_['map'](_0x38c45f[_0x5ca8('0x31')],function(_0x4003ff){var _0x16ef05={};_0x16ef05[_0x4003ff]={'$like':'%'+_0x533aca[_0x5ca8('0x2c')][_0x5ca8('0x39')]+'%'};return _0x16ef05;})});}_0x38c45f=_['merge']({},_0x38c45f,_0x533aca[_0x5ca8('0x3b')]);return _0x16649d[_0x5ca8('0x49')](_0x38c45f);}})[_0x5ca8('0x1f')](function(_0x945910){if(_0x945910){_0x3ce49e=_0x945910[_0x5ca8('0x32')];if(!_0x533aca[_0x5ca8('0x2c')][_0x5ca8('0x33')](_0x5ca8('0x34'))){_0x38c45f[_0x5ca8('0x18')]=qs[_0x5ca8('0x18')](_0x533aca[_0x5ca8('0x2c')]['limit']);_0x38c45f[_0x5ca8('0x35')]=qs[_0x5ca8('0x35')](_0x533aca[_0x5ca8('0x2c')][_0x5ca8('0x35')]);}return _0x16649d[_0x5ca8('0x49')](_0x38c45f);}})['then'](function(_0x51dcb4){if(_0x51dcb4){return _0x51dcb4?{'count':_0x3ce49e,'rows':_0x51dcb4}:null;}})['then'](respondWithResult(_0x336c74,null))[_0x5ca8('0x3e')](handleError(_0x336c74,null));};exports['getSubjects']=function(_0x59602b,_0x3d587d,_0x5c5ab4){var _0x569e32={};var _0x2dad75={};var _0x264632;var _0x1e85fb;return db[_0x5ca8('0x25')][_0x5ca8('0x46')]({'where':{'id':_0x59602b[_0x5ca8('0x40')]['id']}})['then'](handleEntityNotFound(_0x3d587d,null))['then'](function(_0x5ee084){if(_0x5ee084){_0x264632=_0x5ee084;_0x2dad75[_0x5ca8('0x2a')]=_[_0x5ca8('0x2d')](db[_0x5ca8('0x47')][_0x5ca8('0x26')]);_0x2dad75['query']=_[_0x5ca8('0x2d')](_0x59602b[_0x5ca8('0x2c')]);_0x2dad75[_0x5ca8('0x2e')]=_['intersection'](_0x2dad75[_0x5ca8('0x2a')],_0x2dad75['query']);_0x569e32[_0x5ca8('0x31')]=_[_0x5ca8('0x2f')](_0x2dad75[_0x5ca8('0x2a')],qs[_0x5ca8('0x30')](_0x59602b[_0x5ca8('0x2c')][_0x5ca8('0x30')]));_0x569e32[_0x5ca8('0x31')]=_0x569e32[_0x5ca8('0x31')][_0x5ca8('0x32')]?_0x569e32[_0x5ca8('0x31')]:_0x2dad75[_0x5ca8('0x2a')];_0x569e32[_0x5ca8('0x36')]=qs[_0x5ca8('0x37')](_0x59602b[_0x5ca8('0x2c')][_0x5ca8('0x37')]);_0x569e32[_0x5ca8('0x38')]=qs[_0x5ca8('0x2e')](_[_0x5ca8('0x48')](_0x59602b[_0x5ca8('0x2c')],_0x2dad75['filters']));if(_0x59602b[_0x5ca8('0x2c')][_0x5ca8('0x39')]){_0x569e32[_0x5ca8('0x38')]=_[_0x5ca8('0x42')](_0x569e32[_0x5ca8('0x38')],{'$or':_[_0x5ca8('0x2b')](_0x569e32[_0x5ca8('0x31')],function(_0x206a5d){var _0x576c1c={};_0x576c1c[_0x206a5d]={'$like':'%'+_0x59602b[_0x5ca8('0x2c')][_0x5ca8('0x39')]+'%'};return _0x576c1c;})});}_0x569e32=_[_0x5ca8('0x42')]({},_0x569e32,_0x59602b[_0x5ca8('0x3b')]);return _0x264632[_0x5ca8('0x4a')](_0x569e32);}})[_0x5ca8('0x1f')](function(_0x56217e){if(_0x56217e){_0x1e85fb=_0x56217e[_0x5ca8('0x32')];if(!_0x59602b[_0x5ca8('0x2c')][_0x5ca8('0x33')](_0x5ca8('0x34'))){_0x569e32[_0x5ca8('0x18')]=qs[_0x5ca8('0x18')](_0x59602b['query'][_0x5ca8('0x18')]);_0x569e32['offset']=qs[_0x5ca8('0x35')](_0x59602b[_0x5ca8('0x2c')][_0x5ca8('0x35')]);}return _0x264632['getSubjects'](_0x569e32);}})[_0x5ca8('0x1f')](function(_0x13785f){if(_0x13785f){return _0x13785f?{'count':_0x1e85fb,'rows':_0x13785f}:null;}})['then'](respondWithResult(_0x3d587d,null))[_0x5ca8('0x3e')](handleError(_0x3d587d,null));};exports[_0x5ca8('0x4b')]=function(_0x166cdf,_0x3dc65f,_0x4df575){var _0x4efa14={};var _0x21462d={};var _0x1e31b5;var _0x476fa9;return db[_0x5ca8('0x25')][_0x5ca8('0x46')]({'where':{'id':_0x166cdf[_0x5ca8('0x40')]['id']}})[_0x5ca8('0x1f')](handleEntityNotFound(_0x3dc65f,null))[_0x5ca8('0x1f')](function(_0x5304df){if(_0x5304df){_0x1e31b5=_0x5304df;_0x21462d[_0x5ca8('0x2a')]=_[_0x5ca8('0x2d')](db[_0x5ca8('0x47')]['rawAttributes']);_0x21462d['query']=_[_0x5ca8('0x2d')](_0x166cdf[_0x5ca8('0x2c')]);_0x21462d['filters']=_[_0x5ca8('0x2f')](_0x21462d['model'],_0x21462d[_0x5ca8('0x2c')]);_0x4efa14[_0x5ca8('0x31')]=_[_0x5ca8('0x2f')](_0x21462d[_0x5ca8('0x2a')],qs[_0x5ca8('0x30')](_0x166cdf['query']['fields']));_0x4efa14[_0x5ca8('0x31')]=_0x4efa14[_0x5ca8('0x31')][_0x5ca8('0x32')]?_0x4efa14[_0x5ca8('0x31')]:_0x21462d[_0x5ca8('0x2a')];_0x4efa14[_0x5ca8('0x36')]=qs['sort'](_0x166cdf[_0x5ca8('0x2c')]['sort']);_0x4efa14[_0x5ca8('0x38')]=qs['filters'](_[_0x5ca8('0x48')](_0x166cdf[_0x5ca8('0x2c')],_0x21462d[_0x5ca8('0x2e')]));if(_0x166cdf[_0x5ca8('0x2c')][_0x5ca8('0x39')]){_0x4efa14[_0x5ca8('0x38')]=_[_0x5ca8('0x42')](_0x4efa14[_0x5ca8('0x38')],{'$or':_[_0x5ca8('0x2b')](_0x4efa14[_0x5ca8('0x31')],function(_0x1a6085){var _0x4b5d77={};_0x4b5d77[_0x1a6085]={'$like':'%'+_0x166cdf['query'][_0x5ca8('0x39')]+'%'};return _0x4b5d77;})});}_0x4efa14=_[_0x5ca8('0x42')]({},_0x4efa14,_0x166cdf['options']);return _0x1e31b5[_0x5ca8('0x4b')](_0x4efa14);}})['then'](function(_0xa7264b){if(_0xa7264b){_0x476fa9=_0xa7264b[_0x5ca8('0x32')];if(!_0x166cdf[_0x5ca8('0x2c')][_0x5ca8('0x33')](_0x5ca8('0x34'))){_0x4efa14['limit']=qs['limit'](_0x166cdf['query'][_0x5ca8('0x18')]);_0x4efa14[_0x5ca8('0x35')]=qs['offset'](_0x166cdf[_0x5ca8('0x2c')][_0x5ca8('0x35')]);}return _0x1e31b5[_0x5ca8('0x4b')](_0x4efa14);}})['then'](function(_0x119796){if(_0x119796){return _0x119796?{'count':_0x476fa9,'rows':_0x119796}:null;}})[_0x5ca8('0x1f')](respondWithResult(_0x3dc65f,null))[_0x5ca8('0x3e')](handleError(_0x3dc65f,null));};