53101b843778725e498d61d724ebdeeb93bc4d6a
[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 _0x26d5=['key','model','query','keys','filters','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','intersection','length','create','body','catch','find','getFields','findOne','Dynamics365Field','order','options','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','destroy','status','error','name','index','map','Dynamics365Configuration','rawAttributes','fieldName','type'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0x26d5,0xca));var _0x526d=function(_0x4adf90,_0x788205){_0x4adf90=_0x4adf90-0x0;var _0x419857=_0x26d5[_0x4adf90];return _0x419857;};'use strict';var emlformat=require(_0x526d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x526d('0x1'));var jsonpatch=require(_0x526d('0x2'));var rp=require(_0x526d('0x3'));var moment=require(_0x526d('0x4'));var BPromise=require(_0x526d('0x5'));var Mustache=require(_0x526d('0x6'));var util=require(_0x526d('0x7'));var path=require(_0x526d('0x8'));var sox=require(_0x526d('0x9'));var csv=require(_0x526d('0xa'));var ejs=require(_0x526d('0xb'));var fs=require('fs');var fs_extra=require(_0x526d('0xc'));var _=require(_0x526d('0xd'));var squel=require(_0x526d('0xe'));var crypto=require(_0x526d('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x526d('0x10'));var toCsv=require(_0x526d('0xa'));var querystring=require('querystring');var Papa=require(_0x526d('0x11'));var Redis=require('ioredis');var authService=require(_0x526d('0x12'));var qs=require(_0x526d('0x13'));var as=require(_0x526d('0x14'));var hardwareService=require(_0x526d('0x15'));var logger=require(_0x526d('0x16'))(_0x526d('0x17'));var utils=require(_0x526d('0x18'));var config=require(_0x526d('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x526d('0x1a'))['db'];function respondWithStatusCode(_0x4efdf0,_0x3e55bf){_0x3e55bf=_0x3e55bf||0xcc;return function(_0x114add){if(_0x114add){return _0x4efdf0[_0x526d('0x1b')](_0x3e55bf);}return _0x4efdf0['status'](_0x3e55bf)[_0x526d('0x1c')]();};}function respondWithResult(_0x25ea04,_0x33aaee){_0x33aaee=_0x33aaee||0xc8;return function(_0x2774de){if(_0x2774de){return _0x25ea04['status'](_0x33aaee)[_0x526d('0x1d')](_0x2774de);}};}function respondWithFilteredResult(_0xcf570c,_0x15c093){return function(_0x378ddd){if(_0x378ddd){var _0x204875=typeof _0x15c093[_0x526d('0x1e')]==='undefined'&&typeof _0x15c093[_0x526d('0x1f')]===_0x526d('0x20');var _0x7119fe=_0x378ddd[_0x526d('0x21')];var _0x4091a2=_0x204875?0x0:_0x15c093[_0x526d('0x1e')];var _0xe1fc48=_0x204875?_0x378ddd[_0x526d('0x21')]:_0x15c093[_0x526d('0x1e')]+_0x15c093['limit'];var _0x3680d3;if(_0xe1fc48>=_0x7119fe){_0xe1fc48=_0x7119fe;_0x3680d3=0xc8;}else{_0x3680d3=0xce;}_0xcf570c['status'](_0x3680d3);return _0xcf570c[_0x526d('0x22')](_0x526d('0x23'),_0x4091a2+'-'+_0xe1fc48+'/'+_0x7119fe)[_0x526d('0x1d')](_0x378ddd);}return null;};}function patchUpdates(_0x592b96){return function(_0x8800d1){try{jsonpatch[_0x526d('0x24')](_0x8800d1,_0x592b96,!![]);}catch(_0x57d10a){return BPromise[_0x526d('0x25')](_0x57d10a);}return _0x8800d1['save']();};}function saveUpdates(_0x57fbc2,_0x4debe5){return function(_0x1d2064){if(_0x1d2064){return _0x1d2064[_0x526d('0x26')](_0x57fbc2)[_0x526d('0x27')](function(_0x1b62f4){return _0x1b62f4;});}return null;};}function removeEntity(_0x2ba35b,_0x1dde61){return function(_0x1dcfdf){if(_0x1dcfdf){return _0x1dcfdf[_0x526d('0x28')]()[_0x526d('0x27')](function(){_0x2ba35b[_0x526d('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x33d439,_0x52429f){return function(_0x61d2d0){if(!_0x61d2d0){_0x33d439['sendStatus'](0x194);}return _0x61d2d0;};}function handleError(_0x46812c,_0x4bcea0){_0x4bcea0=_0x4bcea0||0x1f4;return function(_0x367dfb){logger[_0x526d('0x2a')](_0x367dfb['stack']);if(_0x367dfb['name']){delete _0x367dfb[_0x526d('0x2b')];}_0x46812c[_0x526d('0x29')](_0x4bcea0)['send'](_0x367dfb);};}exports[_0x526d('0x2c')]=function(_0xa56adc,_0x31adfd){var _0x26f7df={},_0x252f9b={},_0x44eb0f={'count':0x0,'rows':[]};var _0x2320cc=_[_0x526d('0x2d')](db[_0x526d('0x2e')][_0x526d('0x2f')],function(_0x5ce354){return{'name':_0x5ce354[_0x526d('0x30')],'type':_0x5ce354[_0x526d('0x31')][_0x526d('0x32')]};});_0x252f9b[_0x526d('0x33')]=_[_0x526d('0x2d')](_0x2320cc,'name');_0x252f9b[_0x526d('0x34')]=_[_0x526d('0x35')](_0xa56adc['query']);_0x252f9b[_0x526d('0x36')]=_['intersection'](_0x252f9b[_0x526d('0x33')],_0x252f9b[_0x526d('0x34')]);_0x26f7df['attributes']=_['intersection'](_0x252f9b[_0x526d('0x33')],qs[_0x526d('0x37')](_0xa56adc[_0x526d('0x34')][_0x526d('0x37')]));_0x26f7df[_0x526d('0x38')]=_0x26f7df['attributes']['length']?_0x26f7df[_0x526d('0x38')]:_0x252f9b['model'];if(!_0xa56adc[_0x526d('0x34')][_0x526d('0x39')](_0x526d('0x3a'))){_0x26f7df[_0x526d('0x1f')]=qs[_0x526d('0x1f')](_0xa56adc[_0x526d('0x34')][_0x526d('0x1f')]);_0x26f7df[_0x526d('0x1e')]=qs[_0x526d('0x1e')](_0xa56adc[_0x526d('0x34')][_0x526d('0x1e')]);}_0x26f7df['order']=qs[_0x526d('0x3b')](_0xa56adc['query'][_0x526d('0x3b')]);_0x26f7df[_0x526d('0x3c')]=qs[_0x526d('0x36')](_[_0x526d('0x3d')](_0xa56adc[_0x526d('0x34')],_0x252f9b[_0x526d('0x36')]),_0x2320cc);if(_0xa56adc[_0x526d('0x34')][_0x526d('0x3e')]){_0x26f7df[_0x526d('0x3c')]=_[_0x526d('0x3f')](_0x26f7df[_0x526d('0x3c')],{'$or':_['map'](_0x2320cc,function(_0x553947){if(_0x553947[_0x526d('0x31')]!==_0x526d('0x40')){var _0x886e9c={};_0x886e9c[_0x553947['name']]={'$like':'%'+_0xa56adc[_0x526d('0x34')][_0x526d('0x3e')]+'%'};return _0x886e9c;}})});}_0x26f7df=_['merge']({},_0x26f7df,_0xa56adc['options']);var _0x112d30={'where':_0x26f7df[_0x526d('0x3c')]};return db['Dynamics365Configuration'][_0x526d('0x21')](_0x112d30)['then'](function(_0x5d3dec){_0x44eb0f[_0x526d('0x21')]=_0x5d3dec;if(_0xa56adc['query'][_0x526d('0x41')]){_0x26f7df[_0x526d('0x42')]=[{'all':!![]}];}return db['Dynamics365Configuration'][_0x526d('0x43')](_0x26f7df);})['then'](function(_0x25f236){_0x44eb0f[_0x526d('0x44')]=_0x25f236;return _0x44eb0f;})[_0x526d('0x27')](respondWithFilteredResult(_0x31adfd,_0x26f7df))['catch'](handleError(_0x31adfd,null));};exports[_0x526d('0x45')]=function(_0x3021d2,_0xec6443){var _0x5c4206={'raw':![],'where':{'id':_0x3021d2[_0x526d('0x46')]['id']}},_0x511f13={};_0x511f13[_0x526d('0x33')]=_['keys'](db['Dynamics365Configuration'][_0x526d('0x2f')]);_0x511f13[_0x526d('0x34')]=_['keys'](_0x3021d2[_0x526d('0x34')]);_0x511f13[_0x526d('0x36')]=_[_0x526d('0x47')](_0x511f13['model'],_0x511f13[_0x526d('0x34')]);_0x5c4206['attributes']=_[_0x526d('0x47')](_0x511f13['model'],qs[_0x526d('0x37')](_0x3021d2[_0x526d('0x34')][_0x526d('0x37')]));_0x5c4206[_0x526d('0x38')]=_0x5c4206['attributes'][_0x526d('0x48')]?_0x5c4206['attributes']:_0x511f13[_0x526d('0x33')];if(_0x3021d2[_0x526d('0x34')][_0x526d('0x41')]){_0x5c4206['include']=[{'all':!![]}];}_0x5c4206=_[_0x526d('0x3f')]({},_0x5c4206,_0x3021d2['options']);return db[_0x526d('0x2e')]['find'](_0x5c4206)['then'](handleEntityNotFound(_0xec6443,null))[_0x526d('0x27')](respondWithResult(_0xec6443,null))['catch'](handleError(_0xec6443,null));};exports[_0x526d('0x49')]=function(_0x337fe8,_0xc48416){return db[_0x526d('0x2e')]['create'](_0x337fe8[_0x526d('0x4a')],{})[_0x526d('0x27')](respondWithResult(_0xc48416,0xc9))[_0x526d('0x4b')](handleError(_0xc48416,null));};exports[_0x526d('0x26')]=function(_0x31d1e2,_0x32a21e){if(_0x31d1e2['body']['id']){delete _0x31d1e2[_0x526d('0x4a')]['id'];}return db[_0x526d('0x2e')][_0x526d('0x4c')]({'where':{'id':_0x31d1e2[_0x526d('0x46')]['id']}})[_0x526d('0x27')](handleEntityNotFound(_0x32a21e,null))[_0x526d('0x27')](saveUpdates(_0x31d1e2[_0x526d('0x4a')],null))['then'](respondWithResult(_0x32a21e,null))[_0x526d('0x4b')](handleError(_0x32a21e,null));};exports[_0x526d('0x28')]=function(_0x491296,_0x1e1dd4){return db['Dynamics365Configuration'][_0x526d('0x4c')]({'where':{'id':_0x491296[_0x526d('0x46')]['id']}})[_0x526d('0x27')](handleEntityNotFound(_0x1e1dd4,null))[_0x526d('0x27')](removeEntity(_0x1e1dd4,null))[_0x526d('0x4b')](handleError(_0x1e1dd4,null));};exports[_0x526d('0x4d')]=function(_0x5ee261,_0x40c452,_0x4656fc){var _0x53ebf8={};var _0x12caa6={};var _0x2e91eb;var _0x558b85;return db[_0x526d('0x2e')][_0x526d('0x4e')]({'where':{'id':_0x5ee261['params']['id']}})['then'](handleEntityNotFound(_0x40c452,null))[_0x526d('0x27')](function(_0x12a0a4){if(_0x12a0a4){_0x2e91eb=_0x12a0a4;_0x12caa6[_0x526d('0x33')]=_[_0x526d('0x35')](db[_0x526d('0x4f')][_0x526d('0x2f')]);_0x12caa6[_0x526d('0x34')]=_[_0x526d('0x35')](_0x5ee261[_0x526d('0x34')]);_0x12caa6[_0x526d('0x36')]=_[_0x526d('0x47')](_0x12caa6[_0x526d('0x33')],_0x12caa6[_0x526d('0x34')]);_0x53ebf8[_0x526d('0x38')]=_[_0x526d('0x47')](_0x12caa6['model'],qs['fields'](_0x5ee261[_0x526d('0x34')][_0x526d('0x37')]));_0x53ebf8['attributes']=_0x53ebf8[_0x526d('0x38')][_0x526d('0x48')]?_0x53ebf8[_0x526d('0x38')]:_0x12caa6['model'];_0x53ebf8[_0x526d('0x50')]=qs['sort'](_0x5ee261['query'][_0x526d('0x3b')]);_0x53ebf8['where']=qs[_0x526d('0x36')](_[_0x526d('0x3d')](_0x5ee261[_0x526d('0x34')],_0x12caa6[_0x526d('0x36')]));if(_0x5ee261[_0x526d('0x34')][_0x526d('0x3e')]){_0x53ebf8['where']=_[_0x526d('0x3f')](_0x53ebf8['where'],{'$or':_[_0x526d('0x2d')](_0x53ebf8[_0x526d('0x38')],function(_0x2543aa){var _0x208403={};_0x208403[_0x2543aa]={'$like':'%'+_0x5ee261[_0x526d('0x34')][_0x526d('0x3e')]+'%'};return _0x208403;})});}_0x53ebf8=_['merge']({},_0x53ebf8,_0x5ee261[_0x526d('0x51')]);return _0x2e91eb['getFields'](_0x53ebf8);}})['then'](function(_0x1bef7a){if(_0x1bef7a){_0x558b85=_0x1bef7a[_0x526d('0x48')];if(!_0x5ee261['query']['hasOwnProperty']('nolimit')){_0x53ebf8[_0x526d('0x1f')]=qs[_0x526d('0x1f')](_0x5ee261['query'][_0x526d('0x1f')]);_0x53ebf8[_0x526d('0x1e')]=qs[_0x526d('0x1e')](_0x5ee261['query'][_0x526d('0x1e')]);}return _0x2e91eb['getFields'](_0x53ebf8);}})[_0x526d('0x27')](function(_0x2606ef){if(_0x2606ef){return _0x2606ef?{'count':_0x558b85,'rows':_0x2606ef}:null;}})[_0x526d('0x27')](respondWithResult(_0x40c452,null))[_0x526d('0x4b')](handleError(_0x40c452,null));};exports['getSubjects']=function(_0x38d813,_0x2b5d2,_0x816817){var _0x14ab49={};var _0x3beae7={};var _0x239097;var _0x267cb8;return db['Dynamics365Configuration'][_0x526d('0x4e')]({'where':{'id':_0x38d813[_0x526d('0x46')]['id']}})[_0x526d('0x27')](handleEntityNotFound(_0x2b5d2,null))[_0x526d('0x27')](function(_0x5cffbd){if(_0x5cffbd){_0x239097=_0x5cffbd;_0x3beae7[_0x526d('0x33')]=_['keys'](db[_0x526d('0x4f')][_0x526d('0x2f')]);_0x3beae7[_0x526d('0x34')]=_['keys'](_0x38d813[_0x526d('0x34')]);_0x3beae7[_0x526d('0x36')]=_[_0x526d('0x47')](_0x3beae7[_0x526d('0x33')],_0x3beae7[_0x526d('0x34')]);_0x14ab49[_0x526d('0x38')]=_[_0x526d('0x47')](_0x3beae7['model'],qs[_0x526d('0x37')](_0x38d813[_0x526d('0x34')][_0x526d('0x37')]));_0x14ab49['attributes']=_0x14ab49[_0x526d('0x38')][_0x526d('0x48')]?_0x14ab49['attributes']:_0x3beae7[_0x526d('0x33')];_0x14ab49[_0x526d('0x50')]=qs[_0x526d('0x3b')](_0x38d813[_0x526d('0x34')][_0x526d('0x3b')]);_0x14ab49[_0x526d('0x3c')]=qs[_0x526d('0x36')](_[_0x526d('0x3d')](_0x38d813[_0x526d('0x34')],_0x3beae7['filters']));if(_0x38d813['query']['filter']){_0x14ab49['where']=_[_0x526d('0x3f')](_0x14ab49['where'],{'$or':_[_0x526d('0x2d')](_0x14ab49[_0x526d('0x38')],function(_0x5d6c98){var _0x1ab0ff={};_0x1ab0ff[_0x5d6c98]={'$like':'%'+_0x38d813['query']['filter']+'%'};return _0x1ab0ff;})});}_0x14ab49=_[_0x526d('0x3f')]({},_0x14ab49,_0x38d813[_0x526d('0x51')]);return _0x239097[_0x526d('0x52')](_0x14ab49);}})[_0x526d('0x27')](function(_0xe8f904){if(_0xe8f904){_0x267cb8=_0xe8f904[_0x526d('0x48')];if(!_0x38d813['query'][_0x526d('0x39')](_0x526d('0x3a'))){_0x14ab49['limit']=qs[_0x526d('0x1f')](_0x38d813['query']['limit']);_0x14ab49[_0x526d('0x1e')]=qs['offset'](_0x38d813[_0x526d('0x34')][_0x526d('0x1e')]);}return _0x239097[_0x526d('0x52')](_0x14ab49);}})[_0x526d('0x27')](function(_0x2eb553){if(_0x2eb553){return _0x2eb553?{'count':_0x267cb8,'rows':_0x2eb553}:null;}})[_0x526d('0x27')](respondWithResult(_0x2b5d2,null))[_0x526d('0x4b')](handleError(_0x2b5d2,null));};exports[_0x526d('0x53')]=function(_0x358c92,_0x269a9d,_0x3e2c58){var _0x10e9d0={};var _0x4062c1={};var _0x1e85dd;var _0x6de500;return db[_0x526d('0x2e')][_0x526d('0x4e')]({'where':{'id':_0x358c92[_0x526d('0x46')]['id']}})[_0x526d('0x27')](handleEntityNotFound(_0x269a9d,null))[_0x526d('0x27')](function(_0x2a4fc7){if(_0x2a4fc7){_0x1e85dd=_0x2a4fc7;_0x4062c1[_0x526d('0x33')]=_[_0x526d('0x35')](db[_0x526d('0x4f')][_0x526d('0x2f')]);_0x4062c1['query']=_[_0x526d('0x35')](_0x358c92[_0x526d('0x34')]);_0x4062c1[_0x526d('0x36')]=_[_0x526d('0x47')](_0x4062c1['model'],_0x4062c1['query']);_0x10e9d0[_0x526d('0x38')]=_[_0x526d('0x47')](_0x4062c1[_0x526d('0x33')],qs[_0x526d('0x37')](_0x358c92[_0x526d('0x34')][_0x526d('0x37')]));_0x10e9d0[_0x526d('0x38')]=_0x10e9d0[_0x526d('0x38')]['length']?_0x10e9d0[_0x526d('0x38')]:_0x4062c1[_0x526d('0x33')];_0x10e9d0['order']=qs['sort'](_0x358c92[_0x526d('0x34')][_0x526d('0x3b')]);_0x10e9d0['where']=qs[_0x526d('0x36')](_[_0x526d('0x3d')](_0x358c92['query'],_0x4062c1[_0x526d('0x36')]));if(_0x358c92[_0x526d('0x34')]['filter']){_0x10e9d0[_0x526d('0x3c')]=_[_0x526d('0x3f')](_0x10e9d0[_0x526d('0x3c')],{'$or':_['map'](_0x10e9d0[_0x526d('0x38')],function(_0x4f45b8){var _0x5877f0={};_0x5877f0[_0x4f45b8]={'$like':'%'+_0x358c92['query'][_0x526d('0x3e')]+'%'};return _0x5877f0;})});}_0x10e9d0=_['merge']({},_0x10e9d0,_0x358c92['options']);return _0x1e85dd['getDescriptions'](_0x10e9d0);}})[_0x526d('0x27')](function(_0x5647ef){if(_0x5647ef){_0x6de500=_0x5647ef[_0x526d('0x48')];if(!_0x358c92[_0x526d('0x34')][_0x526d('0x39')](_0x526d('0x3a'))){_0x10e9d0['limit']=qs[_0x526d('0x1f')](_0x358c92[_0x526d('0x34')][_0x526d('0x1f')]);_0x10e9d0['offset']=qs['offset'](_0x358c92[_0x526d('0x34')][_0x526d('0x1e')]);}return _0x1e85dd[_0x526d('0x53')](_0x10e9d0);}})[_0x526d('0x27')](function(_0x2cb1fa){if(_0x2cb1fa){return _0x2cb1fa?{'count':_0x6de500,'rows':_0x2cb1fa}:null;}})[_0x526d('0x27')](respondWithResult(_0x269a9d,null))[_0x526d('0x4b')](handleError(_0x269a9d,null));};