Built motion from commit 43538d75.|2.5.35
[motion2.git] / server / api / intDynamics365Configuration / intDynamics365Configuration.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 _0x75dc=['jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','status','undefined','limit','count','offset','set','json','apply','reject','save','update','then','destroy','end','sendStatus','error','name','map','Dynamics365Configuration','fieldName','type','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','pick','merge','where','VIRTUAL','filter','options','includeAll','findAll','rows','show','params','keys','rawAttributes','fields','find','catch','create','body','getFields','findOne','Dynamics365Field','order','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','lodash','squel','crypto'];(function(_0x618832,_0x2ffc7e){var _0x45443c=function(_0x3ae9b5){while(--_0x3ae9b5){_0x618832['push'](_0x618832['shift']());}};_0x45443c(++_0x2ffc7e);}(_0x75dc,0x1c2));var _0xc75d=function(_0x11b19b,_0x213234){_0x11b19b=_0x11b19b-0x0;var _0x1daac1=_0x75dc[_0x11b19b];return _0x1daac1;};'use strict';var emlformat=require(_0xc75d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc75d('0x1'));var jsonpatch=require(_0xc75d('0x2'));var rp=require(_0xc75d('0x3'));var moment=require('moment');var BPromise=require(_0xc75d('0x4'));var Mustache=require('mustache');var util=require(_0xc75d('0x5'));var path=require(_0xc75d('0x6'));var sox=require(_0xc75d('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc75d('0x8'));var _=require(_0xc75d('0x9'));var squel=require(_0xc75d('0xa'));var crypto=require(_0xc75d('0xb'));var jsforce=require(_0xc75d('0xc'));var deskjs=require(_0xc75d('0xd'));var toCsv=require(_0xc75d('0xe'));var querystring=require(_0xc75d('0xf'));var Papa=require('papaparse');var Redis=require(_0xc75d('0x10'));var authService=require(_0xc75d('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc75d('0x12'));var logger=require(_0xc75d('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xc75d('0x14'));var licenseUtil=require(_0xc75d('0x15'));var db=require(_0xc75d('0x16'))['db'];function respondWithStatusCode(_0x3d425e,_0x55471c){_0x55471c=_0x55471c||0xcc;return function(_0x335ea8){if(_0x335ea8){return _0x3d425e['sendStatus'](_0x55471c);}return _0x3d425e[_0xc75d('0x17')](_0x55471c)['end']();};}function respondWithResult(_0x41d813,_0x51e947){_0x51e947=_0x51e947||0xc8;return function(_0x4587b3){if(_0x4587b3){return _0x41d813[_0xc75d('0x17')](_0x51e947)['json'](_0x4587b3);}};}function respondWithFilteredResult(_0x5a2ed5,_0x251b4d){return function(_0x55349d){if(_0x55349d){var _0x4fc6a0=typeof _0x251b4d['offset']===_0xc75d('0x18')&&typeof _0x251b4d[_0xc75d('0x19')]===_0xc75d('0x18');var _0x59db51=_0x55349d[_0xc75d('0x1a')];var _0x3dcb03=_0x4fc6a0?0x0:_0x251b4d[_0xc75d('0x1b')];var _0x1b551e=_0x4fc6a0?_0x55349d[_0xc75d('0x1a')]:_0x251b4d['offset']+_0x251b4d[_0xc75d('0x19')];var _0x5200aa;if(_0x1b551e>=_0x59db51){_0x1b551e=_0x59db51;_0x5200aa=0xc8;}else{_0x5200aa=0xce;}_0x5a2ed5['status'](_0x5200aa);return _0x5a2ed5[_0xc75d('0x1c')]('Content-Range',_0x3dcb03+'-'+_0x1b551e+'/'+_0x59db51)[_0xc75d('0x1d')](_0x55349d);}return null;};}function patchUpdates(_0x231e13){return function(_0x5d041a){try{jsonpatch[_0xc75d('0x1e')](_0x5d041a,_0x231e13,!![]);}catch(_0x3a6841){return BPromise[_0xc75d('0x1f')](_0x3a6841);}return _0x5d041a[_0xc75d('0x20')]();};}function saveUpdates(_0x24420d,_0x4dabef){return function(_0x197d60){if(_0x197d60){return _0x197d60[_0xc75d('0x21')](_0x24420d)[_0xc75d('0x22')](function(_0x3fff87){return _0x3fff87;});}return null;};}function removeEntity(_0x506453,_0x58c280){return function(_0x720146){if(_0x720146){return _0x720146[_0xc75d('0x23')]()['then'](function(){_0x506453[_0xc75d('0x17')](0xcc)[_0xc75d('0x24')]();});}};}function handleEntityNotFound(_0x423f13,_0x557207){return function(_0x421f36){if(!_0x421f36){_0x423f13[_0xc75d('0x25')](0x194);}return _0x421f36;};}function handleError(_0x2cbbcc,_0x671dc3){_0x671dc3=_0x671dc3||0x1f4;return function(_0x2f8b9a){logger[_0xc75d('0x26')](_0x2f8b9a['stack']);if(_0x2f8b9a[_0xc75d('0x27')]){delete _0x2f8b9a[_0xc75d('0x27')];}_0x2cbbcc[_0xc75d('0x17')](_0x671dc3)['send'](_0x2f8b9a);};}exports['index']=function(_0x539341,_0x5b9f0b){var _0x85942a={},_0x3efbc3={},_0x25dc74={'count':0x0,'rows':[]};var _0x42717f=_[_0xc75d('0x28')](db[_0xc75d('0x29')]['rawAttributes'],function(_0x1e6bb6){return{'name':_0x1e6bb6[_0xc75d('0x2a')],'type':_0x1e6bb6[_0xc75d('0x2b')]['key']};});_0x3efbc3[_0xc75d('0x2c')]=_[_0xc75d('0x28')](_0x42717f,'name');_0x3efbc3[_0xc75d('0x2d')]=_['keys'](_0x539341[_0xc75d('0x2d')]);_0x3efbc3[_0xc75d('0x2e')]=_[_0xc75d('0x2f')](_0x3efbc3['model'],_0x3efbc3['query']);_0x85942a['attributes']=_[_0xc75d('0x2f')](_0x3efbc3[_0xc75d('0x2c')],qs['fields'](_0x539341[_0xc75d('0x2d')]['fields']));_0x85942a['attributes']=_0x85942a[_0xc75d('0x30')][_0xc75d('0x31')]?_0x85942a[_0xc75d('0x30')]:_0x3efbc3['model'];if(!_0x539341['query'][_0xc75d('0x32')](_0xc75d('0x33'))){_0x85942a[_0xc75d('0x19')]=qs[_0xc75d('0x19')](_0x539341['query'][_0xc75d('0x19')]);_0x85942a['offset']=qs['offset'](_0x539341[_0xc75d('0x2d')]['offset']);}_0x85942a['order']=qs['sort'](_0x539341['query'][_0xc75d('0x34')]);_0x85942a['where']=qs[_0xc75d('0x2e')](_[_0xc75d('0x35')](_0x539341[_0xc75d('0x2d')],_0x3efbc3['filters']),_0x42717f);if(_0x539341[_0xc75d('0x2d')]['filter']){_0x85942a['where']=_[_0xc75d('0x36')](_0x85942a[_0xc75d('0x37')],{'$or':_['map'](_0x42717f,function(_0x5cf098){if(_0x5cf098[_0xc75d('0x2b')]!==_0xc75d('0x38')){var _0x20dfa2={};_0x20dfa2[_0x5cf098['name']]={'$like':'%'+_0x539341[_0xc75d('0x2d')][_0xc75d('0x39')]+'%'};return _0x20dfa2;}})});}_0x85942a=_['merge']({},_0x85942a,_0x539341[_0xc75d('0x3a')]);var _0x2c1637={'where':_0x85942a[_0xc75d('0x37')]};return db[_0xc75d('0x29')]['count'](_0x2c1637)[_0xc75d('0x22')](function(_0x5a56cc){_0x25dc74[_0xc75d('0x1a')]=_0x5a56cc;if(_0x539341[_0xc75d('0x2d')][_0xc75d('0x3b')]){_0x85942a['include']=[{'all':!![]}];}return db[_0xc75d('0x29')][_0xc75d('0x3c')](_0x85942a);})[_0xc75d('0x22')](function(_0x1f2217){_0x25dc74[_0xc75d('0x3d')]=_0x1f2217;return _0x25dc74;})[_0xc75d('0x22')](respondWithFilteredResult(_0x5b9f0b,_0x85942a))['catch'](handleError(_0x5b9f0b,null));};exports[_0xc75d('0x3e')]=function(_0x4c7567,_0x4230b3){var _0x29aadc={'raw':![],'where':{'id':_0x4c7567[_0xc75d('0x3f')]['id']}},_0x76981={};_0x76981[_0xc75d('0x2c')]=_[_0xc75d('0x40')](db['Dynamics365Configuration'][_0xc75d('0x41')]);_0x76981[_0xc75d('0x2d')]=_['keys'](_0x4c7567['query']);_0x76981[_0xc75d('0x2e')]=_[_0xc75d('0x2f')](_0x76981[_0xc75d('0x2c')],_0x76981['query']);_0x29aadc[_0xc75d('0x30')]=_['intersection'](_0x76981[_0xc75d('0x2c')],qs[_0xc75d('0x42')](_0x4c7567['query'][_0xc75d('0x42')]));_0x29aadc[_0xc75d('0x30')]=_0x29aadc[_0xc75d('0x30')][_0xc75d('0x31')]?_0x29aadc[_0xc75d('0x30')]:_0x76981[_0xc75d('0x2c')];if(_0x4c7567[_0xc75d('0x2d')]['includeAll']){_0x29aadc['include']=[{'all':!![]}];}_0x29aadc=_[_0xc75d('0x36')]({},_0x29aadc,_0x4c7567[_0xc75d('0x3a')]);return db[_0xc75d('0x29')][_0xc75d('0x43')](_0x29aadc)[_0xc75d('0x22')](handleEntityNotFound(_0x4230b3,null))['then'](respondWithResult(_0x4230b3,null))[_0xc75d('0x44')](handleError(_0x4230b3,null));};exports['create']=function(_0x130a29,_0x557ccf){return db[_0xc75d('0x29')][_0xc75d('0x45')](_0x130a29[_0xc75d('0x46')],{})[_0xc75d('0x22')](respondWithResult(_0x557ccf,0xc9))[_0xc75d('0x44')](handleError(_0x557ccf,null));};exports['update']=function(_0x5a9cd0,_0x341ea6){if(_0x5a9cd0[_0xc75d('0x46')]['id']){delete _0x5a9cd0['body']['id'];}return db[_0xc75d('0x29')]['find']({'where':{'id':_0x5a9cd0['params']['id']}})[_0xc75d('0x22')](handleEntityNotFound(_0x341ea6,null))[_0xc75d('0x22')](saveUpdates(_0x5a9cd0[_0xc75d('0x46')],null))['then'](respondWithResult(_0x341ea6,null))[_0xc75d('0x44')](handleError(_0x341ea6,null));};exports['destroy']=function(_0x1ec5da,_0x215593){return db[_0xc75d('0x29')]['find']({'where':{'id':_0x1ec5da[_0xc75d('0x3f')]['id']}})[_0xc75d('0x22')](handleEntityNotFound(_0x215593,null))['then'](removeEntity(_0x215593,null))[_0xc75d('0x44')](handleError(_0x215593,null));};exports[_0xc75d('0x47')]=function(_0x5bf1d3,_0x23dae9,_0xcfc54f){var _0x31839f={};var _0x30e6e2={};var _0x1d576b;var _0x24f56e;return db[_0xc75d('0x29')][_0xc75d('0x48')]({'where':{'id':_0x5bf1d3[_0xc75d('0x3f')]['id']}})[_0xc75d('0x22')](handleEntityNotFound(_0x23dae9,null))[_0xc75d('0x22')](function(_0x2ab85f){if(_0x2ab85f){_0x1d576b=_0x2ab85f;_0x30e6e2[_0xc75d('0x2c')]=_['keys'](db[_0xc75d('0x49')][_0xc75d('0x41')]);_0x30e6e2[_0xc75d('0x2d')]=_[_0xc75d('0x40')](_0x5bf1d3[_0xc75d('0x2d')]);_0x30e6e2['filters']=_[_0xc75d('0x2f')](_0x30e6e2[_0xc75d('0x2c')],_0x30e6e2['query']);_0x31839f[_0xc75d('0x30')]=_[_0xc75d('0x2f')](_0x30e6e2[_0xc75d('0x2c')],qs['fields'](_0x5bf1d3[_0xc75d('0x2d')][_0xc75d('0x42')]));_0x31839f[_0xc75d('0x30')]=_0x31839f['attributes'][_0xc75d('0x31')]?_0x31839f['attributes']:_0x30e6e2[_0xc75d('0x2c')];_0x31839f[_0xc75d('0x4a')]=qs['sort'](_0x5bf1d3['query'][_0xc75d('0x34')]);_0x31839f[_0xc75d('0x37')]=qs[_0xc75d('0x2e')](_[_0xc75d('0x35')](_0x5bf1d3['query'],_0x30e6e2[_0xc75d('0x2e')]));if(_0x5bf1d3['query'][_0xc75d('0x39')]){_0x31839f[_0xc75d('0x37')]=_[_0xc75d('0x36')](_0x31839f[_0xc75d('0x37')],{'$or':_[_0xc75d('0x28')](_0x31839f['attributes'],function(_0x49502e){var _0x1688eb={};_0x1688eb[_0x49502e]={'$like':'%'+_0x5bf1d3['query'][_0xc75d('0x39')]+'%'};return _0x1688eb;})});}_0x31839f=_[_0xc75d('0x36')]({},_0x31839f,_0x5bf1d3[_0xc75d('0x3a')]);return _0x1d576b[_0xc75d('0x47')](_0x31839f);}})[_0xc75d('0x22')](function(_0x102e9e){if(_0x102e9e){_0x24f56e=_0x102e9e[_0xc75d('0x31')];if(!_0x5bf1d3['query']['hasOwnProperty'](_0xc75d('0x33'))){_0x31839f[_0xc75d('0x19')]=qs[_0xc75d('0x19')](_0x5bf1d3['query'][_0xc75d('0x19')]);_0x31839f[_0xc75d('0x1b')]=qs[_0xc75d('0x1b')](_0x5bf1d3[_0xc75d('0x2d')]['offset']);}return _0x1d576b[_0xc75d('0x47')](_0x31839f);}})['then'](function(_0xa5c79a){if(_0xa5c79a){return _0xa5c79a?{'count':_0x24f56e,'rows':_0xa5c79a}:null;}})[_0xc75d('0x22')](respondWithResult(_0x23dae9,null))[_0xc75d('0x44')](handleError(_0x23dae9,null));};exports[_0xc75d('0x4b')]=function(_0x367996,_0x2f067e,_0x3470a6){var _0x347c29={};var _0x1a89cb={};var _0x4d69ff;var _0x29344a;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x367996[_0xc75d('0x3f')]['id']}})[_0xc75d('0x22')](handleEntityNotFound(_0x2f067e,null))[_0xc75d('0x22')](function(_0x449190){if(_0x449190){_0x4d69ff=_0x449190;_0x1a89cb[_0xc75d('0x2c')]=_['keys'](db[_0xc75d('0x49')]['rawAttributes']);_0x1a89cb[_0xc75d('0x2d')]=_[_0xc75d('0x40')](_0x367996[_0xc75d('0x2d')]);_0x1a89cb[_0xc75d('0x2e')]=_['intersection'](_0x1a89cb[_0xc75d('0x2c')],_0x1a89cb[_0xc75d('0x2d')]);_0x347c29[_0xc75d('0x30')]=_[_0xc75d('0x2f')](_0x1a89cb['model'],qs[_0xc75d('0x42')](_0x367996[_0xc75d('0x2d')][_0xc75d('0x42')]));_0x347c29[_0xc75d('0x30')]=_0x347c29[_0xc75d('0x30')][_0xc75d('0x31')]?_0x347c29[_0xc75d('0x30')]:_0x1a89cb['model'];_0x347c29[_0xc75d('0x4a')]=qs[_0xc75d('0x34')](_0x367996[_0xc75d('0x2d')]['sort']);_0x347c29['where']=qs['filters'](_[_0xc75d('0x35')](_0x367996[_0xc75d('0x2d')],_0x1a89cb[_0xc75d('0x2e')]));if(_0x367996['query'][_0xc75d('0x39')]){_0x347c29[_0xc75d('0x37')]=_[_0xc75d('0x36')](_0x347c29[_0xc75d('0x37')],{'$or':_[_0xc75d('0x28')](_0x347c29[_0xc75d('0x30')],function(_0x42b1e9){var _0x874eed={};_0x874eed[_0x42b1e9]={'$like':'%'+_0x367996[_0xc75d('0x2d')][_0xc75d('0x39')]+'%'};return _0x874eed;})});}_0x347c29=_[_0xc75d('0x36')]({},_0x347c29,_0x367996[_0xc75d('0x3a')]);return _0x4d69ff[_0xc75d('0x4b')](_0x347c29);}})['then'](function(_0x2953b2){if(_0x2953b2){_0x29344a=_0x2953b2[_0xc75d('0x31')];if(!_0x367996[_0xc75d('0x2d')][_0xc75d('0x32')](_0xc75d('0x33'))){_0x347c29[_0xc75d('0x19')]=qs[_0xc75d('0x19')](_0x367996[_0xc75d('0x2d')][_0xc75d('0x19')]);_0x347c29['offset']=qs[_0xc75d('0x1b')](_0x367996['query'][_0xc75d('0x1b')]);}return _0x4d69ff['getSubjects'](_0x347c29);}})[_0xc75d('0x22')](function(_0x47352c){if(_0x47352c){return _0x47352c?{'count':_0x29344a,'rows':_0x47352c}:null;}})['then'](respondWithResult(_0x2f067e,null))['catch'](handleError(_0x2f067e,null));};exports[_0xc75d('0x4c')]=function(_0x3fc662,_0x225a81,_0x2b97e5){var _0x3f8d22={};var _0x2eaa6b={};var _0x5b5295;var _0x41cfff;return db[_0xc75d('0x29')][_0xc75d('0x48')]({'where':{'id':_0x3fc662[_0xc75d('0x3f')]['id']}})[_0xc75d('0x22')](handleEntityNotFound(_0x225a81,null))['then'](function(_0x11cc19){if(_0x11cc19){_0x5b5295=_0x11cc19;_0x2eaa6b[_0xc75d('0x2c')]=_[_0xc75d('0x40')](db[_0xc75d('0x49')][_0xc75d('0x41')]);_0x2eaa6b[_0xc75d('0x2d')]=_[_0xc75d('0x40')](_0x3fc662[_0xc75d('0x2d')]);_0x2eaa6b[_0xc75d('0x2e')]=_[_0xc75d('0x2f')](_0x2eaa6b[_0xc75d('0x2c')],_0x2eaa6b[_0xc75d('0x2d')]);_0x3f8d22['attributes']=_['intersection'](_0x2eaa6b['model'],qs[_0xc75d('0x42')](_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x42')]));_0x3f8d22[_0xc75d('0x30')]=_0x3f8d22['attributes']['length']?_0x3f8d22[_0xc75d('0x30')]:_0x2eaa6b[_0xc75d('0x2c')];_0x3f8d22['order']=qs[_0xc75d('0x34')](_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x34')]);_0x3f8d22['where']=qs[_0xc75d('0x2e')](_[_0xc75d('0x35')](_0x3fc662['query'],_0x2eaa6b[_0xc75d('0x2e')]));if(_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x39')]){_0x3f8d22[_0xc75d('0x37')]=_['merge'](_0x3f8d22['where'],{'$or':_[_0xc75d('0x28')](_0x3f8d22[_0xc75d('0x30')],function(_0x2b0a37){var _0x9867a={};_0x9867a[_0x2b0a37]={'$like':'%'+_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x39')]+'%'};return _0x9867a;})});}_0x3f8d22=_['merge']({},_0x3f8d22,_0x3fc662[_0xc75d('0x3a')]);return _0x5b5295[_0xc75d('0x4c')](_0x3f8d22);}})['then'](function(_0x33230e){if(_0x33230e){_0x41cfff=_0x33230e[_0xc75d('0x31')];if(!_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x32')](_0xc75d('0x33'))){_0x3f8d22['limit']=qs[_0xc75d('0x19')](_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x19')]);_0x3f8d22['offset']=qs['offset'](_0x3fc662[_0xc75d('0x2d')][_0xc75d('0x1b')]);}return _0x5b5295[_0xc75d('0x4c')](_0x3f8d22);}})[_0xc75d('0x22')](function(_0x1ff245){if(_0x1ff245){return _0x1ff245?{'count':_0x41cfff,'rows':_0x1ff245}:null;}})[_0xc75d('0x22')](respondWithResult(_0x225a81,null))[_0xc75d('0x44')](handleError(_0x225a81,null));};