Built motion from commit 994c64e1.|2.6.1
[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 _0x0900=['model','map','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','Dynamics365Configuration','include','findAll','show','create','update','body','find','params','getFields','findOne','Dynamics365Field','rawAttributes','pick','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','sendStatus','status','offset','limit','undefined','count','json','apply','reject','save','then','end','stack','name','send','fieldName','type','key'];(function(_0x2f6344,_0x37cb10){var _0x3c3fc3=function(_0x397fe0){while(--_0x397fe0){_0x2f6344['push'](_0x2f6344['shift']());}};_0x3c3fc3(++_0x37cb10);}(_0x0900,0x100));var _0x0090=function(_0x2be240,_0x1e119d){_0x2be240=_0x2be240-0x0;var _0x123543=_0x0900[_0x2be240];return _0x123543;};'use strict';var emlformat=require(_0x0090('0x0'));var rimraf=require(_0x0090('0x1'));var zipdir=require(_0x0090('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0090('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0090('0x4'));var util=require(_0x0090('0x5'));var path=require(_0x0090('0x6'));var sox=require('sox');var csv=require(_0x0090('0x7'));var ejs=require(_0x0090('0x8'));var fs=require('fs');var fs_extra=require(_0x0090('0x9'));var _=require(_0x0090('0xa'));var squel=require(_0x0090('0xb'));var crypto=require('crypto');var jsforce=require(_0x0090('0xc'));var deskjs=require(_0x0090('0xd'));var toCsv=require(_0x0090('0x7'));var querystring=require(_0x0090('0xe'));var Papa=require(_0x0090('0xf'));var Redis=require(_0x0090('0x10'));var authService=require(_0x0090('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0090('0x12'));var logger=require(_0x0090('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x0090('0x14'));var licenseUtil=require(_0x0090('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5ec262,_0x5b32f4){_0x5b32f4=_0x5b32f4||0xcc;return function(_0x582d61){if(_0x582d61){return _0x5ec262[_0x0090('0x16')](_0x5b32f4);}return _0x5ec262[_0x0090('0x17')](_0x5b32f4)['end']();};}function respondWithResult(_0x2c6e37,_0x237b65){_0x237b65=_0x237b65||0xc8;return function(_0x553b46){if(_0x553b46){return _0x2c6e37[_0x0090('0x17')](_0x237b65)['json'](_0x553b46);}};}function respondWithFilteredResult(_0x2aaa00,_0x8864f1){return function(_0x219448){if(_0x219448){var _0x298d79=typeof _0x8864f1[_0x0090('0x18')]==='undefined'&&typeof _0x8864f1[_0x0090('0x19')]===_0x0090('0x1a');var _0x24cfa3=_0x219448[_0x0090('0x1b')];var _0xee1c84=_0x298d79?0x0:_0x8864f1[_0x0090('0x18')];var _0x3d9209=_0x298d79?_0x219448[_0x0090('0x1b')]:_0x8864f1[_0x0090('0x18')]+_0x8864f1['limit'];var _0x46f9c9;if(_0x3d9209>=_0x24cfa3){_0x3d9209=_0x24cfa3;_0x46f9c9=0xc8;}else{_0x46f9c9=0xce;}_0x2aaa00['status'](_0x46f9c9);return _0x2aaa00['set']('Content-Range',_0xee1c84+'-'+_0x3d9209+'/'+_0x24cfa3)[_0x0090('0x1c')](_0x219448);}return null;};}function patchUpdates(_0x8ca342){return function(_0xc564b5){try{jsonpatch[_0x0090('0x1d')](_0xc564b5,_0x8ca342,!![]);}catch(_0x3fc605){return BPromise[_0x0090('0x1e')](_0x3fc605);}return _0xc564b5[_0x0090('0x1f')]();};}function saveUpdates(_0x4154aa,_0x52ad4b){return function(_0x33b1ca){if(_0x33b1ca){return _0x33b1ca['update'](_0x4154aa)[_0x0090('0x20')](function(_0x41823b){return _0x41823b;});}return null;};}function removeEntity(_0x591dff,_0x5dcf97){return function(_0x5af4e9){if(_0x5af4e9){return _0x5af4e9['destroy']()[_0x0090('0x20')](function(){_0x591dff[_0x0090('0x17')](0xcc)[_0x0090('0x21')]();});}};}function handleEntityNotFound(_0x2120f5,_0x213f0e){return function(_0x549898){if(!_0x549898){_0x2120f5['sendStatus'](0x194);}return _0x549898;};}function handleError(_0x40d442,_0x50ca76){_0x50ca76=_0x50ca76||0x1f4;return function(_0xf8331){logger['error'](_0xf8331[_0x0090('0x22')]);if(_0xf8331[_0x0090('0x23')]){delete _0xf8331[_0x0090('0x23')];}_0x40d442[_0x0090('0x17')](_0x50ca76)[_0x0090('0x24')](_0xf8331);};}exports['index']=function(_0x4f88f6,_0x445d07){var _0xd222a5={},_0x3c5992={},_0x4e6890={'count':0x0,'rows':[]};var _0x5dc4a8=_['map'](db['Dynamics365Configuration']['rawAttributes'],function(_0x3a2b3b){return{'name':_0x3a2b3b[_0x0090('0x25')],'type':_0x3a2b3b[_0x0090('0x26')][_0x0090('0x27')]};});_0x3c5992[_0x0090('0x28')]=_[_0x0090('0x29')](_0x5dc4a8,_0x0090('0x23'));_0x3c5992[_0x0090('0x2a')]=_[_0x0090('0x2b')](_0x4f88f6[_0x0090('0x2a')]);_0x3c5992['filters']=_['intersection'](_0x3c5992[_0x0090('0x28')],_0x3c5992[_0x0090('0x2a')]);_0xd222a5['attributes']=_[_0x0090('0x2c')](_0x3c5992[_0x0090('0x28')],qs[_0x0090('0x2d')](_0x4f88f6[_0x0090('0x2a')][_0x0090('0x2d')]));_0xd222a5[_0x0090('0x2e')]=_0xd222a5[_0x0090('0x2e')][_0x0090('0x2f')]?_0xd222a5[_0x0090('0x2e')]:_0x3c5992[_0x0090('0x28')];if(!_0x4f88f6[_0x0090('0x2a')][_0x0090('0x30')](_0x0090('0x31'))){_0xd222a5[_0x0090('0x19')]=qs['limit'](_0x4f88f6[_0x0090('0x2a')][_0x0090('0x19')]);_0xd222a5['offset']=qs[_0x0090('0x18')](_0x4f88f6['query'][_0x0090('0x18')]);}_0xd222a5[_0x0090('0x32')]=qs['sort'](_0x4f88f6[_0x0090('0x2a')][_0x0090('0x33')]);_0xd222a5[_0x0090('0x34')]=qs[_0x0090('0x35')](_['pick'](_0x4f88f6[_0x0090('0x2a')],_0x3c5992[_0x0090('0x35')]),_0x5dc4a8);if(_0x4f88f6[_0x0090('0x2a')][_0x0090('0x36')]){_0xd222a5[_0x0090('0x34')]=_[_0x0090('0x37')](_0xd222a5[_0x0090('0x34')],{'$or':_[_0x0090('0x29')](_0x5dc4a8,function(_0xe00a8b){if(_0xe00a8b[_0x0090('0x26')]!==_0x0090('0x38')){var _0x5c13bc={};_0x5c13bc[_0xe00a8b[_0x0090('0x23')]]={'$like':'%'+_0x4f88f6[_0x0090('0x2a')]['filter']+'%'};return _0x5c13bc;}})});}_0xd222a5=_[_0x0090('0x37')]({},_0xd222a5,_0x4f88f6[_0x0090('0x39')]);var _0x3a6f1f={'where':_0xd222a5[_0x0090('0x34')]};return db[_0x0090('0x3a')][_0x0090('0x1b')](_0x3a6f1f)[_0x0090('0x20')](function(_0x1c3a22){_0x4e6890[_0x0090('0x1b')]=_0x1c3a22;if(_0x4f88f6[_0x0090('0x2a')]['includeAll']){_0xd222a5[_0x0090('0x3b')]=[{'all':!![]}];}return db[_0x0090('0x3a')][_0x0090('0x3c')](_0xd222a5);})[_0x0090('0x20')](function(_0x1231d9){_0x4e6890['rows']=_0x1231d9;return _0x4e6890;})[_0x0090('0x20')](respondWithFilteredResult(_0x445d07,_0xd222a5))['catch'](handleError(_0x445d07,null));};exports[_0x0090('0x3d')]=function(_0x1ffed5,_0x171e6b){var _0xb04317={'raw':![],'where':{'id':_0x1ffed5['params']['id']}},_0x31cdab={};_0x31cdab[_0x0090('0x28')]=_[_0x0090('0x2b')](db[_0x0090('0x3a')]['rawAttributes']);_0x31cdab[_0x0090('0x2a')]=_[_0x0090('0x2b')](_0x1ffed5[_0x0090('0x2a')]);_0x31cdab['filters']=_[_0x0090('0x2c')](_0x31cdab[_0x0090('0x28')],_0x31cdab[_0x0090('0x2a')]);_0xb04317[_0x0090('0x2e')]=_[_0x0090('0x2c')](_0x31cdab[_0x0090('0x28')],qs[_0x0090('0x2d')](_0x1ffed5[_0x0090('0x2a')]['fields']));_0xb04317[_0x0090('0x2e')]=_0xb04317[_0x0090('0x2e')][_0x0090('0x2f')]?_0xb04317['attributes']:_0x31cdab[_0x0090('0x28')];if(_0x1ffed5['query']['includeAll']){_0xb04317['include']=[{'all':!![]}];}_0xb04317=_[_0x0090('0x37')]({},_0xb04317,_0x1ffed5[_0x0090('0x39')]);return db[_0x0090('0x3a')]['find'](_0xb04317)['then'](handleEntityNotFound(_0x171e6b,null))['then'](respondWithResult(_0x171e6b,null))['catch'](handleError(_0x171e6b,null));};exports[_0x0090('0x3e')]=function(_0x203b98,_0x4dbe28){return db[_0x0090('0x3a')]['create'](_0x203b98['body'],{})[_0x0090('0x20')](respondWithResult(_0x4dbe28,0xc9))['catch'](handleError(_0x4dbe28,null));};exports[_0x0090('0x3f')]=function(_0x1fa209,_0x480ee5){if(_0x1fa209[_0x0090('0x40')]['id']){delete _0x1fa209[_0x0090('0x40')]['id'];}return db[_0x0090('0x3a')][_0x0090('0x41')]({'where':{'id':_0x1fa209[_0x0090('0x42')]['id']}})[_0x0090('0x20')](handleEntityNotFound(_0x480ee5,null))[_0x0090('0x20')](saveUpdates(_0x1fa209['body'],null))[_0x0090('0x20')](respondWithResult(_0x480ee5,null))['catch'](handleError(_0x480ee5,null));};exports['destroy']=function(_0x41fa95,_0x42302f){return db[_0x0090('0x3a')][_0x0090('0x41')]({'where':{'id':_0x41fa95['params']['id']}})[_0x0090('0x20')](handleEntityNotFound(_0x42302f,null))[_0x0090('0x20')](removeEntity(_0x42302f,null))['catch'](handleError(_0x42302f,null));};exports[_0x0090('0x43')]=function(_0x102737,_0x4fa886,_0x4d6155){var _0x303816={};var _0x2aa1cf={};var _0x1c10a4;var _0x22555f;return db['Dynamics365Configuration'][_0x0090('0x44')]({'where':{'id':_0x102737[_0x0090('0x42')]['id']}})[_0x0090('0x20')](handleEntityNotFound(_0x4fa886,null))['then'](function(_0x445977){if(_0x445977){_0x1c10a4=_0x445977;_0x2aa1cf[_0x0090('0x28')]=_[_0x0090('0x2b')](db[_0x0090('0x45')][_0x0090('0x46')]);_0x2aa1cf[_0x0090('0x2a')]=_['keys'](_0x102737[_0x0090('0x2a')]);_0x2aa1cf[_0x0090('0x35')]=_[_0x0090('0x2c')](_0x2aa1cf[_0x0090('0x28')],_0x2aa1cf['query']);_0x303816[_0x0090('0x2e')]=_['intersection'](_0x2aa1cf['model'],qs[_0x0090('0x2d')](_0x102737[_0x0090('0x2a')][_0x0090('0x2d')]));_0x303816[_0x0090('0x2e')]=_0x303816[_0x0090('0x2e')][_0x0090('0x2f')]?_0x303816[_0x0090('0x2e')]:_0x2aa1cf[_0x0090('0x28')];_0x303816[_0x0090('0x32')]=qs[_0x0090('0x33')](_0x102737[_0x0090('0x2a')][_0x0090('0x33')]);_0x303816['where']=qs[_0x0090('0x35')](_[_0x0090('0x47')](_0x102737[_0x0090('0x2a')],_0x2aa1cf[_0x0090('0x35')]));if(_0x102737['query'][_0x0090('0x36')]){_0x303816['where']=_[_0x0090('0x37')](_0x303816[_0x0090('0x34')],{'$or':_[_0x0090('0x29')](_0x303816['attributes'],function(_0x20da5d){var _0x2e5737={};_0x2e5737[_0x20da5d]={'$like':'%'+_0x102737[_0x0090('0x2a')]['filter']+'%'};return _0x2e5737;})});}_0x303816=_[_0x0090('0x37')]({},_0x303816,_0x102737[_0x0090('0x39')]);return _0x1c10a4[_0x0090('0x43')](_0x303816);}})[_0x0090('0x20')](function(_0x2fba3b){if(_0x2fba3b){_0x22555f=_0x2fba3b[_0x0090('0x2f')];if(!_0x102737[_0x0090('0x2a')][_0x0090('0x30')](_0x0090('0x31'))){_0x303816[_0x0090('0x19')]=qs[_0x0090('0x19')](_0x102737['query'][_0x0090('0x19')]);_0x303816[_0x0090('0x18')]=qs[_0x0090('0x18')](_0x102737['query'][_0x0090('0x18')]);}return _0x1c10a4[_0x0090('0x43')](_0x303816);}})[_0x0090('0x20')](function(_0x3103d9){if(_0x3103d9){return _0x3103d9?{'count':_0x22555f,'rows':_0x3103d9}:null;}})[_0x0090('0x20')](respondWithResult(_0x4fa886,null))['catch'](handleError(_0x4fa886,null));};exports[_0x0090('0x48')]=function(_0x1ec2f0,_0x297ffb,_0x1a399b){var _0x85881={};var _0x598232={};var _0x50b4f2;var _0x21b7a4;return db[_0x0090('0x3a')]['findOne']({'where':{'id':_0x1ec2f0[_0x0090('0x42')]['id']}})[_0x0090('0x20')](handleEntityNotFound(_0x297ffb,null))[_0x0090('0x20')](function(_0x277f05){if(_0x277f05){_0x50b4f2=_0x277f05;_0x598232[_0x0090('0x28')]=_[_0x0090('0x2b')](db['Dynamics365Field'][_0x0090('0x46')]);_0x598232['query']=_[_0x0090('0x2b')](_0x1ec2f0[_0x0090('0x2a')]);_0x598232[_0x0090('0x35')]=_['intersection'](_0x598232['model'],_0x598232[_0x0090('0x2a')]);_0x85881[_0x0090('0x2e')]=_[_0x0090('0x2c')](_0x598232['model'],qs[_0x0090('0x2d')](_0x1ec2f0[_0x0090('0x2a')]['fields']));_0x85881[_0x0090('0x2e')]=_0x85881['attributes'][_0x0090('0x2f')]?_0x85881[_0x0090('0x2e')]:_0x598232['model'];_0x85881[_0x0090('0x32')]=qs['sort'](_0x1ec2f0[_0x0090('0x2a')]['sort']);_0x85881['where']=qs[_0x0090('0x35')](_[_0x0090('0x47')](_0x1ec2f0[_0x0090('0x2a')],_0x598232[_0x0090('0x35')]));if(_0x1ec2f0[_0x0090('0x2a')]['filter']){_0x85881[_0x0090('0x34')]=_[_0x0090('0x37')](_0x85881[_0x0090('0x34')],{'$or':_['map'](_0x85881[_0x0090('0x2e')],function(_0x3c70e3){var _0x4abca8={};_0x4abca8[_0x3c70e3]={'$like':'%'+_0x1ec2f0[_0x0090('0x2a')]['filter']+'%'};return _0x4abca8;})});}_0x85881=_['merge']({},_0x85881,_0x1ec2f0[_0x0090('0x39')]);return _0x50b4f2[_0x0090('0x48')](_0x85881);}})['then'](function(_0x30c584){if(_0x30c584){_0x21b7a4=_0x30c584['length'];if(!_0x1ec2f0[_0x0090('0x2a')][_0x0090('0x30')](_0x0090('0x31'))){_0x85881[_0x0090('0x19')]=qs['limit'](_0x1ec2f0['query'][_0x0090('0x19')]);_0x85881[_0x0090('0x18')]=qs[_0x0090('0x18')](_0x1ec2f0['query'][_0x0090('0x18')]);}return _0x50b4f2[_0x0090('0x48')](_0x85881);}})[_0x0090('0x20')](function(_0x89dc99){if(_0x89dc99){return _0x89dc99?{'count':_0x21b7a4,'rows':_0x89dc99}:null;}})[_0x0090('0x20')](respondWithResult(_0x297ffb,null))['catch'](handleError(_0x297ffb,null));};exports['getDescriptions']=function(_0x47fe0c,_0x5c6b8b,_0x575c13){var _0x1aaa64={};var _0x41c8e7={};var _0x2ecce8;var _0x433ce6;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x47fe0c[_0x0090('0x42')]['id']}})[_0x0090('0x20')](handleEntityNotFound(_0x5c6b8b,null))['then'](function(_0xf2b910){if(_0xf2b910){_0x2ecce8=_0xf2b910;_0x41c8e7['model']=_[_0x0090('0x2b')](db[_0x0090('0x45')][_0x0090('0x46')]);_0x41c8e7['query']=_[_0x0090('0x2b')](_0x47fe0c[_0x0090('0x2a')]);_0x41c8e7[_0x0090('0x35')]=_['intersection'](_0x41c8e7[_0x0090('0x28')],_0x41c8e7['query']);_0x1aaa64['attributes']=_['intersection'](_0x41c8e7[_0x0090('0x28')],qs['fields'](_0x47fe0c[_0x0090('0x2a')][_0x0090('0x2d')]));_0x1aaa64['attributes']=_0x1aaa64[_0x0090('0x2e')][_0x0090('0x2f')]?_0x1aaa64[_0x0090('0x2e')]:_0x41c8e7['model'];_0x1aaa64['order']=qs[_0x0090('0x33')](_0x47fe0c[_0x0090('0x2a')]['sort']);_0x1aaa64[_0x0090('0x34')]=qs['filters'](_[_0x0090('0x47')](_0x47fe0c[_0x0090('0x2a')],_0x41c8e7[_0x0090('0x35')]));if(_0x47fe0c[_0x0090('0x2a')][_0x0090('0x36')]){_0x1aaa64[_0x0090('0x34')]=_[_0x0090('0x37')](_0x1aaa64[_0x0090('0x34')],{'$or':_['map'](_0x1aaa64[_0x0090('0x2e')],function(_0x4994ea){var _0x50c5df={};_0x50c5df[_0x4994ea]={'$like':'%'+_0x47fe0c[_0x0090('0x2a')][_0x0090('0x36')]+'%'};return _0x50c5df;})});}_0x1aaa64=_['merge']({},_0x1aaa64,_0x47fe0c[_0x0090('0x39')]);return _0x2ecce8[_0x0090('0x49')](_0x1aaa64);}})[_0x0090('0x20')](function(_0x124f74){if(_0x124f74){_0x433ce6=_0x124f74[_0x0090('0x2f')];if(!_0x47fe0c[_0x0090('0x2a')]['hasOwnProperty'](_0x0090('0x31'))){_0x1aaa64[_0x0090('0x19')]=qs[_0x0090('0x19')](_0x47fe0c[_0x0090('0x2a')][_0x0090('0x19')]);_0x1aaa64[_0x0090('0x18')]=qs[_0x0090('0x18')](_0x47fe0c[_0x0090('0x2a')][_0x0090('0x18')]);}return _0x2ecce8[_0x0090('0x49')](_0x1aaa64);}})[_0x0090('0x20')](function(_0x4e3853){if(_0x4e3853){return _0x4e3853?{'count':_0x433ce6,'rows':_0x4e3853}:null;}})[_0x0090('0x20')](respondWithResult(_0x5c6b8b,null))['catch'](handleError(_0x5c6b8b,null));};