Built motion from commit e6806ed6.|2.6.0
[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 _0x9139=['Dynamics365Configuration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','includeAll','include','rows','catch','show','find','create','body','params','getFields','getSubjects','findOne','Dynamics365Field','length','getDescriptions','rimraf','request-promise','moment','bluebird','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','count','set','Content-Range','json','reject','save','update','destroy','then','stack','name','send','index'];(function(_0x3b36aa,_0x19fc7f){var _0x95ecf7=function(_0x501bfc){while(--_0x501bfc){_0x3b36aa['push'](_0x3b36aa['shift']());}};_0x95ecf7(++_0x19fc7f);}(_0x9139,0x166));var _0x9913=function(_0x412d33,_0x2f4b49){_0x412d33=_0x412d33-0x0;var _0x59b358=_0x9139[_0x412d33];return _0x59b358;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9913('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9913('0x1'));var moment=require(_0x9913('0x2'));var BPromise=require(_0x9913('0x3'));var Mustache=require('mustache');var util=require(_0x9913('0x4'));var path=require('path');var sox=require(_0x9913('0x5'));var csv=require('to-csv');var ejs=require(_0x9913('0x6'));var fs=require('fs');var fs_extra=require(_0x9913('0x7'));var _=require(_0x9913('0x8'));var squel=require(_0x9913('0x9'));var crypto=require('crypto');var jsforce=require(_0x9913('0xa'));var deskjs=require(_0x9913('0xb'));var toCsv=require(_0x9913('0xc'));var querystring=require(_0x9913('0xd'));var Papa=require('papaparse');var Redis=require(_0x9913('0xe'));var authService=require(_0x9913('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x9913('0x10'));var hardwareService=require(_0x9913('0x11'));var logger=require(_0x9913('0x12'))(_0x9913('0x13'));var utils=require(_0x9913('0x14'));var config=require(_0x9913('0x15'));var licenseUtil=require(_0x9913('0x16'));var db=require(_0x9913('0x17'))['db'];function respondWithStatusCode(_0x7d98cc,_0x1b3a1e){_0x1b3a1e=_0x1b3a1e||0xcc;return function(_0x24e2b){if(_0x24e2b){return _0x7d98cc[_0x9913('0x18')](_0x1b3a1e);}return _0x7d98cc[_0x9913('0x19')](_0x1b3a1e)[_0x9913('0x1a')]();};}function respondWithResult(_0x1f2375,_0x35ff10){_0x35ff10=_0x35ff10||0xc8;return function(_0x4fbe2e){if(_0x4fbe2e){return _0x1f2375[_0x9913('0x19')](_0x35ff10)['json'](_0x4fbe2e);}};}function respondWithFilteredResult(_0x45145c,_0x536565){return function(_0xc64cdf){if(_0xc64cdf){var _0x33c428=typeof _0x536565[_0x9913('0x1b')]==='undefined'&&typeof _0x536565[_0x9913('0x1c')]==='undefined';var _0x3badbf=_0xc64cdf[_0x9913('0x1d')];var _0x2bba51=_0x33c428?0x0:_0x536565[_0x9913('0x1b')];var _0x25dbcf=_0x33c428?_0xc64cdf['count']:_0x536565[_0x9913('0x1b')]+_0x536565['limit'];var _0x409046;if(_0x25dbcf>=_0x3badbf){_0x25dbcf=_0x3badbf;_0x409046=0xc8;}else{_0x409046=0xce;}_0x45145c[_0x9913('0x19')](_0x409046);return _0x45145c[_0x9913('0x1e')](_0x9913('0x1f'),_0x2bba51+'-'+_0x25dbcf+'/'+_0x3badbf)[_0x9913('0x20')](_0xc64cdf);}return null;};}function patchUpdates(_0x3fbab4){return function(_0x1499e2){try{jsonpatch['apply'](_0x1499e2,_0x3fbab4,!![]);}catch(_0x3c764e){return BPromise[_0x9913('0x21')](_0x3c764e);}return _0x1499e2[_0x9913('0x22')]();};}function saveUpdates(_0x4d3fe2,_0x30d4b9){return function(_0x260f33){if(_0x260f33){return _0x260f33[_0x9913('0x23')](_0x4d3fe2)['then'](function(_0x4ce396){return _0x4ce396;});}return null;};}function removeEntity(_0x2523da,_0x12ee8f){return function(_0x5219a1){if(_0x5219a1){return _0x5219a1[_0x9913('0x24')]()[_0x9913('0x25')](function(){_0x2523da[_0x9913('0x19')](0xcc)[_0x9913('0x1a')]();});}};}function handleEntityNotFound(_0x359936,_0x4a09ac){return function(_0xe26482){if(!_0xe26482){_0x359936[_0x9913('0x18')](0x194);}return _0xe26482;};}function handleError(_0x2bb70e,_0x1961d5){_0x1961d5=_0x1961d5||0x1f4;return function(_0x509afc){logger['error'](_0x509afc[_0x9913('0x26')]);if(_0x509afc[_0x9913('0x27')]){delete _0x509afc[_0x9913('0x27')];}_0x2bb70e[_0x9913('0x19')](_0x1961d5)[_0x9913('0x28')](_0x509afc);};}exports[_0x9913('0x29')]=function(_0x1d39a0,_0x4e00ef){var _0x2b93fb={},_0x1390b2={},_0x1ebb43={'count':0x0,'rows':[]};var _0x2a397a=_['map'](db[_0x9913('0x2a')][_0x9913('0x2b')],function(_0x26cb80){return{'name':_0x26cb80[_0x9913('0x2c')],'type':_0x26cb80[_0x9913('0x2d')][_0x9913('0x2e')]};});_0x1390b2[_0x9913('0x2f')]=_['map'](_0x2a397a,_0x9913('0x27'));_0x1390b2[_0x9913('0x30')]=_[_0x9913('0x31')](_0x1d39a0[_0x9913('0x30')]);_0x1390b2[_0x9913('0x32')]=_[_0x9913('0x33')](_0x1390b2[_0x9913('0x2f')],_0x1390b2[_0x9913('0x30')]);_0x2b93fb[_0x9913('0x34')]=_[_0x9913('0x33')](_0x1390b2[_0x9913('0x2f')],qs[_0x9913('0x35')](_0x1d39a0[_0x9913('0x30')][_0x9913('0x35')]));_0x2b93fb[_0x9913('0x34')]=_0x2b93fb[_0x9913('0x34')]['length']?_0x2b93fb[_0x9913('0x34')]:_0x1390b2['model'];if(!_0x1d39a0['query'][_0x9913('0x36')](_0x9913('0x37'))){_0x2b93fb[_0x9913('0x1c')]=qs[_0x9913('0x1c')](_0x1d39a0[_0x9913('0x30')][_0x9913('0x1c')]);_0x2b93fb[_0x9913('0x1b')]=qs[_0x9913('0x1b')](_0x1d39a0[_0x9913('0x30')][_0x9913('0x1b')]);}_0x2b93fb[_0x9913('0x38')]=qs[_0x9913('0x39')](_0x1d39a0[_0x9913('0x30')]['sort']);_0x2b93fb[_0x9913('0x3a')]=qs[_0x9913('0x32')](_[_0x9913('0x3b')](_0x1d39a0[_0x9913('0x30')],_0x1390b2[_0x9913('0x32')]),_0x2a397a);if(_0x1d39a0[_0x9913('0x30')][_0x9913('0x3c')]){_0x2b93fb[_0x9913('0x3a')]=_[_0x9913('0x3d')](_0x2b93fb[_0x9913('0x3a')],{'$or':_[_0x9913('0x3e')](_0x2a397a,function(_0x298123){if(_0x298123['type']!==_0x9913('0x3f')){var _0x1b00f7={};_0x1b00f7[_0x298123[_0x9913('0x27')]]={'$like':'%'+_0x1d39a0[_0x9913('0x30')][_0x9913('0x3c')]+'%'};return _0x1b00f7;}})});}_0x2b93fb=_[_0x9913('0x3d')]({},_0x2b93fb,_0x1d39a0[_0x9913('0x40')]);var _0x5d9cc6={'where':_0x2b93fb[_0x9913('0x3a')]};return db[_0x9913('0x2a')][_0x9913('0x1d')](_0x5d9cc6)['then'](function(_0x48fa74){_0x1ebb43[_0x9913('0x1d')]=_0x48fa74;if(_0x1d39a0[_0x9913('0x30')][_0x9913('0x41')]){_0x2b93fb[_0x9913('0x42')]=[{'all':!![]}];}return db[_0x9913('0x2a')]['findAll'](_0x2b93fb);})[_0x9913('0x25')](function(_0x4c8e09){_0x1ebb43[_0x9913('0x43')]=_0x4c8e09;return _0x1ebb43;})[_0x9913('0x25')](respondWithFilteredResult(_0x4e00ef,_0x2b93fb))[_0x9913('0x44')](handleError(_0x4e00ef,null));};exports[_0x9913('0x45')]=function(_0x7f39d8,_0xa3200){var _0x3168fd={'raw':![],'where':{'id':_0x7f39d8['params']['id']}},_0x520e93={};_0x520e93[_0x9913('0x2f')]=_[_0x9913('0x31')](db[_0x9913('0x2a')][_0x9913('0x2b')]);_0x520e93['query']=_[_0x9913('0x31')](_0x7f39d8[_0x9913('0x30')]);_0x520e93[_0x9913('0x32')]=_['intersection'](_0x520e93[_0x9913('0x2f')],_0x520e93[_0x9913('0x30')]);_0x3168fd[_0x9913('0x34')]=_[_0x9913('0x33')](_0x520e93['model'],qs[_0x9913('0x35')](_0x7f39d8[_0x9913('0x30')][_0x9913('0x35')]));_0x3168fd[_0x9913('0x34')]=_0x3168fd[_0x9913('0x34')]['length']?_0x3168fd[_0x9913('0x34')]:_0x520e93[_0x9913('0x2f')];if(_0x7f39d8['query']['includeAll']){_0x3168fd[_0x9913('0x42')]=[{'all':!![]}];}_0x3168fd=_['merge']({},_0x3168fd,_0x7f39d8[_0x9913('0x40')]);return db['Dynamics365Configuration'][_0x9913('0x46')](_0x3168fd)['then'](handleEntityNotFound(_0xa3200,null))[_0x9913('0x25')](respondWithResult(_0xa3200,null))[_0x9913('0x44')](handleError(_0xa3200,null));};exports[_0x9913('0x47')]=function(_0x109eef,_0x1e2f34){return db[_0x9913('0x2a')]['create'](_0x109eef['body'],{})[_0x9913('0x25')](respondWithResult(_0x1e2f34,0xc9))[_0x9913('0x44')](handleError(_0x1e2f34,null));};exports[_0x9913('0x23')]=function(_0xc50b5d,_0x145661){if(_0xc50b5d[_0x9913('0x48')]['id']){delete _0xc50b5d['body']['id'];}return db[_0x9913('0x2a')][_0x9913('0x46')]({'where':{'id':_0xc50b5d[_0x9913('0x49')]['id']}})['then'](handleEntityNotFound(_0x145661,null))['then'](saveUpdates(_0xc50b5d['body'],null))['then'](respondWithResult(_0x145661,null))['catch'](handleError(_0x145661,null));};exports[_0x9913('0x24')]=function(_0xcb0c15,_0x367dc4){return db[_0x9913('0x2a')][_0x9913('0x46')]({'where':{'id':_0xcb0c15[_0x9913('0x49')]['id']}})[_0x9913('0x25')](handleEntityNotFound(_0x367dc4,null))['then'](removeEntity(_0x367dc4,null))[_0x9913('0x44')](handleError(_0x367dc4,null));};exports[_0x9913('0x4a')]=function(_0x498437,_0x2b9ce9,_0x3fed19){var _0x6a1d5e={};var _0x42dd9a={};var _0x4dfd62;var _0x2d2169;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x498437[_0x9913('0x49')]['id']}})['then'](handleEntityNotFound(_0x2b9ce9,null))[_0x9913('0x25')](function(_0x158861){if(_0x158861){_0x4dfd62=_0x158861;_0x42dd9a['model']=_['keys'](db['Dynamics365Field'][_0x9913('0x2b')]);_0x42dd9a['query']=_[_0x9913('0x31')](_0x498437['query']);_0x42dd9a[_0x9913('0x32')]=_[_0x9913('0x33')](_0x42dd9a[_0x9913('0x2f')],_0x42dd9a[_0x9913('0x30')]);_0x6a1d5e[_0x9913('0x34')]=_[_0x9913('0x33')](_0x42dd9a[_0x9913('0x2f')],qs[_0x9913('0x35')](_0x498437[_0x9913('0x30')]['fields']));_0x6a1d5e['attributes']=_0x6a1d5e[_0x9913('0x34')]['length']?_0x6a1d5e[_0x9913('0x34')]:_0x42dd9a[_0x9913('0x2f')];_0x6a1d5e[_0x9913('0x38')]=qs[_0x9913('0x39')](_0x498437['query'][_0x9913('0x39')]);_0x6a1d5e[_0x9913('0x3a')]=qs['filters'](_[_0x9913('0x3b')](_0x498437[_0x9913('0x30')],_0x42dd9a[_0x9913('0x32')]));if(_0x498437['query']['filter']){_0x6a1d5e[_0x9913('0x3a')]=_['merge'](_0x6a1d5e['where'],{'$or':_[_0x9913('0x3e')](_0x6a1d5e[_0x9913('0x34')],function(_0x2fd504){var _0x17c4df={};_0x17c4df[_0x2fd504]={'$like':'%'+_0x498437[_0x9913('0x30')][_0x9913('0x3c')]+'%'};return _0x17c4df;})});}_0x6a1d5e=_['merge']({},_0x6a1d5e,_0x498437[_0x9913('0x40')]);return _0x4dfd62['getFields'](_0x6a1d5e);}})[_0x9913('0x25')](function(_0x111d9e){if(_0x111d9e){_0x2d2169=_0x111d9e['length'];if(!_0x498437[_0x9913('0x30')][_0x9913('0x36')]('nolimit')){_0x6a1d5e[_0x9913('0x1c')]=qs[_0x9913('0x1c')](_0x498437[_0x9913('0x30')]['limit']);_0x6a1d5e[_0x9913('0x1b')]=qs[_0x9913('0x1b')](_0x498437[_0x9913('0x30')][_0x9913('0x1b')]);}return _0x4dfd62[_0x9913('0x4a')](_0x6a1d5e);}})[_0x9913('0x25')](function(_0x4ba733){if(_0x4ba733){return _0x4ba733?{'count':_0x2d2169,'rows':_0x4ba733}:null;}})[_0x9913('0x25')](respondWithResult(_0x2b9ce9,null))[_0x9913('0x44')](handleError(_0x2b9ce9,null));};exports[_0x9913('0x4b')]=function(_0x3fa5f0,_0x12f545,_0xe75ae3){var _0x41125c={};var _0x492184={};var _0x5bbec0;var _0x243352;return db['Dynamics365Configuration'][_0x9913('0x4c')]({'where':{'id':_0x3fa5f0[_0x9913('0x49')]['id']}})[_0x9913('0x25')](handleEntityNotFound(_0x12f545,null))[_0x9913('0x25')](function(_0x1bad68){if(_0x1bad68){_0x5bbec0=_0x1bad68;_0x492184[_0x9913('0x2f')]=_[_0x9913('0x31')](db[_0x9913('0x4d')][_0x9913('0x2b')]);_0x492184['query']=_[_0x9913('0x31')](_0x3fa5f0[_0x9913('0x30')]);_0x492184['filters']=_['intersection'](_0x492184[_0x9913('0x2f')],_0x492184[_0x9913('0x30')]);_0x41125c['attributes']=_[_0x9913('0x33')](_0x492184[_0x9913('0x2f')],qs[_0x9913('0x35')](_0x3fa5f0[_0x9913('0x30')][_0x9913('0x35')]));_0x41125c[_0x9913('0x34')]=_0x41125c['attributes'][_0x9913('0x4e')]?_0x41125c[_0x9913('0x34')]:_0x492184['model'];_0x41125c[_0x9913('0x38')]=qs[_0x9913('0x39')](_0x3fa5f0[_0x9913('0x30')][_0x9913('0x39')]);_0x41125c[_0x9913('0x3a')]=qs[_0x9913('0x32')](_[_0x9913('0x3b')](_0x3fa5f0[_0x9913('0x30')],_0x492184[_0x9913('0x32')]));if(_0x3fa5f0[_0x9913('0x30')][_0x9913('0x3c')]){_0x41125c[_0x9913('0x3a')]=_[_0x9913('0x3d')](_0x41125c['where'],{'$or':_[_0x9913('0x3e')](_0x41125c[_0x9913('0x34')],function(_0x2576b0){var _0x2cf7c4={};_0x2cf7c4[_0x2576b0]={'$like':'%'+_0x3fa5f0[_0x9913('0x30')][_0x9913('0x3c')]+'%'};return _0x2cf7c4;})});}_0x41125c=_[_0x9913('0x3d')]({},_0x41125c,_0x3fa5f0[_0x9913('0x40')]);return _0x5bbec0[_0x9913('0x4b')](_0x41125c);}})[_0x9913('0x25')](function(_0x3e43da){if(_0x3e43da){_0x243352=_0x3e43da[_0x9913('0x4e')];if(!_0x3fa5f0[_0x9913('0x30')][_0x9913('0x36')](_0x9913('0x37'))){_0x41125c[_0x9913('0x1c')]=qs[_0x9913('0x1c')](_0x3fa5f0[_0x9913('0x30')][_0x9913('0x1c')]);_0x41125c[_0x9913('0x1b')]=qs['offset'](_0x3fa5f0[_0x9913('0x30')][_0x9913('0x1b')]);}return _0x5bbec0[_0x9913('0x4b')](_0x41125c);}})[_0x9913('0x25')](function(_0x571128){if(_0x571128){return _0x571128?{'count':_0x243352,'rows':_0x571128}:null;}})[_0x9913('0x25')](respondWithResult(_0x12f545,null))[_0x9913('0x44')](handleError(_0x12f545,null));};exports[_0x9913('0x4f')]=function(_0x54893b,_0x10fa14,_0x3fef79){var _0x1f5c4c={};var _0x4bebf9={};var _0x46442a;var _0x16e305;return db[_0x9913('0x2a')][_0x9913('0x4c')]({'where':{'id':_0x54893b[_0x9913('0x49')]['id']}})[_0x9913('0x25')](handleEntityNotFound(_0x10fa14,null))[_0x9913('0x25')](function(_0x3e1be0){if(_0x3e1be0){_0x46442a=_0x3e1be0;_0x4bebf9[_0x9913('0x2f')]=_[_0x9913('0x31')](db[_0x9913('0x4d')][_0x9913('0x2b')]);_0x4bebf9[_0x9913('0x30')]=_[_0x9913('0x31')](_0x54893b[_0x9913('0x30')]);_0x4bebf9[_0x9913('0x32')]=_[_0x9913('0x33')](_0x4bebf9[_0x9913('0x2f')],_0x4bebf9[_0x9913('0x30')]);_0x1f5c4c[_0x9913('0x34')]=_[_0x9913('0x33')](_0x4bebf9[_0x9913('0x2f')],qs[_0x9913('0x35')](_0x54893b[_0x9913('0x30')][_0x9913('0x35')]));_0x1f5c4c[_0x9913('0x34')]=_0x1f5c4c['attributes'][_0x9913('0x4e')]?_0x1f5c4c[_0x9913('0x34')]:_0x4bebf9[_0x9913('0x2f')];_0x1f5c4c['order']=qs[_0x9913('0x39')](_0x54893b['query'][_0x9913('0x39')]);_0x1f5c4c['where']=qs[_0x9913('0x32')](_[_0x9913('0x3b')](_0x54893b[_0x9913('0x30')],_0x4bebf9['filters']));if(_0x54893b[_0x9913('0x30')][_0x9913('0x3c')]){_0x1f5c4c[_0x9913('0x3a')]=_[_0x9913('0x3d')](_0x1f5c4c[_0x9913('0x3a')],{'$or':_['map'](_0x1f5c4c[_0x9913('0x34')],function(_0x5be7b4){var _0x59697f={};_0x59697f[_0x5be7b4]={'$like':'%'+_0x54893b[_0x9913('0x30')][_0x9913('0x3c')]+'%'};return _0x59697f;})});}_0x1f5c4c=_[_0x9913('0x3d')]({},_0x1f5c4c,_0x54893b[_0x9913('0x40')]);return _0x46442a['getDescriptions'](_0x1f5c4c);}})[_0x9913('0x25')](function(_0x4447c1){if(_0x4447c1){_0x16e305=_0x4447c1[_0x9913('0x4e')];if(!_0x54893b[_0x9913('0x30')][_0x9913('0x36')](_0x9913('0x37'))){_0x1f5c4c['limit']=qs['limit'](_0x54893b[_0x9913('0x30')][_0x9913('0x1c')]);_0x1f5c4c[_0x9913('0x1b')]=qs[_0x9913('0x1b')](_0x54893b['query']['offset']);}return _0x46442a[_0x9913('0x4f')](_0x1f5c4c);}})[_0x9913('0x25')](function(_0x2dbeac){if(_0x2dbeac){return _0x2dbeac?{'count':_0x16e305,'rows':_0x2dbeac}:null;}})[_0x9913('0x25')](respondWithResult(_0x10fa14,null))['catch'](handleError(_0x10fa14,null));};