7eb1d699e27cd9fc59a0cf41420cab6c7341d21c
[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 _0x94c4=['stack','name','map','ServicenowConfiguration','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','fields','find','create','body','getFields','findOne','sort','getSubjects','ServicenowField','rimraf','zip-dir','fast-json-patch','moment','mustache','util','to-csv','fs-extra','lodash','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','apply','reject','save','update','then','destroy'];(function(_0x564e89,_0x2fc282){var _0x2b222d=function(_0x357796){while(--_0x357796){_0x564e89['push'](_0x564e89['shift']());}};_0x2b222d(++_0x2fc282);}(_0x94c4,0x102));var _0x494c=function(_0x1628f6,_0x56a603){_0x1628f6=_0x1628f6-0x0;var _0x10ae25=_0x94c4[_0x1628f6];return _0x10ae25;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x494c('0x0'));var zipdir=require(_0x494c('0x1'));var jsonpatch=require(_0x494c('0x2'));var rp=require('request-promise');var moment=require(_0x494c('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x494c('0x4'));var util=require(_0x494c('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x494c('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x494c('0x7'));var _=require(_0x494c('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x494c('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x494c('0x6'));var querystring=require(_0x494c('0xa'));var Papa=require(_0x494c('0xb'));var Redis=require('ioredis');var authService=require(_0x494c('0xc'));var qs=require(_0x494c('0xd'));var as=require(_0x494c('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x494c('0xf'))(_0x494c('0x10'));var utils=require(_0x494c('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x494c('0x12'));var db=require(_0x494c('0x13'))['db'];function respondWithStatusCode(_0x3c9cad,_0xa5e81b){_0xa5e81b=_0xa5e81b||0xcc;return function(_0x4fa74b){if(_0x4fa74b){return _0x3c9cad[_0x494c('0x14')](_0xa5e81b);}return _0x3c9cad[_0x494c('0x15')](_0xa5e81b)['end']();};}function respondWithResult(_0x49b30e,_0x54f3a6){_0x54f3a6=_0x54f3a6||0xc8;return function(_0x7a74a4){if(_0x7a74a4){return _0x49b30e[_0x494c('0x15')](_0x54f3a6)[_0x494c('0x16')](_0x7a74a4);}};}function respondWithFilteredResult(_0x28fd16,_0x37d2ec){return function(_0x5006d8){if(_0x5006d8){var _0x4e8dc3=typeof _0x37d2ec['offset']===_0x494c('0x17')&&typeof _0x37d2ec[_0x494c('0x18')]===_0x494c('0x17');var _0x3e62ae=_0x5006d8[_0x494c('0x19')];var _0x2101a9=_0x4e8dc3?0x0:_0x37d2ec[_0x494c('0x1a')];var _0x1f48c7=_0x4e8dc3?_0x5006d8[_0x494c('0x19')]:_0x37d2ec[_0x494c('0x1a')]+_0x37d2ec[_0x494c('0x18')];var _0xd516a4;if(_0x1f48c7>=_0x3e62ae){_0x1f48c7=_0x3e62ae;_0xd516a4=0xc8;}else{_0xd516a4=0xce;}_0x28fd16['status'](_0xd516a4);return _0x28fd16[_0x494c('0x1b')]('Content-Range',_0x2101a9+'-'+_0x1f48c7+'/'+_0x3e62ae)[_0x494c('0x16')](_0x5006d8);}return null;};}function patchUpdates(_0x18c746){return function(_0x4603e0){try{jsonpatch[_0x494c('0x1c')](_0x4603e0,_0x18c746,!![]);}catch(_0x45c67d){return BPromise[_0x494c('0x1d')](_0x45c67d);}return _0x4603e0[_0x494c('0x1e')]();};}function saveUpdates(_0x108182,_0x21be71){return function(_0x3e1bb9){if(_0x3e1bb9){return _0x3e1bb9[_0x494c('0x1f')](_0x108182)[_0x494c('0x20')](function(_0xeddbe0){return _0xeddbe0;});}return null;};}function removeEntity(_0x5b1e32,_0x9a521){return function(_0x256fe6){if(_0x256fe6){return _0x256fe6[_0x494c('0x21')]()[_0x494c('0x20')](function(){_0x5b1e32[_0x494c('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51f134,_0x403bdd){return function(_0x3a16ca){if(!_0x3a16ca){_0x51f134['sendStatus'](0x194);}return _0x3a16ca;};}function handleError(_0x25fe3b,_0x5b9856){_0x5b9856=_0x5b9856||0x1f4;return function(_0x4e6adf){logger['error'](_0x4e6adf[_0x494c('0x22')]);if(_0x4e6adf[_0x494c('0x23')]){delete _0x4e6adf[_0x494c('0x23')];}_0x25fe3b[_0x494c('0x15')](_0x5b9856)['send'](_0x4e6adf);};}exports['index']=function(_0x1bbfbf,_0x5d726e){var _0x2a4d1f={},_0x2fee9a={},_0xd1ee51={'count':0x0,'rows':[]};var _0x19a97b=_[_0x494c('0x24')](db[_0x494c('0x25')][_0x494c('0x26')],function(_0x315e79){return{'name':_0x315e79[_0x494c('0x27')],'type':_0x315e79[_0x494c('0x28')][_0x494c('0x29')]};});_0x2fee9a['model']=_[_0x494c('0x24')](_0x19a97b,'name');_0x2fee9a[_0x494c('0x2a')]=_['keys'](_0x1bbfbf[_0x494c('0x2a')]);_0x2fee9a[_0x494c('0x2b')]=_[_0x494c('0x2c')](_0x2fee9a[_0x494c('0x2d')],_0x2fee9a[_0x494c('0x2a')]);_0x2a4d1f['attributes']=_[_0x494c('0x2c')](_0x2fee9a[_0x494c('0x2d')],qs['fields'](_0x1bbfbf[_0x494c('0x2a')]['fields']));_0x2a4d1f[_0x494c('0x2e')]=_0x2a4d1f[_0x494c('0x2e')][_0x494c('0x2f')]?_0x2a4d1f[_0x494c('0x2e')]:_0x2fee9a[_0x494c('0x2d')];if(!_0x1bbfbf[_0x494c('0x2a')][_0x494c('0x30')](_0x494c('0x31'))){_0x2a4d1f[_0x494c('0x18')]=qs[_0x494c('0x18')](_0x1bbfbf[_0x494c('0x2a')][_0x494c('0x18')]);_0x2a4d1f[_0x494c('0x1a')]=qs['offset'](_0x1bbfbf['query']['offset']);}_0x2a4d1f[_0x494c('0x32')]=qs['sort'](_0x1bbfbf['query']['sort']);_0x2a4d1f[_0x494c('0x33')]=qs[_0x494c('0x2b')](_[_0x494c('0x34')](_0x1bbfbf['query'],_0x2fee9a[_0x494c('0x2b')]),_0x19a97b);if(_0x1bbfbf[_0x494c('0x2a')][_0x494c('0x35')]){_0x2a4d1f[_0x494c('0x33')]=_[_0x494c('0x36')](_0x2a4d1f['where'],{'$or':_[_0x494c('0x24')](_0x19a97b,function(_0x3958dd){if(_0x3958dd[_0x494c('0x28')]!==_0x494c('0x37')){var _0x21c0ec={};_0x21c0ec[_0x3958dd[_0x494c('0x23')]]={'$like':'%'+_0x1bbfbf[_0x494c('0x2a')][_0x494c('0x35')]+'%'};return _0x21c0ec;}})});}_0x2a4d1f=_['merge']({},_0x2a4d1f,_0x1bbfbf[_0x494c('0x38')]);var _0x3daec0={'where':_0x2a4d1f[_0x494c('0x33')]};return db[_0x494c('0x25')][_0x494c('0x19')](_0x3daec0)[_0x494c('0x20')](function(_0x11121e){_0xd1ee51[_0x494c('0x19')]=_0x11121e;if(_0x1bbfbf[_0x494c('0x2a')][_0x494c('0x39')]){_0x2a4d1f[_0x494c('0x3a')]=[{'all':!![]}];}return db[_0x494c('0x25')]['findAll'](_0x2a4d1f);})[_0x494c('0x20')](function(_0x44f6ec){_0xd1ee51[_0x494c('0x3b')]=_0x44f6ec;return _0xd1ee51;})['then'](respondWithFilteredResult(_0x5d726e,_0x2a4d1f))[_0x494c('0x3c')](handleError(_0x5d726e,null));};exports[_0x494c('0x3d')]=function(_0x5479a2,_0x3236c4){var _0x3018ac={'raw':![],'where':{'id':_0x5479a2[_0x494c('0x3e')]['id']}},_0x3cc784={};_0x3cc784[_0x494c('0x2d')]=_[_0x494c('0x3f')](db['ServicenowConfiguration'][_0x494c('0x26')]);_0x3cc784[_0x494c('0x2a')]=_[_0x494c('0x3f')](_0x5479a2[_0x494c('0x2a')]);_0x3cc784[_0x494c('0x2b')]=_[_0x494c('0x2c')](_0x3cc784[_0x494c('0x2d')],_0x3cc784['query']);_0x3018ac[_0x494c('0x2e')]=_[_0x494c('0x2c')](_0x3cc784['model'],qs[_0x494c('0x40')](_0x5479a2[_0x494c('0x2a')][_0x494c('0x40')]));_0x3018ac[_0x494c('0x2e')]=_0x3018ac[_0x494c('0x2e')][_0x494c('0x2f')]?_0x3018ac[_0x494c('0x2e')]:_0x3cc784[_0x494c('0x2d')];if(_0x5479a2['query'][_0x494c('0x39')]){_0x3018ac['include']=[{'all':!![]}];}_0x3018ac=_[_0x494c('0x36')]({},_0x3018ac,_0x5479a2[_0x494c('0x38')]);return db[_0x494c('0x25')][_0x494c('0x41')](_0x3018ac)['then'](handleEntityNotFound(_0x3236c4,null))['then'](respondWithResult(_0x3236c4,null))['catch'](handleError(_0x3236c4,null));};exports[_0x494c('0x42')]=function(_0x147356,_0x555147){return db[_0x494c('0x25')][_0x494c('0x42')](_0x147356[_0x494c('0x43')],{})['then'](respondWithResult(_0x555147,0xc9))[_0x494c('0x3c')](handleError(_0x555147,null));};exports['update']=function(_0x1f5641,_0x598e83){if(_0x1f5641[_0x494c('0x43')]['id']){delete _0x1f5641[_0x494c('0x43')]['id'];}return db[_0x494c('0x25')]['find']({'where':{'id':_0x1f5641[_0x494c('0x3e')]['id']}})[_0x494c('0x20')](handleEntityNotFound(_0x598e83,null))['then'](saveUpdates(_0x1f5641['body'],null))[_0x494c('0x20')](respondWithResult(_0x598e83,null))[_0x494c('0x3c')](handleError(_0x598e83,null));};exports[_0x494c('0x21')]=function(_0x3fc988,_0x4a6119){return db[_0x494c('0x25')][_0x494c('0x41')]({'where':{'id':_0x3fc988[_0x494c('0x3e')]['id']}})[_0x494c('0x20')](handleEntityNotFound(_0x4a6119,null))[_0x494c('0x20')](removeEntity(_0x4a6119,null))['catch'](handleError(_0x4a6119,null));};exports[_0x494c('0x44')]=function(_0x4f6973,_0x1ba73b,_0x5b0cdf){var _0xca0cc7={};var _0x78e865={};var _0x517896;var _0x205eb1;return db[_0x494c('0x25')][_0x494c('0x45')]({'where':{'id':_0x4f6973[_0x494c('0x3e')]['id']}})[_0x494c('0x20')](handleEntityNotFound(_0x1ba73b,null))[_0x494c('0x20')](function(_0x32de84){if(_0x32de84){_0x517896=_0x32de84;_0x78e865[_0x494c('0x2d')]=_[_0x494c('0x3f')](db['ServicenowField'][_0x494c('0x26')]);_0x78e865[_0x494c('0x2a')]=_['keys'](_0x4f6973[_0x494c('0x2a')]);_0x78e865[_0x494c('0x2b')]=_['intersection'](_0x78e865['model'],_0x78e865[_0x494c('0x2a')]);_0xca0cc7['attributes']=_[_0x494c('0x2c')](_0x78e865[_0x494c('0x2d')],qs[_0x494c('0x40')](_0x4f6973['query'][_0x494c('0x40')]));_0xca0cc7[_0x494c('0x2e')]=_0xca0cc7[_0x494c('0x2e')]['length']?_0xca0cc7[_0x494c('0x2e')]:_0x78e865[_0x494c('0x2d')];_0xca0cc7['order']=qs[_0x494c('0x46')](_0x4f6973[_0x494c('0x2a')]['sort']);_0xca0cc7[_0x494c('0x33')]=qs[_0x494c('0x2b')](_[_0x494c('0x34')](_0x4f6973['query'],_0x78e865['filters']));if(_0x4f6973['query']['filter']){_0xca0cc7[_0x494c('0x33')]=_['merge'](_0xca0cc7[_0x494c('0x33')],{'$or':_[_0x494c('0x24')](_0xca0cc7[_0x494c('0x2e')],function(_0x499556){var _0x58481b={};_0x58481b[_0x499556]={'$like':'%'+_0x4f6973['query']['filter']+'%'};return _0x58481b;})});}_0xca0cc7=_[_0x494c('0x36')]({},_0xca0cc7,_0x4f6973[_0x494c('0x38')]);return _0x517896[_0x494c('0x44')](_0xca0cc7);}})[_0x494c('0x20')](function(_0x1fa41e){if(_0x1fa41e){_0x205eb1=_0x1fa41e[_0x494c('0x2f')];if(!_0x4f6973[_0x494c('0x2a')]['hasOwnProperty'](_0x494c('0x31'))){_0xca0cc7[_0x494c('0x18')]=qs[_0x494c('0x18')](_0x4f6973['query'][_0x494c('0x18')]);_0xca0cc7['offset']=qs[_0x494c('0x1a')](_0x4f6973[_0x494c('0x2a')][_0x494c('0x1a')]);}return _0x517896[_0x494c('0x44')](_0xca0cc7);}})[_0x494c('0x20')](function(_0x1b6960){if(_0x1b6960){return _0x1b6960?{'count':_0x205eb1,'rows':_0x1b6960}:null;}})[_0x494c('0x20')](respondWithResult(_0x1ba73b,null))['catch'](handleError(_0x1ba73b,null));};exports[_0x494c('0x47')]=function(_0x4f2115,_0x227ebd,_0x3b3786){var _0x4e9700={};var _0x39315e={};var _0x5c88e0;var _0x5a3b94;return db[_0x494c('0x25')]['findOne']({'where':{'id':_0x4f2115[_0x494c('0x3e')]['id']}})[_0x494c('0x20')](handleEntityNotFound(_0x227ebd,null))[_0x494c('0x20')](function(_0x1420e4){if(_0x1420e4){_0x5c88e0=_0x1420e4;_0x39315e[_0x494c('0x2d')]=_['keys'](db[_0x494c('0x48')][_0x494c('0x26')]);_0x39315e[_0x494c('0x2a')]=_[_0x494c('0x3f')](_0x4f2115['query']);_0x39315e[_0x494c('0x2b')]=_[_0x494c('0x2c')](_0x39315e[_0x494c('0x2d')],_0x39315e[_0x494c('0x2a')]);_0x4e9700['attributes']=_[_0x494c('0x2c')](_0x39315e[_0x494c('0x2d')],qs['fields'](_0x4f2115[_0x494c('0x2a')][_0x494c('0x40')]));_0x4e9700[_0x494c('0x2e')]=_0x4e9700[_0x494c('0x2e')][_0x494c('0x2f')]?_0x4e9700[_0x494c('0x2e')]:_0x39315e[_0x494c('0x2d')];_0x4e9700[_0x494c('0x32')]=qs[_0x494c('0x46')](_0x4f2115[_0x494c('0x2a')]['sort']);_0x4e9700['where']=qs[_0x494c('0x2b')](_[_0x494c('0x34')](_0x4f2115[_0x494c('0x2a')],_0x39315e[_0x494c('0x2b')]));if(_0x4f2115['query'][_0x494c('0x35')]){_0x4e9700[_0x494c('0x33')]=_[_0x494c('0x36')](_0x4e9700[_0x494c('0x33')],{'$or':_[_0x494c('0x24')](_0x4e9700[_0x494c('0x2e')],function(_0x4db632){var _0x57043f={};_0x57043f[_0x4db632]={'$like':'%'+_0x4f2115[_0x494c('0x2a')][_0x494c('0x35')]+'%'};return _0x57043f;})});}_0x4e9700=_[_0x494c('0x36')]({},_0x4e9700,_0x4f2115[_0x494c('0x38')]);return _0x5c88e0[_0x494c('0x47')](_0x4e9700);}})[_0x494c('0x20')](function(_0x554646){if(_0x554646){_0x5a3b94=_0x554646[_0x494c('0x2f')];if(!_0x4f2115[_0x494c('0x2a')][_0x494c('0x30')](_0x494c('0x31'))){_0x4e9700[_0x494c('0x18')]=qs[_0x494c('0x18')](_0x4f2115[_0x494c('0x2a')]['limit']);_0x4e9700['offset']=qs[_0x494c('0x1a')](_0x4f2115[_0x494c('0x2a')][_0x494c('0x1a')]);}return _0x5c88e0[_0x494c('0x47')](_0x4e9700);}})[_0x494c('0x20')](function(_0xf0d0aa){if(_0xf0d0aa){return _0xf0d0aa?{'count':_0x5a3b94,'rows':_0xf0d0aa}:null;}})['then'](respondWithResult(_0x227ebd,null))[_0x494c('0x3c')](handleError(_0x227ebd,null));};exports['getDescriptions']=function(_0x3182ac,_0x4bf2f8,_0x1d6f66){var _0x5a7997={};var _0xc20875={};var _0x27ae53;var _0x4d37bd;return db[_0x494c('0x25')]['findOne']({'where':{'id':_0x3182ac['params']['id']}})[_0x494c('0x20')](handleEntityNotFound(_0x4bf2f8,null))['then'](function(_0x2862db){if(_0x2862db){_0x27ae53=_0x2862db;_0xc20875[_0x494c('0x2d')]=_[_0x494c('0x3f')](db['ServicenowField'][_0x494c('0x26')]);_0xc20875[_0x494c('0x2a')]=_[_0x494c('0x3f')](_0x3182ac[_0x494c('0x2a')]);_0xc20875[_0x494c('0x2b')]=_[_0x494c('0x2c')](_0xc20875['model'],_0xc20875[_0x494c('0x2a')]);_0x5a7997[_0x494c('0x2e')]=_[_0x494c('0x2c')](_0xc20875['model'],qs[_0x494c('0x40')](_0x3182ac[_0x494c('0x2a')][_0x494c('0x40')]));_0x5a7997['attributes']=_0x5a7997[_0x494c('0x2e')][_0x494c('0x2f')]?_0x5a7997[_0x494c('0x2e')]:_0xc20875['model'];_0x5a7997[_0x494c('0x32')]=qs[_0x494c('0x46')](_0x3182ac[_0x494c('0x2a')][_0x494c('0x46')]);_0x5a7997[_0x494c('0x33')]=qs[_0x494c('0x2b')](_[_0x494c('0x34')](_0x3182ac[_0x494c('0x2a')],_0xc20875[_0x494c('0x2b')]));if(_0x3182ac[_0x494c('0x2a')][_0x494c('0x35')]){_0x5a7997[_0x494c('0x33')]=_[_0x494c('0x36')](_0x5a7997[_0x494c('0x33')],{'$or':_[_0x494c('0x24')](_0x5a7997[_0x494c('0x2e')],function(_0x362695){var _0x1a5c9c={};_0x1a5c9c[_0x362695]={'$like':'%'+_0x3182ac[_0x494c('0x2a')][_0x494c('0x35')]+'%'};return _0x1a5c9c;})});}_0x5a7997=_[_0x494c('0x36')]({},_0x5a7997,_0x3182ac['options']);return _0x27ae53['getDescriptions'](_0x5a7997);}})[_0x494c('0x20')](function(_0x574a82){if(_0x574a82){_0x4d37bd=_0x574a82['length'];if(!_0x3182ac['query']['hasOwnProperty'](_0x494c('0x31'))){_0x5a7997[_0x494c('0x18')]=qs[_0x494c('0x18')](_0x3182ac[_0x494c('0x2a')][_0x494c('0x18')]);_0x5a7997[_0x494c('0x1a')]=qs[_0x494c('0x1a')](_0x3182ac['query'][_0x494c('0x1a')]);}return _0x27ae53['getDescriptions'](_0x5a7997);}})[_0x494c('0x20')](function(_0x1ba833){if(_0x1ba833){return _0x1ba833?{'count':_0x4d37bd,'rows':_0x1ba833}:null;}})['then'](respondWithResult(_0x4bf2f8,null))[_0x494c('0x3c')](handleError(_0x4bf2f8,null));};