48ad51e40a2c798511ac83a67c33d07dbdc8c5ab
[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 _0xdbdf=['ServicenowField','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','destroy','then','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','ServicenowConfiguration','includeAll','include','findAll','rows','catch','show','params','options','find','body','getFields','findOne'];(function(_0x29abe1,_0x1660e9){var _0x3d614c=function(_0x3d8359){while(--_0x3d8359){_0x29abe1['push'](_0x29abe1['shift']());}};_0x3d614c(++_0x1660e9);}(_0xdbdf,0xf6));var _0xfdbd=function(_0x58ef64,_0x47c44e){_0x58ef64=_0x58ef64-0x0;var _0x51584b=_0xdbdf[_0x58ef64];return _0x51584b;};'use strict';var emlformat=require(_0xfdbd('0x0'));var rimraf=require(_0xfdbd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfdbd('0x2'));var rp=require('request-promise');var moment=require(_0xfdbd('0x3'));var BPromise=require(_0xfdbd('0x4'));var Mustache=require(_0xfdbd('0x5'));var util=require('util');var path=require(_0xfdbd('0x6'));var sox=require(_0xfdbd('0x7'));var csv=require(_0xfdbd('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfdbd('0x9'));var squel=require(_0xfdbd('0xa'));var crypto=require('crypto');var jsforce=require(_0xfdbd('0xb'));var deskjs=require(_0xfdbd('0xc'));var toCsv=require(_0xfdbd('0x8'));var querystring=require(_0xfdbd('0xd'));var Papa=require(_0xfdbd('0xe'));var Redis=require(_0xfdbd('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xfdbd('0x10'));var as=require(_0xfdbd('0x11'));var hardwareService=require(_0xfdbd('0x12'));var logger=require(_0xfdbd('0x13'))(_0xfdbd('0x14'));var utils=require(_0xfdbd('0x15'));var config=require(_0xfdbd('0x16'));var licenseUtil=require(_0xfdbd('0x17'));var db=require(_0xfdbd('0x18'))['db'];function respondWithStatusCode(_0x2717e1,_0x44f931){_0x44f931=_0x44f931||0xcc;return function(_0x1bf8f5){if(_0x1bf8f5){return _0x2717e1[_0xfdbd('0x19')](_0x44f931);}return _0x2717e1['status'](_0x44f931)[_0xfdbd('0x1a')]();};}function respondWithResult(_0x303896,_0x217cc3){_0x217cc3=_0x217cc3||0xc8;return function(_0x320725){if(_0x320725){return _0x303896[_0xfdbd('0x1b')](_0x217cc3)[_0xfdbd('0x1c')](_0x320725);}};}function respondWithFilteredResult(_0xc91d55,_0x462ce2){return function(_0x2a3052){if(_0x2a3052){var _0x43495b=typeof _0x462ce2[_0xfdbd('0x1d')]===_0xfdbd('0x1e')&&typeof _0x462ce2[_0xfdbd('0x1f')]===_0xfdbd('0x1e');var _0x8d2c6a=_0x2a3052[_0xfdbd('0x20')];var _0x3bd54b=_0x43495b?0x0:_0x462ce2['offset'];var _0x5e9659=_0x43495b?_0x2a3052['count']:_0x462ce2[_0xfdbd('0x1d')]+_0x462ce2[_0xfdbd('0x1f')];var _0xd51b29;if(_0x5e9659>=_0x8d2c6a){_0x5e9659=_0x8d2c6a;_0xd51b29=0xc8;}else{_0xd51b29=0xce;}_0xc91d55[_0xfdbd('0x1b')](_0xd51b29);return _0xc91d55[_0xfdbd('0x21')](_0xfdbd('0x22'),_0x3bd54b+'-'+_0x5e9659+'/'+_0x8d2c6a)[_0xfdbd('0x1c')](_0x2a3052);}return null;};}function patchUpdates(_0x5943a3){return function(_0x3efe3c){try{jsonpatch[_0xfdbd('0x23')](_0x3efe3c,_0x5943a3,!![]);}catch(_0x32c793){return BPromise['reject'](_0x32c793);}return _0x3efe3c['save']();};}function saveUpdates(_0xb9a53b,_0x1dc1ce){return function(_0x15d00f){if(_0x15d00f){return _0x15d00f[_0xfdbd('0x24')](_0xb9a53b)['then'](function(_0x160d7e){return _0x160d7e;});}return null;};}function removeEntity(_0x44b132,_0x2c651d){return function(_0x89612d){if(_0x89612d){return _0x89612d[_0xfdbd('0x25')]()[_0xfdbd('0x26')](function(){_0x44b132[_0xfdbd('0x1b')](0xcc)[_0xfdbd('0x1a')]();});}};}function handleEntityNotFound(_0x472ec2,_0x2116cc){return function(_0x1dba73){if(!_0x1dba73){_0x472ec2[_0xfdbd('0x19')](0x194);}return _0x1dba73;};}function handleError(_0x32f35c,_0x1a0b9f){_0x1a0b9f=_0x1a0b9f||0x1f4;return function(_0x4708e8){logger[_0xfdbd('0x27')](_0x4708e8[_0xfdbd('0x28')]);if(_0x4708e8[_0xfdbd('0x29')]){delete _0x4708e8[_0xfdbd('0x29')];}_0x32f35c[_0xfdbd('0x1b')](_0x1a0b9f)[_0xfdbd('0x2a')](_0x4708e8);};}exports[_0xfdbd('0x2b')]=function(_0x4a3fb2,_0x2bcd94){var _0x23925b={},_0x2e01af={},_0x275b31={'count':0x0,'rows':[]};var _0xfcf12d=_[_0xfdbd('0x2c')](db['ServicenowConfiguration'][_0xfdbd('0x2d')],function(_0x293fa0){return{'name':_0x293fa0['fieldName'],'type':_0x293fa0[_0xfdbd('0x2e')][_0xfdbd('0x2f')]};});_0x2e01af[_0xfdbd('0x30')]=_[_0xfdbd('0x2c')](_0xfcf12d,_0xfdbd('0x29'));_0x2e01af[_0xfdbd('0x31')]=_[_0xfdbd('0x32')](_0x4a3fb2['query']);_0x2e01af[_0xfdbd('0x33')]=_[_0xfdbd('0x34')](_0x2e01af[_0xfdbd('0x30')],_0x2e01af[_0xfdbd('0x31')]);_0x23925b[_0xfdbd('0x35')]=_[_0xfdbd('0x34')](_0x2e01af[_0xfdbd('0x30')],qs[_0xfdbd('0x36')](_0x4a3fb2[_0xfdbd('0x31')][_0xfdbd('0x36')]));_0x23925b[_0xfdbd('0x35')]=_0x23925b['attributes'][_0xfdbd('0x37')]?_0x23925b[_0xfdbd('0x35')]:_0x2e01af[_0xfdbd('0x30')];if(!_0x4a3fb2[_0xfdbd('0x31')][_0xfdbd('0x38')](_0xfdbd('0x39'))){_0x23925b[_0xfdbd('0x1f')]=qs['limit'](_0x4a3fb2[_0xfdbd('0x31')][_0xfdbd('0x1f')]);_0x23925b[_0xfdbd('0x1d')]=qs[_0xfdbd('0x1d')](_0x4a3fb2[_0xfdbd('0x31')]['offset']);}_0x23925b[_0xfdbd('0x3a')]=qs[_0xfdbd('0x3b')](_0x4a3fb2[_0xfdbd('0x31')][_0xfdbd('0x3b')]);_0x23925b[_0xfdbd('0x3c')]=qs[_0xfdbd('0x33')](_[_0xfdbd('0x3d')](_0x4a3fb2[_0xfdbd('0x31')],_0x2e01af['filters']),_0xfcf12d);if(_0x4a3fb2[_0xfdbd('0x31')]['filter']){_0x23925b[_0xfdbd('0x3c')]=_[_0xfdbd('0x3e')](_0x23925b['where'],{'$or':_[_0xfdbd('0x2c')](_0xfcf12d,function(_0x30a407){if(_0x30a407[_0xfdbd('0x2e')]!==_0xfdbd('0x3f')){var _0x2e1958={};_0x2e1958[_0x30a407['name']]={'$like':'%'+_0x4a3fb2[_0xfdbd('0x31')][_0xfdbd('0x40')]+'%'};return _0x2e1958;}})});}_0x23925b=_[_0xfdbd('0x3e')]({},_0x23925b,_0x4a3fb2['options']);var _0x29296e={'where':_0x23925b[_0xfdbd('0x3c')]};return db[_0xfdbd('0x41')][_0xfdbd('0x20')](_0x29296e)[_0xfdbd('0x26')](function(_0xb307eb){_0x275b31[_0xfdbd('0x20')]=_0xb307eb;if(_0x4a3fb2['query'][_0xfdbd('0x42')]){_0x23925b[_0xfdbd('0x43')]=[{'all':!![]}];}return db['ServicenowConfiguration'][_0xfdbd('0x44')](_0x23925b);})[_0xfdbd('0x26')](function(_0x41d4f4){_0x275b31[_0xfdbd('0x45')]=_0x41d4f4;return _0x275b31;})['then'](respondWithFilteredResult(_0x2bcd94,_0x23925b))[_0xfdbd('0x46')](handleError(_0x2bcd94,null));};exports[_0xfdbd('0x47')]=function(_0x465f25,_0x40ceaf){var _0x5f133f={'raw':![],'where':{'id':_0x465f25[_0xfdbd('0x48')]['id']}},_0x344e0e={};_0x344e0e[_0xfdbd('0x30')]=_[_0xfdbd('0x32')](db[_0xfdbd('0x41')]['rawAttributes']);_0x344e0e[_0xfdbd('0x31')]=_[_0xfdbd('0x32')](_0x465f25['query']);_0x344e0e['filters']=_[_0xfdbd('0x34')](_0x344e0e['model'],_0x344e0e[_0xfdbd('0x31')]);_0x5f133f[_0xfdbd('0x35')]=_[_0xfdbd('0x34')](_0x344e0e[_0xfdbd('0x30')],qs[_0xfdbd('0x36')](_0x465f25[_0xfdbd('0x31')][_0xfdbd('0x36')]));_0x5f133f[_0xfdbd('0x35')]=_0x5f133f[_0xfdbd('0x35')][_0xfdbd('0x37')]?_0x5f133f[_0xfdbd('0x35')]:_0x344e0e[_0xfdbd('0x30')];if(_0x465f25[_0xfdbd('0x31')][_0xfdbd('0x42')]){_0x5f133f['include']=[{'all':!![]}];}_0x5f133f=_[_0xfdbd('0x3e')]({},_0x5f133f,_0x465f25[_0xfdbd('0x49')]);return db['ServicenowConfiguration'][_0xfdbd('0x4a')](_0x5f133f)[_0xfdbd('0x26')](handleEntityNotFound(_0x40ceaf,null))[_0xfdbd('0x26')](respondWithResult(_0x40ceaf,null))[_0xfdbd('0x46')](handleError(_0x40ceaf,null));};exports['create']=function(_0xbb9853,_0x3aa05c){return db[_0xfdbd('0x41')]['create'](_0xbb9853['body'],{})[_0xfdbd('0x26')](respondWithResult(_0x3aa05c,0xc9))['catch'](handleError(_0x3aa05c,null));};exports[_0xfdbd('0x24')]=function(_0x2ac6fc,_0x508ae0){if(_0x2ac6fc['body']['id']){delete _0x2ac6fc['body']['id'];}return db[_0xfdbd('0x41')]['find']({'where':{'id':_0x2ac6fc[_0xfdbd('0x48')]['id']}})[_0xfdbd('0x26')](handleEntityNotFound(_0x508ae0,null))[_0xfdbd('0x26')](saveUpdates(_0x2ac6fc[_0xfdbd('0x4b')],null))[_0xfdbd('0x26')](respondWithResult(_0x508ae0,null))[_0xfdbd('0x46')](handleError(_0x508ae0,null));};exports[_0xfdbd('0x25')]=function(_0x3b3453,_0x14bcfd){return db[_0xfdbd('0x41')]['find']({'where':{'id':_0x3b3453['params']['id']}})[_0xfdbd('0x26')](handleEntityNotFound(_0x14bcfd,null))[_0xfdbd('0x26')](removeEntity(_0x14bcfd,null))[_0xfdbd('0x46')](handleError(_0x14bcfd,null));};exports[_0xfdbd('0x4c')]=function(_0x4a52c1,_0x58f855,_0x13aab6){var _0x465458={};var _0x4a0073={};var _0x10e008;var _0xdffc05;return db[_0xfdbd('0x41')][_0xfdbd('0x4d')]({'where':{'id':_0x4a52c1[_0xfdbd('0x48')]['id']}})[_0xfdbd('0x26')](handleEntityNotFound(_0x58f855,null))['then'](function(_0x3ef2ff){if(_0x3ef2ff){_0x10e008=_0x3ef2ff;_0x4a0073['model']=_['keys'](db[_0xfdbd('0x4e')][_0xfdbd('0x2d')]);_0x4a0073[_0xfdbd('0x31')]=_[_0xfdbd('0x32')](_0x4a52c1[_0xfdbd('0x31')]);_0x4a0073[_0xfdbd('0x33')]=_[_0xfdbd('0x34')](_0x4a0073[_0xfdbd('0x30')],_0x4a0073[_0xfdbd('0x31')]);_0x465458[_0xfdbd('0x35')]=_[_0xfdbd('0x34')](_0x4a0073[_0xfdbd('0x30')],qs['fields'](_0x4a52c1[_0xfdbd('0x31')][_0xfdbd('0x36')]));_0x465458[_0xfdbd('0x35')]=_0x465458[_0xfdbd('0x35')][_0xfdbd('0x37')]?_0x465458[_0xfdbd('0x35')]:_0x4a0073[_0xfdbd('0x30')];_0x465458[_0xfdbd('0x3a')]=qs[_0xfdbd('0x3b')](_0x4a52c1[_0xfdbd('0x31')]['sort']);_0x465458[_0xfdbd('0x3c')]=qs[_0xfdbd('0x33')](_[_0xfdbd('0x3d')](_0x4a52c1[_0xfdbd('0x31')],_0x4a0073[_0xfdbd('0x33')]));if(_0x4a52c1['query'][_0xfdbd('0x40')]){_0x465458['where']=_[_0xfdbd('0x3e')](_0x465458[_0xfdbd('0x3c')],{'$or':_[_0xfdbd('0x2c')](_0x465458['attributes'],function(_0x582fcb){var _0x2d574a={};_0x2d574a[_0x582fcb]={'$like':'%'+_0x4a52c1['query'][_0xfdbd('0x40')]+'%'};return _0x2d574a;})});}_0x465458=_[_0xfdbd('0x3e')]({},_0x465458,_0x4a52c1[_0xfdbd('0x49')]);return _0x10e008[_0xfdbd('0x4c')](_0x465458);}})[_0xfdbd('0x26')](function(_0x142df2){if(_0x142df2){_0xdffc05=_0x142df2[_0xfdbd('0x37')];if(!_0x4a52c1[_0xfdbd('0x31')][_0xfdbd('0x38')](_0xfdbd('0x39'))){_0x465458[_0xfdbd('0x1f')]=qs[_0xfdbd('0x1f')](_0x4a52c1['query'][_0xfdbd('0x1f')]);_0x465458[_0xfdbd('0x1d')]=qs[_0xfdbd('0x1d')](_0x4a52c1['query'][_0xfdbd('0x1d')]);}return _0x10e008[_0xfdbd('0x4c')](_0x465458);}})['then'](function(_0x1ba057){if(_0x1ba057){return _0x1ba057?{'count':_0xdffc05,'rows':_0x1ba057}:null;}})[_0xfdbd('0x26')](respondWithResult(_0x58f855,null))[_0xfdbd('0x46')](handleError(_0x58f855,null));};exports['getSubjects']=function(_0x4091f2,_0x3c626c,_0x3b99e7){var _0x503fa1={};var _0x3dc558={};var _0x3c3209;var _0xdaccc8;return db[_0xfdbd('0x41')][_0xfdbd('0x4d')]({'where':{'id':_0x4091f2['params']['id']}})['then'](handleEntityNotFound(_0x3c626c,null))['then'](function(_0x332ca6){if(_0x332ca6){_0x3c3209=_0x332ca6;_0x3dc558[_0xfdbd('0x30')]=_['keys'](db['ServicenowField'][_0xfdbd('0x2d')]);_0x3dc558['query']=_['keys'](_0x4091f2['query']);_0x3dc558['filters']=_['intersection'](_0x3dc558[_0xfdbd('0x30')],_0x3dc558[_0xfdbd('0x31')]);_0x503fa1[_0xfdbd('0x35')]=_[_0xfdbd('0x34')](_0x3dc558[_0xfdbd('0x30')],qs[_0xfdbd('0x36')](_0x4091f2['query'][_0xfdbd('0x36')]));_0x503fa1['attributes']=_0x503fa1[_0xfdbd('0x35')]['length']?_0x503fa1['attributes']:_0x3dc558['model'];_0x503fa1[_0xfdbd('0x3a')]=qs[_0xfdbd('0x3b')](_0x4091f2[_0xfdbd('0x31')]['sort']);_0x503fa1['where']=qs[_0xfdbd('0x33')](_['pick'](_0x4091f2[_0xfdbd('0x31')],_0x3dc558[_0xfdbd('0x33')]));if(_0x4091f2[_0xfdbd('0x31')][_0xfdbd('0x40')]){_0x503fa1[_0xfdbd('0x3c')]=_['merge'](_0x503fa1[_0xfdbd('0x3c')],{'$or':_[_0xfdbd('0x2c')](_0x503fa1[_0xfdbd('0x35')],function(_0x5ad9f2){var _0x1bd23d={};_0x1bd23d[_0x5ad9f2]={'$like':'%'+_0x4091f2['query'][_0xfdbd('0x40')]+'%'};return _0x1bd23d;})});}_0x503fa1=_[_0xfdbd('0x3e')]({},_0x503fa1,_0x4091f2['options']);return _0x3c3209[_0xfdbd('0x4f')](_0x503fa1);}})['then'](function(_0x3e378a){if(_0x3e378a){_0xdaccc8=_0x3e378a[_0xfdbd('0x37')];if(!_0x4091f2[_0xfdbd('0x31')][_0xfdbd('0x38')]('nolimit')){_0x503fa1[_0xfdbd('0x1f')]=qs[_0xfdbd('0x1f')](_0x4091f2[_0xfdbd('0x31')][_0xfdbd('0x1f')]);_0x503fa1[_0xfdbd('0x1d')]=qs[_0xfdbd('0x1d')](_0x4091f2['query'][_0xfdbd('0x1d')]);}return _0x3c3209[_0xfdbd('0x4f')](_0x503fa1);}})[_0xfdbd('0x26')](function(_0x113255){if(_0x113255){return _0x113255?{'count':_0xdaccc8,'rows':_0x113255}:null;}})[_0xfdbd('0x26')](respondWithResult(_0x3c626c,null))[_0xfdbd('0x46')](handleError(_0x3c626c,null));};exports['getDescriptions']=function(_0x2c0040,_0x3b0dec,_0x4ba4f6){var _0x4e3b61={};var _0x395fd1={};var _0x62bc4d;var _0x4d4f17;return db[_0xfdbd('0x41')]['findOne']({'where':{'id':_0x2c0040['params']['id']}})[_0xfdbd('0x26')](handleEntityNotFound(_0x3b0dec,null))[_0xfdbd('0x26')](function(_0x3a5bea){if(_0x3a5bea){_0x62bc4d=_0x3a5bea;_0x395fd1[_0xfdbd('0x30')]=_[_0xfdbd('0x32')](db[_0xfdbd('0x4e')]['rawAttributes']);_0x395fd1[_0xfdbd('0x31')]=_[_0xfdbd('0x32')](_0x2c0040[_0xfdbd('0x31')]);_0x395fd1[_0xfdbd('0x33')]=_[_0xfdbd('0x34')](_0x395fd1['model'],_0x395fd1[_0xfdbd('0x31')]);_0x4e3b61['attributes']=_[_0xfdbd('0x34')](_0x395fd1[_0xfdbd('0x30')],qs[_0xfdbd('0x36')](_0x2c0040[_0xfdbd('0x31')][_0xfdbd('0x36')]));_0x4e3b61[_0xfdbd('0x35')]=_0x4e3b61[_0xfdbd('0x35')][_0xfdbd('0x37')]?_0x4e3b61['attributes']:_0x395fd1['model'];_0x4e3b61[_0xfdbd('0x3a')]=qs[_0xfdbd('0x3b')](_0x2c0040['query'][_0xfdbd('0x3b')]);_0x4e3b61[_0xfdbd('0x3c')]=qs[_0xfdbd('0x33')](_[_0xfdbd('0x3d')](_0x2c0040[_0xfdbd('0x31')],_0x395fd1[_0xfdbd('0x33')]));if(_0x2c0040[_0xfdbd('0x31')]['filter']){_0x4e3b61[_0xfdbd('0x3c')]=_[_0xfdbd('0x3e')](_0x4e3b61[_0xfdbd('0x3c')],{'$or':_[_0xfdbd('0x2c')](_0x4e3b61[_0xfdbd('0x35')],function(_0x45360c){var _0x3f48bb={};_0x3f48bb[_0x45360c]={'$like':'%'+_0x2c0040[_0xfdbd('0x31')][_0xfdbd('0x40')]+'%'};return _0x3f48bb;})});}_0x4e3b61=_[_0xfdbd('0x3e')]({},_0x4e3b61,_0x2c0040[_0xfdbd('0x49')]);return _0x62bc4d[_0xfdbd('0x50')](_0x4e3b61);}})[_0xfdbd('0x26')](function(_0x59ea66){if(_0x59ea66){_0x4d4f17=_0x59ea66[_0xfdbd('0x37')];if(!_0x2c0040[_0xfdbd('0x31')][_0xfdbd('0x38')]('nolimit')){_0x4e3b61['limit']=qs[_0xfdbd('0x1f')](_0x2c0040[_0xfdbd('0x31')][_0xfdbd('0x1f')]);_0x4e3b61[_0xfdbd('0x1d')]=qs[_0xfdbd('0x1d')](_0x2c0040[_0xfdbd('0x31')][_0xfdbd('0x1d')]);}return _0x62bc4d[_0xfdbd('0x50')](_0x4e3b61);}})[_0xfdbd('0x26')](function(_0x1384fa){if(_0x1384fa){return _0x1384fa?{'count':_0x4d4f17,'rows':_0x1384fa}:null;}})['then'](respondWithResult(_0x3b0dec,null))['catch'](handleError(_0x3b0dec,null));};