Built motion from commit ab870f9e.|2.5.44
[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 _0x52e0=['set','Content-Range','reject','save','update','then','destroy','end','stack','name','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','keys','query','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','show','include','find','create','body','params','getFields','findOne','Dynamics365Field','sort','getSubjects','order','getDescriptions','eml-format','rimraf','request-promise','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','count'];(function(_0x2803d3,_0x2efd8e){var _0x6bfcc1=function(_0x414899){while(--_0x414899){_0x2803d3['push'](_0x2803d3['shift']());}};_0x6bfcc1(++_0x2efd8e);}(_0x52e0,0xcc));var _0x052e=function(_0x1a6a05,_0x51866f){_0x1a6a05=_0x1a6a05-0x0;var _0x5db9e0=_0x52e0[_0x1a6a05];return _0x5db9e0;};'use strict';var emlformat=require(_0x052e('0x0'));var rimraf=require(_0x052e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x052e('0x2'));var moment=require(_0x052e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x052e('0x4'));var util=require(_0x052e('0x5'));var path=require('path');var sox=require(_0x052e('0x6'));var csv=require('to-csv');var ejs=require(_0x052e('0x7'));var fs=require('fs');var fs_extra=require(_0x052e('0x8'));var _=require(_0x052e('0x9'));var squel=require(_0x052e('0xa'));var crypto=require(_0x052e('0xb'));var jsforce=require(_0x052e('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x052e('0xd'));var querystring=require(_0x052e('0xe'));var Papa=require(_0x052e('0xf'));var Redis=require(_0x052e('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x052e('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x052e('0x12'))(_0x052e('0x13'));var utils=require(_0x052e('0x14'));var config=require(_0x052e('0x15'));var licenseUtil=require(_0x052e('0x16'));var db=require(_0x052e('0x17'))['db'];function respondWithStatusCode(_0x238584,_0x20d37b){_0x20d37b=_0x20d37b||0xcc;return function(_0x4edf57){if(_0x4edf57){return _0x238584[_0x052e('0x18')](_0x20d37b);}return _0x238584[_0x052e('0x19')](_0x20d37b)['end']();};}function respondWithResult(_0x47d508,_0x216a54){_0x216a54=_0x216a54||0xc8;return function(_0x2e11f2){if(_0x2e11f2){return _0x47d508['status'](_0x216a54)[_0x052e('0x1a')](_0x2e11f2);}};}function respondWithFilteredResult(_0xd1dc91,_0x331372){return function(_0x5ecc4b){if(_0x5ecc4b){var _0x3ef34b=typeof _0x331372[_0x052e('0x1b')]==='undefined'&&typeof _0x331372[_0x052e('0x1c')]==='undefined';var _0x4f6fa1=_0x5ecc4b[_0x052e('0x1d')];var _0x320efe=_0x3ef34b?0x0:_0x331372[_0x052e('0x1b')];var _0x611764=_0x3ef34b?_0x5ecc4b[_0x052e('0x1d')]:_0x331372[_0x052e('0x1b')]+_0x331372[_0x052e('0x1c')];var _0x3d5e6a;if(_0x611764>=_0x4f6fa1){_0x611764=_0x4f6fa1;_0x3d5e6a=0xc8;}else{_0x3d5e6a=0xce;}_0xd1dc91[_0x052e('0x19')](_0x3d5e6a);return _0xd1dc91[_0x052e('0x1e')](_0x052e('0x1f'),_0x320efe+'-'+_0x611764+'/'+_0x4f6fa1)[_0x052e('0x1a')](_0x5ecc4b);}return null;};}function patchUpdates(_0x5c8419){return function(_0x19567c){try{jsonpatch['apply'](_0x19567c,_0x5c8419,!![]);}catch(_0x59c7ca){return BPromise[_0x052e('0x20')](_0x59c7ca);}return _0x19567c[_0x052e('0x21')]();};}function saveUpdates(_0x15ba2b,_0x58afac){return function(_0x16737d){if(_0x16737d){return _0x16737d[_0x052e('0x22')](_0x15ba2b)[_0x052e('0x23')](function(_0x1d00cd){return _0x1d00cd;});}return null;};}function removeEntity(_0x391ba3,_0x1e9f0d){return function(_0x1be4e2){if(_0x1be4e2){return _0x1be4e2[_0x052e('0x24')]()['then'](function(){_0x391ba3[_0x052e('0x19')](0xcc)[_0x052e('0x25')]();});}};}function handleEntityNotFound(_0x5bde60,_0x4b595e){return function(_0x48865f){if(!_0x48865f){_0x5bde60['sendStatus'](0x194);}return _0x48865f;};}function handleError(_0x2b3d6b,_0x2b88eb){_0x2b88eb=_0x2b88eb||0x1f4;return function(_0x54094c){logger['error'](_0x54094c[_0x052e('0x26')]);if(_0x54094c['name']){delete _0x54094c[_0x052e('0x27')];}_0x2b3d6b['status'](_0x2b88eb)['send'](_0x54094c);};}exports['index']=function(_0x23e35f,_0x577718){var _0x57dc3c={},_0x1fae1e={},_0x196d12={'count':0x0,'rows':[]};var _0x3d1d0d=_[_0x052e('0x28')](db[_0x052e('0x29')][_0x052e('0x2a')],function(_0x536876){return{'name':_0x536876[_0x052e('0x2b')],'type':_0x536876[_0x052e('0x2c')][_0x052e('0x2d')]};});_0x1fae1e['model']=_[_0x052e('0x28')](_0x3d1d0d,'name');_0x1fae1e['query']=_[_0x052e('0x2e')](_0x23e35f[_0x052e('0x2f')]);_0x1fae1e['filters']=_[_0x052e('0x30')](_0x1fae1e[_0x052e('0x31')],_0x1fae1e['query']);_0x57dc3c['attributes']=_[_0x052e('0x30')](_0x1fae1e['model'],qs[_0x052e('0x32')](_0x23e35f[_0x052e('0x2f')][_0x052e('0x32')]));_0x57dc3c[_0x052e('0x33')]=_0x57dc3c['attributes'][_0x052e('0x34')]?_0x57dc3c[_0x052e('0x33')]:_0x1fae1e[_0x052e('0x31')];if(!_0x23e35f[_0x052e('0x2f')][_0x052e('0x35')](_0x052e('0x36'))){_0x57dc3c[_0x052e('0x1c')]=qs[_0x052e('0x1c')](_0x23e35f[_0x052e('0x2f')][_0x052e('0x1c')]);_0x57dc3c[_0x052e('0x1b')]=qs[_0x052e('0x1b')](_0x23e35f[_0x052e('0x2f')][_0x052e('0x1b')]);}_0x57dc3c['order']=qs['sort'](_0x23e35f['query']['sort']);_0x57dc3c[_0x052e('0x37')]=qs[_0x052e('0x38')](_[_0x052e('0x39')](_0x23e35f[_0x052e('0x2f')],_0x1fae1e[_0x052e('0x38')]),_0x3d1d0d);if(_0x23e35f['query'][_0x052e('0x3a')]){_0x57dc3c['where']=_[_0x052e('0x3b')](_0x57dc3c[_0x052e('0x37')],{'$or':_[_0x052e('0x28')](_0x3d1d0d,function(_0xc3b4f2){if(_0xc3b4f2[_0x052e('0x2c')]!==_0x052e('0x3c')){var _0x4d2957={};_0x4d2957[_0xc3b4f2[_0x052e('0x27')]]={'$like':'%'+_0x23e35f[_0x052e('0x2f')][_0x052e('0x3a')]+'%'};return _0x4d2957;}})});}_0x57dc3c=_[_0x052e('0x3b')]({},_0x57dc3c,_0x23e35f[_0x052e('0x3d')]);var _0x27df79={'where':_0x57dc3c[_0x052e('0x37')]};return db[_0x052e('0x29')][_0x052e('0x1d')](_0x27df79)[_0x052e('0x23')](function(_0x4d340d){_0x196d12['count']=_0x4d340d;if(_0x23e35f[_0x052e('0x2f')][_0x052e('0x3e')]){_0x57dc3c['include']=[{'all':!![]}];}return db['Dynamics365Configuration']['findAll'](_0x57dc3c);})['then'](function(_0x49ee0e){_0x196d12[_0x052e('0x3f')]=_0x49ee0e;return _0x196d12;})['then'](respondWithFilteredResult(_0x577718,_0x57dc3c))[_0x052e('0x40')](handleError(_0x577718,null));};exports[_0x052e('0x41')]=function(_0x915a25,_0x5c2c03){var _0x429a5d={'raw':![],'where':{'id':_0x915a25['params']['id']}},_0x4ba6d8={};_0x4ba6d8[_0x052e('0x31')]=_['keys'](db[_0x052e('0x29')][_0x052e('0x2a')]);_0x4ba6d8[_0x052e('0x2f')]=_['keys'](_0x915a25['query']);_0x4ba6d8[_0x052e('0x38')]=_[_0x052e('0x30')](_0x4ba6d8[_0x052e('0x31')],_0x4ba6d8[_0x052e('0x2f')]);_0x429a5d[_0x052e('0x33')]=_[_0x052e('0x30')](_0x4ba6d8[_0x052e('0x31')],qs[_0x052e('0x32')](_0x915a25['query']['fields']));_0x429a5d[_0x052e('0x33')]=_0x429a5d['attributes']['length']?_0x429a5d[_0x052e('0x33')]:_0x4ba6d8[_0x052e('0x31')];if(_0x915a25['query'][_0x052e('0x3e')]){_0x429a5d[_0x052e('0x42')]=[{'all':!![]}];}_0x429a5d=_[_0x052e('0x3b')]({},_0x429a5d,_0x915a25[_0x052e('0x3d')]);return db['Dynamics365Configuration'][_0x052e('0x43')](_0x429a5d)['then'](handleEntityNotFound(_0x5c2c03,null))[_0x052e('0x23')](respondWithResult(_0x5c2c03,null))[_0x052e('0x40')](handleError(_0x5c2c03,null));};exports['create']=function(_0x5f1bcf,_0x114849){return db[_0x052e('0x29')][_0x052e('0x44')](_0x5f1bcf[_0x052e('0x45')],{})[_0x052e('0x23')](respondWithResult(_0x114849,0xc9))[_0x052e('0x40')](handleError(_0x114849,null));};exports[_0x052e('0x22')]=function(_0x5ed0c3,_0x25150e){if(_0x5ed0c3[_0x052e('0x45')]['id']){delete _0x5ed0c3['body']['id'];}return db[_0x052e('0x29')]['find']({'where':{'id':_0x5ed0c3[_0x052e('0x46')]['id']}})[_0x052e('0x23')](handleEntityNotFound(_0x25150e,null))[_0x052e('0x23')](saveUpdates(_0x5ed0c3[_0x052e('0x45')],null))[_0x052e('0x23')](respondWithResult(_0x25150e,null))['catch'](handleError(_0x25150e,null));};exports[_0x052e('0x24')]=function(_0x53a6be,_0x110365){return db[_0x052e('0x29')][_0x052e('0x43')]({'where':{'id':_0x53a6be[_0x052e('0x46')]['id']}})[_0x052e('0x23')](handleEntityNotFound(_0x110365,null))[_0x052e('0x23')](removeEntity(_0x110365,null))['catch'](handleError(_0x110365,null));};exports[_0x052e('0x47')]=function(_0xc156f6,_0x383221,_0x1c47ba){var _0x1ebff4={};var _0x1b7161={};var _0x1f1331;var _0x9541c6;return db[_0x052e('0x29')][_0x052e('0x48')]({'where':{'id':_0xc156f6[_0x052e('0x46')]['id']}})[_0x052e('0x23')](handleEntityNotFound(_0x383221,null))[_0x052e('0x23')](function(_0xf17caa){if(_0xf17caa){_0x1f1331=_0xf17caa;_0x1b7161[_0x052e('0x31')]=_[_0x052e('0x2e')](db[_0x052e('0x49')][_0x052e('0x2a')]);_0x1b7161[_0x052e('0x2f')]=_[_0x052e('0x2e')](_0xc156f6[_0x052e('0x2f')]);_0x1b7161['filters']=_[_0x052e('0x30')](_0x1b7161[_0x052e('0x31')],_0x1b7161[_0x052e('0x2f')]);_0x1ebff4[_0x052e('0x33')]=_[_0x052e('0x30')](_0x1b7161[_0x052e('0x31')],qs[_0x052e('0x32')](_0xc156f6[_0x052e('0x2f')][_0x052e('0x32')]));_0x1ebff4[_0x052e('0x33')]=_0x1ebff4[_0x052e('0x33')]['length']?_0x1ebff4[_0x052e('0x33')]:_0x1b7161['model'];_0x1ebff4['order']=qs[_0x052e('0x4a')](_0xc156f6[_0x052e('0x2f')]['sort']);_0x1ebff4[_0x052e('0x37')]=qs['filters'](_[_0x052e('0x39')](_0xc156f6['query'],_0x1b7161[_0x052e('0x38')]));if(_0xc156f6['query']['filter']){_0x1ebff4[_0x052e('0x37')]=_[_0x052e('0x3b')](_0x1ebff4[_0x052e('0x37')],{'$or':_['map'](_0x1ebff4['attributes'],function(_0x1013e0){var _0x3304a5={};_0x3304a5[_0x1013e0]={'$like':'%'+_0xc156f6[_0x052e('0x2f')][_0x052e('0x3a')]+'%'};return _0x3304a5;})});}_0x1ebff4=_[_0x052e('0x3b')]({},_0x1ebff4,_0xc156f6[_0x052e('0x3d')]);return _0x1f1331[_0x052e('0x47')](_0x1ebff4);}})['then'](function(_0x58c22e){if(_0x58c22e){_0x9541c6=_0x58c22e[_0x052e('0x34')];if(!_0xc156f6[_0x052e('0x2f')][_0x052e('0x35')](_0x052e('0x36'))){_0x1ebff4[_0x052e('0x1c')]=qs[_0x052e('0x1c')](_0xc156f6['query'][_0x052e('0x1c')]);_0x1ebff4[_0x052e('0x1b')]=qs[_0x052e('0x1b')](_0xc156f6[_0x052e('0x2f')][_0x052e('0x1b')]);}return _0x1f1331['getFields'](_0x1ebff4);}})['then'](function(_0x4e9e94){if(_0x4e9e94){return _0x4e9e94?{'count':_0x9541c6,'rows':_0x4e9e94}:null;}})[_0x052e('0x23')](respondWithResult(_0x383221,null))[_0x052e('0x40')](handleError(_0x383221,null));};exports[_0x052e('0x4b')]=function(_0x26d99d,_0x27ac7a,_0x5cf6e2){var _0x1a2043={};var _0x382610={};var _0x59740d;var _0x2891fd;return db['Dynamics365Configuration'][_0x052e('0x48')]({'where':{'id':_0x26d99d['params']['id']}})[_0x052e('0x23')](handleEntityNotFound(_0x27ac7a,null))[_0x052e('0x23')](function(_0x103443){if(_0x103443){_0x59740d=_0x103443;_0x382610['model']=_[_0x052e('0x2e')](db['Dynamics365Field'][_0x052e('0x2a')]);_0x382610[_0x052e('0x2f')]=_['keys'](_0x26d99d['query']);_0x382610[_0x052e('0x38')]=_['intersection'](_0x382610[_0x052e('0x31')],_0x382610[_0x052e('0x2f')]);_0x1a2043[_0x052e('0x33')]=_[_0x052e('0x30')](_0x382610['model'],qs[_0x052e('0x32')](_0x26d99d['query'][_0x052e('0x32')]));_0x1a2043[_0x052e('0x33')]=_0x1a2043[_0x052e('0x33')][_0x052e('0x34')]?_0x1a2043[_0x052e('0x33')]:_0x382610[_0x052e('0x31')];_0x1a2043[_0x052e('0x4c')]=qs['sort'](_0x26d99d[_0x052e('0x2f')][_0x052e('0x4a')]);_0x1a2043[_0x052e('0x37')]=qs[_0x052e('0x38')](_[_0x052e('0x39')](_0x26d99d[_0x052e('0x2f')],_0x382610[_0x052e('0x38')]));if(_0x26d99d['query']['filter']){_0x1a2043[_0x052e('0x37')]=_[_0x052e('0x3b')](_0x1a2043['where'],{'$or':_[_0x052e('0x28')](_0x1a2043[_0x052e('0x33')],function(_0x32bb1a){var _0x3eaf7b={};_0x3eaf7b[_0x32bb1a]={'$like':'%'+_0x26d99d[_0x052e('0x2f')]['filter']+'%'};return _0x3eaf7b;})});}_0x1a2043=_[_0x052e('0x3b')]({},_0x1a2043,_0x26d99d[_0x052e('0x3d')]);return _0x59740d['getSubjects'](_0x1a2043);}})[_0x052e('0x23')](function(_0x1628ae){if(_0x1628ae){_0x2891fd=_0x1628ae[_0x052e('0x34')];if(!_0x26d99d[_0x052e('0x2f')][_0x052e('0x35')](_0x052e('0x36'))){_0x1a2043[_0x052e('0x1c')]=qs[_0x052e('0x1c')](_0x26d99d['query'][_0x052e('0x1c')]);_0x1a2043[_0x052e('0x1b')]=qs[_0x052e('0x1b')](_0x26d99d[_0x052e('0x2f')][_0x052e('0x1b')]);}return _0x59740d[_0x052e('0x4b')](_0x1a2043);}})[_0x052e('0x23')](function(_0x57719e){if(_0x57719e){return _0x57719e?{'count':_0x2891fd,'rows':_0x57719e}:null;}})[_0x052e('0x23')](respondWithResult(_0x27ac7a,null))[_0x052e('0x40')](handleError(_0x27ac7a,null));};exports[_0x052e('0x4d')]=function(_0x241a9c,_0x5b2c3d,_0x47df7c){var _0x469a3e={};var _0x29ed45={};var _0x584eaf;var _0x19a3c9;return db['Dynamics365Configuration'][_0x052e('0x48')]({'where':{'id':_0x241a9c[_0x052e('0x46')]['id']}})[_0x052e('0x23')](handleEntityNotFound(_0x5b2c3d,null))[_0x052e('0x23')](function(_0x204219){if(_0x204219){_0x584eaf=_0x204219;_0x29ed45[_0x052e('0x31')]=_[_0x052e('0x2e')](db[_0x052e('0x49')][_0x052e('0x2a')]);_0x29ed45[_0x052e('0x2f')]=_[_0x052e('0x2e')](_0x241a9c[_0x052e('0x2f')]);_0x29ed45[_0x052e('0x38')]=_['intersection'](_0x29ed45[_0x052e('0x31')],_0x29ed45['query']);_0x469a3e[_0x052e('0x33')]=_[_0x052e('0x30')](_0x29ed45[_0x052e('0x31')],qs[_0x052e('0x32')](_0x241a9c[_0x052e('0x2f')]['fields']));_0x469a3e[_0x052e('0x33')]=_0x469a3e[_0x052e('0x33')][_0x052e('0x34')]?_0x469a3e[_0x052e('0x33')]:_0x29ed45[_0x052e('0x31')];_0x469a3e[_0x052e('0x4c')]=qs[_0x052e('0x4a')](_0x241a9c[_0x052e('0x2f')][_0x052e('0x4a')]);_0x469a3e[_0x052e('0x37')]=qs[_0x052e('0x38')](_['pick'](_0x241a9c[_0x052e('0x2f')],_0x29ed45[_0x052e('0x38')]));if(_0x241a9c[_0x052e('0x2f')][_0x052e('0x3a')]){_0x469a3e[_0x052e('0x37')]=_[_0x052e('0x3b')](_0x469a3e[_0x052e('0x37')],{'$or':_[_0x052e('0x28')](_0x469a3e['attributes'],function(_0x10e3cf){var _0x118af2={};_0x118af2[_0x10e3cf]={'$like':'%'+_0x241a9c[_0x052e('0x2f')][_0x052e('0x3a')]+'%'};return _0x118af2;})});}_0x469a3e=_['merge']({},_0x469a3e,_0x241a9c[_0x052e('0x3d')]);return _0x584eaf[_0x052e('0x4d')](_0x469a3e);}})[_0x052e('0x23')](function(_0x2b1f5d){if(_0x2b1f5d){_0x19a3c9=_0x2b1f5d[_0x052e('0x34')];if(!_0x241a9c[_0x052e('0x2f')][_0x052e('0x35')](_0x052e('0x36'))){_0x469a3e[_0x052e('0x1c')]=qs[_0x052e('0x1c')](_0x241a9c['query']['limit']);_0x469a3e['offset']=qs[_0x052e('0x1b')](_0x241a9c[_0x052e('0x2f')][_0x052e('0x1b')]);}return _0x584eaf[_0x052e('0x4d')](_0x469a3e);}})['then'](function(_0x1c1a2c){if(_0x1c1a2c){return _0x1c1a2c?{'count':_0x19a3c9,'rows':_0x1c1a2c}:null;}})['then'](respondWithResult(_0x5b2c3d,null))[_0x052e('0x40')](handleError(_0x5b2c3d,null));};