Built motion from commit 06a208af.|2.6.26
[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 _0x4b46=['type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','findOne','Dynamics365Field','getFields','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','map','Dynamics365Configuration','rawAttributes'];(function(_0x14ef29,_0x10916e){var _0x1cafd4=function(_0x35b250){while(--_0x35b250){_0x14ef29['push'](_0x14ef29['shift']());}};_0x1cafd4(++_0x10916e);}(_0x4b46,0x166));var _0x64b4=function(_0x136b83,_0x502e59){_0x136b83=_0x136b83-0x0;var _0x3aa63f=_0x4b46[_0x136b83];return _0x3aa63f;};'use strict';var emlformat=require(_0x64b4('0x0'));var rimraf=require(_0x64b4('0x1'));var zipdir=require(_0x64b4('0x2'));var jsonpatch=require(_0x64b4('0x3'));var rp=require(_0x64b4('0x4'));var moment=require(_0x64b4('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x64b4('0x6'));var util=require(_0x64b4('0x7'));var path=require(_0x64b4('0x8'));var sox=require('sox');var csv=require(_0x64b4('0x9'));var ejs=require(_0x64b4('0xa'));var fs=require('fs');var fs_extra=require(_0x64b4('0xb'));var _=require('lodash');var squel=require(_0x64b4('0xc'));var crypto=require(_0x64b4('0xd'));var jsforce=require(_0x64b4('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x64b4('0x9'));var querystring=require(_0x64b4('0xf'));var Papa=require(_0x64b4('0x10'));var Redis=require(_0x64b4('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x64b4('0x12'));var hardwareService=require(_0x64b4('0x13'));var logger=require(_0x64b4('0x14'))(_0x64b4('0x15'));var utils=require(_0x64b4('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2c37f2,_0x293365){_0x293365=_0x293365||0xcc;return function(_0x1d2bb5){if(_0x1d2bb5){return _0x2c37f2[_0x64b4('0x17')](_0x293365);}return _0x2c37f2['status'](_0x293365)[_0x64b4('0x18')]();};}function respondWithResult(_0x17afef,_0x567408){_0x567408=_0x567408||0xc8;return function(_0x4a6523){if(_0x4a6523){return _0x17afef[_0x64b4('0x19')](_0x567408)[_0x64b4('0x1a')](_0x4a6523);}};}function respondWithFilteredResult(_0x4d1685,_0x4d465a){return function(_0x56cb4f){if(_0x56cb4f){var _0x28a01d=typeof _0x4d465a[_0x64b4('0x1b')]==='undefined'&&typeof _0x4d465a[_0x64b4('0x1c')]===_0x64b4('0x1d');var _0x20d37b=_0x56cb4f['count'];var _0x73fdc=_0x28a01d?0x0:_0x4d465a[_0x64b4('0x1b')];var _0x5e37c0=_0x28a01d?_0x56cb4f[_0x64b4('0x1e')]:_0x4d465a[_0x64b4('0x1b')]+_0x4d465a[_0x64b4('0x1c')];var _0x437228;if(_0x5e37c0>=_0x20d37b){_0x5e37c0=_0x20d37b;_0x437228=0xc8;}else{_0x437228=0xce;}_0x4d1685[_0x64b4('0x19')](_0x437228);return _0x4d1685[_0x64b4('0x1f')](_0x64b4('0x20'),_0x73fdc+'-'+_0x5e37c0+'/'+_0x20d37b)[_0x64b4('0x1a')](_0x56cb4f);}return null;};}function patchUpdates(_0x5e24f7){return function(_0x1b90c0){try{jsonpatch[_0x64b4('0x21')](_0x1b90c0,_0x5e24f7,!![]);}catch(_0x5f1fcd){return BPromise[_0x64b4('0x22')](_0x5f1fcd);}return _0x1b90c0[_0x64b4('0x23')]();};}function saveUpdates(_0x2123eb,_0x3a484e){return function(_0x581584){if(_0x581584){return _0x581584[_0x64b4('0x24')](_0x2123eb)['then'](function(_0x397f1a){return _0x397f1a;});}return null;};}function removeEntity(_0xb95ec6,_0x5d6d95){return function(_0x463d53){if(_0x463d53){return _0x463d53[_0x64b4('0x25')]()[_0x64b4('0x26')](function(){_0xb95ec6['status'](0xcc)[_0x64b4('0x18')]();});}};}function handleEntityNotFound(_0x1648d4,_0x11f3f6){return function(_0x1b9d72){if(!_0x1b9d72){_0x1648d4[_0x64b4('0x17')](0x194);}return _0x1b9d72;};}function handleError(_0x2595f8,_0x567929){_0x567929=_0x567929||0x1f4;return function(_0x561e45){logger[_0x64b4('0x27')](_0x561e45[_0x64b4('0x28')]);if(_0x561e45[_0x64b4('0x29')]){delete _0x561e45[_0x64b4('0x29')];}_0x2595f8[_0x64b4('0x19')](_0x567929)[_0x64b4('0x2a')](_0x561e45);};}exports[_0x64b4('0x2b')]=function(_0x56c625,_0x22d73c){var _0x1c5a30={},_0x4f60c9={},_0x5c3841={'count':0x0,'rows':[]};var _0x309aea=_[_0x64b4('0x2c')](db[_0x64b4('0x2d')][_0x64b4('0x2e')],function(_0x28fa0f){return{'name':_0x28fa0f['fieldName'],'type':_0x28fa0f[_0x64b4('0x2f')][_0x64b4('0x30')]};});_0x4f60c9['model']=_[_0x64b4('0x2c')](_0x309aea,'name');_0x4f60c9[_0x64b4('0x31')]=_[_0x64b4('0x32')](_0x56c625['query']);_0x4f60c9[_0x64b4('0x33')]=_[_0x64b4('0x34')](_0x4f60c9[_0x64b4('0x35')],_0x4f60c9[_0x64b4('0x31')]);_0x1c5a30[_0x64b4('0x36')]=_[_0x64b4('0x34')](_0x4f60c9['model'],qs[_0x64b4('0x37')](_0x56c625['query'][_0x64b4('0x37')]));_0x1c5a30[_0x64b4('0x36')]=_0x1c5a30['attributes'][_0x64b4('0x38')]?_0x1c5a30[_0x64b4('0x36')]:_0x4f60c9[_0x64b4('0x35')];if(!_0x56c625[_0x64b4('0x31')][_0x64b4('0x39')](_0x64b4('0x3a'))){_0x1c5a30['limit']=qs[_0x64b4('0x1c')](_0x56c625[_0x64b4('0x31')][_0x64b4('0x1c')]);_0x1c5a30[_0x64b4('0x1b')]=qs['offset'](_0x56c625[_0x64b4('0x31')][_0x64b4('0x1b')]);}_0x1c5a30[_0x64b4('0x3b')]=qs[_0x64b4('0x3c')](_0x56c625[_0x64b4('0x31')]['sort']);_0x1c5a30[_0x64b4('0x3d')]=qs[_0x64b4('0x33')](_[_0x64b4('0x3e')](_0x56c625['query'],_0x4f60c9[_0x64b4('0x33')]),_0x309aea);if(_0x56c625[_0x64b4('0x31')][_0x64b4('0x3f')]){_0x1c5a30[_0x64b4('0x3d')]=_[_0x64b4('0x40')](_0x1c5a30[_0x64b4('0x3d')],{'$or':_[_0x64b4('0x2c')](_0x309aea,function(_0x35c7ba){if(_0x35c7ba['type']!==_0x64b4('0x41')){var _0x3f08cd={};_0x3f08cd[_0x35c7ba['name']]={'$like':'%'+_0x56c625[_0x64b4('0x31')][_0x64b4('0x3f')]+'%'};return _0x3f08cd;}})});}_0x1c5a30=_['merge']({},_0x1c5a30,_0x56c625[_0x64b4('0x42')]);var _0x35acdc={'where':_0x1c5a30['where']};return db[_0x64b4('0x2d')][_0x64b4('0x1e')](_0x35acdc)['then'](function(_0x5a04c2){_0x5c3841['count']=_0x5a04c2;if(_0x56c625['query'][_0x64b4('0x43')]){_0x1c5a30[_0x64b4('0x44')]=[{'all':!![]}];}return db[_0x64b4('0x2d')][_0x64b4('0x45')](_0x1c5a30);})[_0x64b4('0x26')](function(_0x14f007){_0x5c3841['rows']=_0x14f007;return _0x5c3841;})['then'](respondWithFilteredResult(_0x22d73c,_0x1c5a30))[_0x64b4('0x46')](handleError(_0x22d73c,null));};exports[_0x64b4('0x47')]=function(_0x4b3ead,_0x970587){var _0x5179ef={'raw':![],'where':{'id':_0x4b3ead[_0x64b4('0x48')]['id']}},_0x4478c1={};_0x4478c1[_0x64b4('0x35')]=_[_0x64b4('0x32')](db[_0x64b4('0x2d')][_0x64b4('0x2e')]);_0x4478c1['query']=_['keys'](_0x4b3ead[_0x64b4('0x31')]);_0x4478c1[_0x64b4('0x33')]=_[_0x64b4('0x34')](_0x4478c1['model'],_0x4478c1['query']);_0x5179ef['attributes']=_[_0x64b4('0x34')](_0x4478c1[_0x64b4('0x35')],qs[_0x64b4('0x37')](_0x4b3ead['query'][_0x64b4('0x37')]));_0x5179ef[_0x64b4('0x36')]=_0x5179ef[_0x64b4('0x36')]['length']?_0x5179ef['attributes']:_0x4478c1[_0x64b4('0x35')];if(_0x4b3ead[_0x64b4('0x31')]['includeAll']){_0x5179ef[_0x64b4('0x44')]=[{'all':!![]}];}_0x5179ef=_['merge']({},_0x5179ef,_0x4b3ead['options']);return db[_0x64b4('0x2d')][_0x64b4('0x49')](_0x5179ef)['then'](handleEntityNotFound(_0x970587,null))[_0x64b4('0x26')](respondWithResult(_0x970587,null))[_0x64b4('0x46')](handleError(_0x970587,null));};exports[_0x64b4('0x4a')]=function(_0x21743d,_0x247093){return db[_0x64b4('0x2d')][_0x64b4('0x4a')](_0x21743d[_0x64b4('0x4b')],{})[_0x64b4('0x26')](respondWithResult(_0x247093,0xc9))[_0x64b4('0x46')](handleError(_0x247093,null));};exports[_0x64b4('0x24')]=function(_0x407370,_0x229fd6){if(_0x407370[_0x64b4('0x4b')]['id']){delete _0x407370[_0x64b4('0x4b')]['id'];}return db['Dynamics365Configuration'][_0x64b4('0x49')]({'where':{'id':_0x407370[_0x64b4('0x48')]['id']}})['then'](handleEntityNotFound(_0x229fd6,null))[_0x64b4('0x26')](saveUpdates(_0x407370['body'],null))[_0x64b4('0x26')](respondWithResult(_0x229fd6,null))['catch'](handleError(_0x229fd6,null));};exports[_0x64b4('0x25')]=function(_0x1d063f,_0x3b93d8){return db['Dynamics365Configuration']['find']({'where':{'id':_0x1d063f[_0x64b4('0x48')]['id']}})[_0x64b4('0x26')](handleEntityNotFound(_0x3b93d8,null))[_0x64b4('0x26')](removeEntity(_0x3b93d8,null))['catch'](handleError(_0x3b93d8,null));};exports['getFields']=function(_0x221650,_0x16a817,_0x893b7b){var _0x119b84={};var _0x5c5fa7={};var _0x465c93;var _0x5043d1;return db[_0x64b4('0x2d')][_0x64b4('0x4c')]({'where':{'id':_0x221650[_0x64b4('0x48')]['id']}})[_0x64b4('0x26')](handleEntityNotFound(_0x16a817,null))['then'](function(_0x2a2074){if(_0x2a2074){_0x465c93=_0x2a2074;_0x5c5fa7[_0x64b4('0x35')]=_['keys'](db[_0x64b4('0x4d')][_0x64b4('0x2e')]);_0x5c5fa7[_0x64b4('0x31')]=_[_0x64b4('0x32')](_0x221650['query']);_0x5c5fa7['filters']=_['intersection'](_0x5c5fa7[_0x64b4('0x35')],_0x5c5fa7[_0x64b4('0x31')]);_0x119b84[_0x64b4('0x36')]=_[_0x64b4('0x34')](_0x5c5fa7[_0x64b4('0x35')],qs[_0x64b4('0x37')](_0x221650['query'][_0x64b4('0x37')]));_0x119b84[_0x64b4('0x36')]=_0x119b84['attributes']['length']?_0x119b84[_0x64b4('0x36')]:_0x5c5fa7[_0x64b4('0x35')];_0x119b84['order']=qs['sort'](_0x221650['query'][_0x64b4('0x3c')]);_0x119b84[_0x64b4('0x3d')]=qs[_0x64b4('0x33')](_[_0x64b4('0x3e')](_0x221650[_0x64b4('0x31')],_0x5c5fa7['filters']));if(_0x221650[_0x64b4('0x31')]['filter']){_0x119b84[_0x64b4('0x3d')]=_[_0x64b4('0x40')](_0x119b84[_0x64b4('0x3d')],{'$or':_[_0x64b4('0x2c')](_0x119b84['attributes'],function(_0x1af9fc){var _0x438a8c={};_0x438a8c[_0x1af9fc]={'$like':'%'+_0x221650[_0x64b4('0x31')][_0x64b4('0x3f')]+'%'};return _0x438a8c;})});}_0x119b84=_[_0x64b4('0x40')]({},_0x119b84,_0x221650[_0x64b4('0x42')]);return _0x465c93['getFields'](_0x119b84);}})[_0x64b4('0x26')](function(_0x241cfe){if(_0x241cfe){_0x5043d1=_0x241cfe[_0x64b4('0x38')];if(!_0x221650['query'][_0x64b4('0x39')](_0x64b4('0x3a'))){_0x119b84[_0x64b4('0x1c')]=qs[_0x64b4('0x1c')](_0x221650[_0x64b4('0x31')][_0x64b4('0x1c')]);_0x119b84[_0x64b4('0x1b')]=qs[_0x64b4('0x1b')](_0x221650[_0x64b4('0x31')][_0x64b4('0x1b')]);}return _0x465c93[_0x64b4('0x4e')](_0x119b84);}})[_0x64b4('0x26')](function(_0x1967a7){if(_0x1967a7){return _0x1967a7?{'count':_0x5043d1,'rows':_0x1967a7}:null;}})['then'](respondWithResult(_0x16a817,null))['catch'](handleError(_0x16a817,null));};exports['getSubjects']=function(_0x448a2d,_0x3ff8af,_0x664a8c){var _0xae44d3={};var _0x14d913={};var _0x3d30d2;var _0x498440;return db[_0x64b4('0x2d')][_0x64b4('0x4c')]({'where':{'id':_0x448a2d[_0x64b4('0x48')]['id']}})[_0x64b4('0x26')](handleEntityNotFound(_0x3ff8af,null))[_0x64b4('0x26')](function(_0x17e80b){if(_0x17e80b){_0x3d30d2=_0x17e80b;_0x14d913[_0x64b4('0x35')]=_['keys'](db[_0x64b4('0x4d')][_0x64b4('0x2e')]);_0x14d913['query']=_[_0x64b4('0x32')](_0x448a2d['query']);_0x14d913[_0x64b4('0x33')]=_[_0x64b4('0x34')](_0x14d913[_0x64b4('0x35')],_0x14d913['query']);_0xae44d3[_0x64b4('0x36')]=_[_0x64b4('0x34')](_0x14d913['model'],qs[_0x64b4('0x37')](_0x448a2d[_0x64b4('0x31')][_0x64b4('0x37')]));_0xae44d3[_0x64b4('0x36')]=_0xae44d3[_0x64b4('0x36')][_0x64b4('0x38')]?_0xae44d3[_0x64b4('0x36')]:_0x14d913[_0x64b4('0x35')];_0xae44d3[_0x64b4('0x3b')]=qs[_0x64b4('0x3c')](_0x448a2d[_0x64b4('0x31')]['sort']);_0xae44d3[_0x64b4('0x3d')]=qs[_0x64b4('0x33')](_[_0x64b4('0x3e')](_0x448a2d['query'],_0x14d913['filters']));if(_0x448a2d[_0x64b4('0x31')][_0x64b4('0x3f')]){_0xae44d3['where']=_[_0x64b4('0x40')](_0xae44d3[_0x64b4('0x3d')],{'$or':_[_0x64b4('0x2c')](_0xae44d3[_0x64b4('0x36')],function(_0x4bdf6c){var _0x4273a8={};_0x4273a8[_0x4bdf6c]={'$like':'%'+_0x448a2d[_0x64b4('0x31')]['filter']+'%'};return _0x4273a8;})});}_0xae44d3=_[_0x64b4('0x40')]({},_0xae44d3,_0x448a2d[_0x64b4('0x42')]);return _0x3d30d2[_0x64b4('0x4f')](_0xae44d3);}})[_0x64b4('0x26')](function(_0x59447f){if(_0x59447f){_0x498440=_0x59447f['length'];if(!_0x448a2d[_0x64b4('0x31')][_0x64b4('0x39')]('nolimit')){_0xae44d3[_0x64b4('0x1c')]=qs[_0x64b4('0x1c')](_0x448a2d[_0x64b4('0x31')][_0x64b4('0x1c')]);_0xae44d3['offset']=qs[_0x64b4('0x1b')](_0x448a2d['query'][_0x64b4('0x1b')]);}return _0x3d30d2['getSubjects'](_0xae44d3);}})[_0x64b4('0x26')](function(_0xd1c91e){if(_0xd1c91e){return _0xd1c91e?{'count':_0x498440,'rows':_0xd1c91e}:null;}})['then'](respondWithResult(_0x3ff8af,null))[_0x64b4('0x46')](handleError(_0x3ff8af,null));};exports['getDescriptions']=function(_0x5ae727,_0x454fd9,_0x174ce1){var _0x233792={};var _0x10f770={};var _0x6af206;var _0x378dfa;return db[_0x64b4('0x2d')][_0x64b4('0x4c')]({'where':{'id':_0x5ae727[_0x64b4('0x48')]['id']}})[_0x64b4('0x26')](handleEntityNotFound(_0x454fd9,null))[_0x64b4('0x26')](function(_0x51d9d2){if(_0x51d9d2){_0x6af206=_0x51d9d2;_0x10f770[_0x64b4('0x35')]=_[_0x64b4('0x32')](db['Dynamics365Field'][_0x64b4('0x2e')]);_0x10f770[_0x64b4('0x31')]=_[_0x64b4('0x32')](_0x5ae727[_0x64b4('0x31')]);_0x10f770[_0x64b4('0x33')]=_[_0x64b4('0x34')](_0x10f770[_0x64b4('0x35')],_0x10f770['query']);_0x233792[_0x64b4('0x36')]=_[_0x64b4('0x34')](_0x10f770[_0x64b4('0x35')],qs['fields'](_0x5ae727[_0x64b4('0x31')][_0x64b4('0x37')]));_0x233792[_0x64b4('0x36')]=_0x233792[_0x64b4('0x36')][_0x64b4('0x38')]?_0x233792[_0x64b4('0x36')]:_0x10f770[_0x64b4('0x35')];_0x233792[_0x64b4('0x3b')]=qs[_0x64b4('0x3c')](_0x5ae727[_0x64b4('0x31')]['sort']);_0x233792[_0x64b4('0x3d')]=qs[_0x64b4('0x33')](_[_0x64b4('0x3e')](_0x5ae727[_0x64b4('0x31')],_0x10f770['filters']));if(_0x5ae727[_0x64b4('0x31')][_0x64b4('0x3f')]){_0x233792[_0x64b4('0x3d')]=_['merge'](_0x233792['where'],{'$or':_[_0x64b4('0x2c')](_0x233792[_0x64b4('0x36')],function(_0x1f7d52){var _0x13ea1d={};_0x13ea1d[_0x1f7d52]={'$like':'%'+_0x5ae727[_0x64b4('0x31')][_0x64b4('0x3f')]+'%'};return _0x13ea1d;})});}_0x233792=_[_0x64b4('0x40')]({},_0x233792,_0x5ae727[_0x64b4('0x42')]);return _0x6af206['getDescriptions'](_0x233792);}})[_0x64b4('0x26')](function(_0x21dfca){if(_0x21dfca){_0x378dfa=_0x21dfca['length'];if(!_0x5ae727[_0x64b4('0x31')][_0x64b4('0x39')](_0x64b4('0x3a'))){_0x233792['limit']=qs[_0x64b4('0x1c')](_0x5ae727[_0x64b4('0x31')][_0x64b4('0x1c')]);_0x233792[_0x64b4('0x1b')]=qs[_0x64b4('0x1b')](_0x5ae727[_0x64b4('0x31')][_0x64b4('0x1b')]);}return _0x6af206[_0x64b4('0x50')](_0x233792);}})['then'](function(_0x1d0ed6){if(_0x1d0ed6){return _0x1d0ed6?{'count':_0x378dfa,'rows':_0x1d0ed6}:null;}})['then'](respondWithResult(_0x454fd9,null))['catch'](handleError(_0x454fd9,null));};