Built motion from commit da617fac.|2.6.6
[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 _0xfba3=['../../config/license/hardware','../../config/logger','api','../../mysqldb','end','status','offset','undefined','limit','count','Content-Range','json','update','then','error','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','Dynamics365Configuration','include','findAll','rows','show','params','includeAll','find','catch','create','body','Dynamics365Field','getFields','getDescriptions','findOne','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x254094,_0x16a405){var _0x322a4b=function(_0x216aba){while(--_0x216aba){_0x254094['push'](_0x254094['shift']());}};_0x322a4b(++_0x16a405);}(_0xfba3,0x82));var _0x3fba=function(_0x2422f1,_0x1c6afd){_0x2422f1=_0x2422f1-0x0;var _0x40a692=_0xfba3[_0x2422f1];return _0x40a692;};'use strict';var emlformat=require(_0x3fba('0x0'));var rimraf=require(_0x3fba('0x1'));var zipdir=require(_0x3fba('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3fba('0x3'));var moment=require(_0x3fba('0x4'));var BPromise=require(_0x3fba('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x3fba('0x6'));var csv=require(_0x3fba('0x7'));var ejs=require(_0x3fba('0x8'));var fs=require('fs');var fs_extra=require(_0x3fba('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x3fba('0xa'));var jsforce=require(_0x3fba('0xb'));var deskjs=require(_0x3fba('0xc'));var toCsv=require('to-csv');var querystring=require(_0x3fba('0xd'));var Papa=require(_0x3fba('0xe'));var Redis=require('ioredis');var authService=require(_0x3fba('0xf'));var qs=require(_0x3fba('0x10'));var as=require(_0x3fba('0x11'));var hardwareService=require(_0x3fba('0x12'));var logger=require(_0x3fba('0x13'))(_0x3fba('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3fba('0x15'))['db'];function respondWithStatusCode(_0x44989b,_0x4dcd0a){_0x4dcd0a=_0x4dcd0a||0xcc;return function(_0x3569cb){if(_0x3569cb){return _0x44989b['sendStatus'](_0x4dcd0a);}return _0x44989b['status'](_0x4dcd0a)[_0x3fba('0x16')]();};}function respondWithResult(_0x54d3f1,_0x11702c){_0x11702c=_0x11702c||0xc8;return function(_0x7ac65d){if(_0x7ac65d){return _0x54d3f1[_0x3fba('0x17')](_0x11702c)['json'](_0x7ac65d);}};}function respondWithFilteredResult(_0xe8737f,_0x5d5eb5){return function(_0x5e259a){if(_0x5e259a){var _0xd9bcdf=typeof _0x5d5eb5[_0x3fba('0x18')]===_0x3fba('0x19')&&typeof _0x5d5eb5[_0x3fba('0x1a')]===_0x3fba('0x19');var _0x78af54=_0x5e259a[_0x3fba('0x1b')];var _0x6f3aa9=_0xd9bcdf?0x0:_0x5d5eb5[_0x3fba('0x18')];var _0x20c0c8=_0xd9bcdf?_0x5e259a[_0x3fba('0x1b')]:_0x5d5eb5[_0x3fba('0x18')]+_0x5d5eb5[_0x3fba('0x1a')];var _0x2940fa;if(_0x20c0c8>=_0x78af54){_0x20c0c8=_0x78af54;_0x2940fa=0xc8;}else{_0x2940fa=0xce;}_0xe8737f[_0x3fba('0x17')](_0x2940fa);return _0xe8737f['set'](_0x3fba('0x1c'),_0x6f3aa9+'-'+_0x20c0c8+'/'+_0x78af54)[_0x3fba('0x1d')](_0x5e259a);}return null;};}function patchUpdates(_0x33400a){return function(_0x51d39f){try{jsonpatch['apply'](_0x51d39f,_0x33400a,!![]);}catch(_0x54c4a2){return BPromise['reject'](_0x54c4a2);}return _0x51d39f['save']();};}function saveUpdates(_0x2a36c2,_0x5b1659){return function(_0x10d930){if(_0x10d930){return _0x10d930[_0x3fba('0x1e')](_0x2a36c2)[_0x3fba('0x1f')](function(_0x3988ba){return _0x3988ba;});}return null;};}function removeEntity(_0x505726,_0x5dd8a9){return function(_0x341b34){if(_0x341b34){return _0x341b34['destroy']()[_0x3fba('0x1f')](function(){_0x505726[_0x3fba('0x17')](0xcc)[_0x3fba('0x16')]();});}};}function handleEntityNotFound(_0x10b7c8,_0xddc95c){return function(_0x4ea543){if(!_0x4ea543){_0x10b7c8['sendStatus'](0x194);}return _0x4ea543;};}function handleError(_0x573ff1,_0x9f99e6){_0x9f99e6=_0x9f99e6||0x1f4;return function(_0x321a7d){logger[_0x3fba('0x20')](_0x321a7d[_0x3fba('0x21')]);if(_0x321a7d[_0x3fba('0x22')]){delete _0x321a7d[_0x3fba('0x22')];}_0x573ff1[_0x3fba('0x17')](_0x9f99e6)['send'](_0x321a7d);};}exports[_0x3fba('0x23')]=function(_0x530484,_0x395580){var _0x1925f1={},_0x49dba4={},_0x4b9c07={'count':0x0,'rows':[]};var _0x5b7496=_[_0x3fba('0x24')](db['Dynamics365Configuration'][_0x3fba('0x25')],function(_0x53b6c7){return{'name':_0x53b6c7[_0x3fba('0x26')],'type':_0x53b6c7['type'][_0x3fba('0x27')]};});_0x49dba4[_0x3fba('0x28')]=_['map'](_0x5b7496,_0x3fba('0x22'));_0x49dba4[_0x3fba('0x29')]=_[_0x3fba('0x2a')](_0x530484[_0x3fba('0x29')]);_0x49dba4['filters']=_['intersection'](_0x49dba4[_0x3fba('0x28')],_0x49dba4[_0x3fba('0x29')]);_0x1925f1['attributes']=_[_0x3fba('0x2b')](_0x49dba4[_0x3fba('0x28')],qs['fields'](_0x530484[_0x3fba('0x29')][_0x3fba('0x2c')]));_0x1925f1[_0x3fba('0x2d')]=_0x1925f1[_0x3fba('0x2d')][_0x3fba('0x2e')]?_0x1925f1['attributes']:_0x49dba4[_0x3fba('0x28')];if(!_0x530484[_0x3fba('0x29')][_0x3fba('0x2f')](_0x3fba('0x30'))){_0x1925f1[_0x3fba('0x1a')]=qs[_0x3fba('0x1a')](_0x530484[_0x3fba('0x29')][_0x3fba('0x1a')]);_0x1925f1[_0x3fba('0x18')]=qs[_0x3fba('0x18')](_0x530484[_0x3fba('0x29')][_0x3fba('0x18')]);}_0x1925f1[_0x3fba('0x31')]=qs[_0x3fba('0x32')](_0x530484[_0x3fba('0x29')][_0x3fba('0x32')]);_0x1925f1[_0x3fba('0x33')]=qs[_0x3fba('0x34')](_[_0x3fba('0x35')](_0x530484[_0x3fba('0x29')],_0x49dba4[_0x3fba('0x34')]),_0x5b7496);if(_0x530484['query'][_0x3fba('0x36')]){_0x1925f1[_0x3fba('0x33')]=_[_0x3fba('0x37')](_0x1925f1['where'],{'$or':_['map'](_0x5b7496,function(_0x1d8434){if(_0x1d8434[_0x3fba('0x38')]!==_0x3fba('0x39')){var _0x4f571e={};_0x4f571e[_0x1d8434[_0x3fba('0x22')]]={'$like':'%'+_0x530484[_0x3fba('0x29')][_0x3fba('0x36')]+'%'};return _0x4f571e;}})});}_0x1925f1=_['merge']({},_0x1925f1,_0x530484[_0x3fba('0x3a')]);var _0x537770={'where':_0x1925f1[_0x3fba('0x33')]};return db[_0x3fba('0x3b')]['count'](_0x537770)[_0x3fba('0x1f')](function(_0x21cda7){_0x4b9c07['count']=_0x21cda7;if(_0x530484['query']['includeAll']){_0x1925f1[_0x3fba('0x3c')]=[{'all':!![]}];}return db['Dynamics365Configuration'][_0x3fba('0x3d')](_0x1925f1);})['then'](function(_0x1984d5){_0x4b9c07[_0x3fba('0x3e')]=_0x1984d5;return _0x4b9c07;})[_0x3fba('0x1f')](respondWithFilteredResult(_0x395580,_0x1925f1))['catch'](handleError(_0x395580,null));};exports[_0x3fba('0x3f')]=function(_0x1757d5,_0x1013f5){var _0x43a8bd={'raw':![],'where':{'id':_0x1757d5[_0x3fba('0x40')]['id']}},_0x44aa8b={};_0x44aa8b[_0x3fba('0x28')]=_['keys'](db[_0x3fba('0x3b')][_0x3fba('0x25')]);_0x44aa8b[_0x3fba('0x29')]=_['keys'](_0x1757d5['query']);_0x44aa8b[_0x3fba('0x34')]=_[_0x3fba('0x2b')](_0x44aa8b['model'],_0x44aa8b['query']);_0x43a8bd[_0x3fba('0x2d')]=_[_0x3fba('0x2b')](_0x44aa8b[_0x3fba('0x28')],qs['fields'](_0x1757d5['query']['fields']));_0x43a8bd[_0x3fba('0x2d')]=_0x43a8bd[_0x3fba('0x2d')]['length']?_0x43a8bd[_0x3fba('0x2d')]:_0x44aa8b[_0x3fba('0x28')];if(_0x1757d5[_0x3fba('0x29')][_0x3fba('0x41')]){_0x43a8bd['include']=[{'all':!![]}];}_0x43a8bd=_[_0x3fba('0x37')]({},_0x43a8bd,_0x1757d5['options']);return db['Dynamics365Configuration'][_0x3fba('0x42')](_0x43a8bd)[_0x3fba('0x1f')](handleEntityNotFound(_0x1013f5,null))[_0x3fba('0x1f')](respondWithResult(_0x1013f5,null))[_0x3fba('0x43')](handleError(_0x1013f5,null));};exports[_0x3fba('0x44')]=function(_0x915180,_0x585879){return db['Dynamics365Configuration'][_0x3fba('0x44')](_0x915180[_0x3fba('0x45')],{})[_0x3fba('0x1f')](respondWithResult(_0x585879,0xc9))['catch'](handleError(_0x585879,null));};exports['update']=function(_0x270a0a,_0x450edb){if(_0x270a0a[_0x3fba('0x45')]['id']){delete _0x270a0a[_0x3fba('0x45')]['id'];}return db[_0x3fba('0x3b')][_0x3fba('0x42')]({'where':{'id':_0x270a0a[_0x3fba('0x40')]['id']}})[_0x3fba('0x1f')](handleEntityNotFound(_0x450edb,null))[_0x3fba('0x1f')](saveUpdates(_0x270a0a[_0x3fba('0x45')],null))[_0x3fba('0x1f')](respondWithResult(_0x450edb,null))[_0x3fba('0x43')](handleError(_0x450edb,null));};exports['destroy']=function(_0x28ddaa,_0x55e1aa){return db[_0x3fba('0x3b')][_0x3fba('0x42')]({'where':{'id':_0x28ddaa[_0x3fba('0x40')]['id']}})[_0x3fba('0x1f')](handleEntityNotFound(_0x55e1aa,null))[_0x3fba('0x1f')](removeEntity(_0x55e1aa,null))[_0x3fba('0x43')](handleError(_0x55e1aa,null));};exports['getFields']=function(_0x560009,_0xd6269a,_0x5cacdd){var _0x5d75c9={};var _0xbe7e7e={};var _0x34aa06;var _0x530566;return db[_0x3fba('0x3b')]['findOne']({'where':{'id':_0x560009[_0x3fba('0x40')]['id']}})[_0x3fba('0x1f')](handleEntityNotFound(_0xd6269a,null))['then'](function(_0x10ffc0){if(_0x10ffc0){_0x34aa06=_0x10ffc0;_0xbe7e7e[_0x3fba('0x28')]=_[_0x3fba('0x2a')](db[_0x3fba('0x46')][_0x3fba('0x25')]);_0xbe7e7e[_0x3fba('0x29')]=_[_0x3fba('0x2a')](_0x560009[_0x3fba('0x29')]);_0xbe7e7e[_0x3fba('0x34')]=_[_0x3fba('0x2b')](_0xbe7e7e[_0x3fba('0x28')],_0xbe7e7e[_0x3fba('0x29')]);_0x5d75c9['attributes']=_[_0x3fba('0x2b')](_0xbe7e7e['model'],qs[_0x3fba('0x2c')](_0x560009[_0x3fba('0x29')]['fields']));_0x5d75c9[_0x3fba('0x2d')]=_0x5d75c9['attributes'][_0x3fba('0x2e')]?_0x5d75c9['attributes']:_0xbe7e7e['model'];_0x5d75c9['order']=qs[_0x3fba('0x32')](_0x560009[_0x3fba('0x29')][_0x3fba('0x32')]);_0x5d75c9[_0x3fba('0x33')]=qs[_0x3fba('0x34')](_[_0x3fba('0x35')](_0x560009['query'],_0xbe7e7e[_0x3fba('0x34')]));if(_0x560009['query'][_0x3fba('0x36')]){_0x5d75c9[_0x3fba('0x33')]=_[_0x3fba('0x37')](_0x5d75c9[_0x3fba('0x33')],{'$or':_[_0x3fba('0x24')](_0x5d75c9['attributes'],function(_0x4d663e){var _0x37ec7e={};_0x37ec7e[_0x4d663e]={'$like':'%'+_0x560009[_0x3fba('0x29')][_0x3fba('0x36')]+'%'};return _0x37ec7e;})});}_0x5d75c9=_[_0x3fba('0x37')]({},_0x5d75c9,_0x560009['options']);return _0x34aa06[_0x3fba('0x47')](_0x5d75c9);}})['then'](function(_0x4f93c8){if(_0x4f93c8){_0x530566=_0x4f93c8[_0x3fba('0x2e')];if(!_0x560009[_0x3fba('0x29')][_0x3fba('0x2f')](_0x3fba('0x30'))){_0x5d75c9[_0x3fba('0x1a')]=qs[_0x3fba('0x1a')](_0x560009[_0x3fba('0x29')][_0x3fba('0x1a')]);_0x5d75c9['offset']=qs[_0x3fba('0x18')](_0x560009[_0x3fba('0x29')][_0x3fba('0x18')]);}return _0x34aa06[_0x3fba('0x47')](_0x5d75c9);}})[_0x3fba('0x1f')](function(_0x309687){if(_0x309687){return _0x309687?{'count':_0x530566,'rows':_0x309687}:null;}})[_0x3fba('0x1f')](respondWithResult(_0xd6269a,null))['catch'](handleError(_0xd6269a,null));};exports['getSubjects']=function(_0x2763b6,_0xe2eac,_0x444e64){var _0x11d9ed={};var _0x89a403={};var _0xcd32bf;var _0x4efbe4;return db[_0x3fba('0x3b')]['findOne']({'where':{'id':_0x2763b6['params']['id']}})[_0x3fba('0x1f')](handleEntityNotFound(_0xe2eac,null))[_0x3fba('0x1f')](function(_0xc6bb0d){if(_0xc6bb0d){_0xcd32bf=_0xc6bb0d;_0x89a403[_0x3fba('0x28')]=_[_0x3fba('0x2a')](db[_0x3fba('0x46')][_0x3fba('0x25')]);_0x89a403[_0x3fba('0x29')]=_[_0x3fba('0x2a')](_0x2763b6['query']);_0x89a403['filters']=_[_0x3fba('0x2b')](_0x89a403[_0x3fba('0x28')],_0x89a403[_0x3fba('0x29')]);_0x11d9ed['attributes']=_['intersection'](_0x89a403[_0x3fba('0x28')],qs[_0x3fba('0x2c')](_0x2763b6[_0x3fba('0x29')]['fields']));_0x11d9ed[_0x3fba('0x2d')]=_0x11d9ed['attributes']['length']?_0x11d9ed['attributes']:_0x89a403[_0x3fba('0x28')];_0x11d9ed[_0x3fba('0x31')]=qs[_0x3fba('0x32')](_0x2763b6[_0x3fba('0x29')][_0x3fba('0x32')]);_0x11d9ed['where']=qs[_0x3fba('0x34')](_[_0x3fba('0x35')](_0x2763b6[_0x3fba('0x29')],_0x89a403['filters']));if(_0x2763b6[_0x3fba('0x29')][_0x3fba('0x36')]){_0x11d9ed['where']=_[_0x3fba('0x37')](_0x11d9ed['where'],{'$or':_[_0x3fba('0x24')](_0x11d9ed[_0x3fba('0x2d')],function(_0x23746d){var _0x30e9b5={};_0x30e9b5[_0x23746d]={'$like':'%'+_0x2763b6[_0x3fba('0x29')][_0x3fba('0x36')]+'%'};return _0x30e9b5;})});}_0x11d9ed=_['merge']({},_0x11d9ed,_0x2763b6[_0x3fba('0x3a')]);return _0xcd32bf['getSubjects'](_0x11d9ed);}})['then'](function(_0x45121d){if(_0x45121d){_0x4efbe4=_0x45121d[_0x3fba('0x2e')];if(!_0x2763b6[_0x3fba('0x29')][_0x3fba('0x2f')](_0x3fba('0x30'))){_0x11d9ed['limit']=qs['limit'](_0x2763b6['query'][_0x3fba('0x1a')]);_0x11d9ed[_0x3fba('0x18')]=qs['offset'](_0x2763b6[_0x3fba('0x29')]['offset']);}return _0xcd32bf['getSubjects'](_0x11d9ed);}})[_0x3fba('0x1f')](function(_0x13d1f1){if(_0x13d1f1){return _0x13d1f1?{'count':_0x4efbe4,'rows':_0x13d1f1}:null;}})[_0x3fba('0x1f')](respondWithResult(_0xe2eac,null))[_0x3fba('0x43')](handleError(_0xe2eac,null));};exports[_0x3fba('0x48')]=function(_0x4b1c3f,_0x4af0cd,_0x28a9d3){var _0x423c9a={};var _0x17d60d={};var _0x54f380;var _0x3c08a9;return db[_0x3fba('0x3b')][_0x3fba('0x49')]({'where':{'id':_0x4b1c3f[_0x3fba('0x40')]['id']}})[_0x3fba('0x1f')](handleEntityNotFound(_0x4af0cd,null))[_0x3fba('0x1f')](function(_0x5ebce1){if(_0x5ebce1){_0x54f380=_0x5ebce1;_0x17d60d[_0x3fba('0x28')]=_[_0x3fba('0x2a')](db[_0x3fba('0x46')][_0x3fba('0x25')]);_0x17d60d[_0x3fba('0x29')]=_[_0x3fba('0x2a')](_0x4b1c3f['query']);_0x17d60d[_0x3fba('0x34')]=_[_0x3fba('0x2b')](_0x17d60d[_0x3fba('0x28')],_0x17d60d[_0x3fba('0x29')]);_0x423c9a[_0x3fba('0x2d')]=_[_0x3fba('0x2b')](_0x17d60d[_0x3fba('0x28')],qs[_0x3fba('0x2c')](_0x4b1c3f[_0x3fba('0x29')]['fields']));_0x423c9a['attributes']=_0x423c9a[_0x3fba('0x2d')][_0x3fba('0x2e')]?_0x423c9a[_0x3fba('0x2d')]:_0x17d60d[_0x3fba('0x28')];_0x423c9a[_0x3fba('0x31')]=qs[_0x3fba('0x32')](_0x4b1c3f[_0x3fba('0x29')]['sort']);_0x423c9a[_0x3fba('0x33')]=qs[_0x3fba('0x34')](_['pick'](_0x4b1c3f[_0x3fba('0x29')],_0x17d60d['filters']));if(_0x4b1c3f[_0x3fba('0x29')][_0x3fba('0x36')]){_0x423c9a[_0x3fba('0x33')]=_[_0x3fba('0x37')](_0x423c9a[_0x3fba('0x33')],{'$or':_['map'](_0x423c9a[_0x3fba('0x2d')],function(_0x3abb0f){var _0x40f608={};_0x40f608[_0x3abb0f]={'$like':'%'+_0x4b1c3f[_0x3fba('0x29')]['filter']+'%'};return _0x40f608;})});}_0x423c9a=_['merge']({},_0x423c9a,_0x4b1c3f[_0x3fba('0x3a')]);return _0x54f380['getDescriptions'](_0x423c9a);}})[_0x3fba('0x1f')](function(_0x505883){if(_0x505883){_0x3c08a9=_0x505883[_0x3fba('0x2e')];if(!_0x4b1c3f[_0x3fba('0x29')][_0x3fba('0x2f')](_0x3fba('0x30'))){_0x423c9a[_0x3fba('0x1a')]=qs[_0x3fba('0x1a')](_0x4b1c3f[_0x3fba('0x29')][_0x3fba('0x1a')]);_0x423c9a['offset']=qs[_0x3fba('0x18')](_0x4b1c3f[_0x3fba('0x29')]['offset']);}return _0x54f380[_0x3fba('0x48')](_0x423c9a);}})[_0x3fba('0x1f')](function(_0x5298cf){if(_0x5298cf){return _0x5298cf?{'count':_0x3c08a9,'rows':_0x5298cf}:null;}})[_0x3fba('0x1f')](respondWithResult(_0x4af0cd,null))[_0x3fba('0x43')](handleError(_0x4af0cd,null));};