a0efb1f7ba940aeab203d9dfd37b6ddbe059d42c
[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 _0x36e6=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','Dynamics365Configuration','type','map','query','keys','intersection','fields','attributes','model','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','options','find','create','body','findOne','Dynamics365Field','rawAttributes','getFields','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto'];(function(_0x2f8598,_0x5566ba){var _0x12a10d=function(_0x3079dc){while(--_0x3079dc){_0x2f8598['push'](_0x2f8598['shift']());}};_0x12a10d(++_0x5566ba);}(_0x36e6,0x13e));var _0x636e=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x36e6[_0x3ab51d];return _0x29a04e;};'use strict';var emlformat=require(_0x636e('0x0'));var rimraf=require(_0x636e('0x1'));var zipdir=require(_0x636e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x636e('0x3'));var moment=require(_0x636e('0x4'));var BPromise=require(_0x636e('0x5'));var Mustache=require(_0x636e('0x6'));var util=require(_0x636e('0x7'));var path=require(_0x636e('0x8'));var sox=require(_0x636e('0x9'));var csv=require(_0x636e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x636e('0xb'));var squel=require(_0x636e('0xc'));var crypto=require(_0x636e('0xd'));var jsforce=require(_0x636e('0xe'));var deskjs=require(_0x636e('0xf'));var toCsv=require(_0x636e('0xa'));var querystring=require(_0x636e('0x10'));var Papa=require(_0x636e('0x11'));var Redis=require(_0x636e('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x636e('0x13'));var as=require(_0x636e('0x14'));var hardwareService=require(_0x636e('0x15'));var logger=require(_0x636e('0x16'))('api');var utils=require(_0x636e('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x636e('0x18'));var db=require(_0x636e('0x19'))['db'];function respondWithStatusCode(_0x204df1,_0x198622){_0x198622=_0x198622||0xcc;return function(_0x1899c8){if(_0x1899c8){return _0x204df1[_0x636e('0x1a')](_0x198622);}return _0x204df1[_0x636e('0x1b')](_0x198622)['end']();};}function respondWithResult(_0x5984ea,_0x1dd624){_0x1dd624=_0x1dd624||0xc8;return function(_0x278d4d){if(_0x278d4d){return _0x5984ea[_0x636e('0x1b')](_0x1dd624)[_0x636e('0x1c')](_0x278d4d);}};}function respondWithFilteredResult(_0x16f220,_0x51c10c){return function(_0x2a81c0){if(_0x2a81c0){var _0x4385a2=typeof _0x51c10c['offset']===_0x636e('0x1d')&&typeof _0x51c10c['limit']===_0x636e('0x1d');var _0x4c9eaa=_0x2a81c0[_0x636e('0x1e')];var _0x5cfec9=_0x4385a2?0x0:_0x51c10c['offset'];var _0xe48bed=_0x4385a2?_0x2a81c0[_0x636e('0x1e')]:_0x51c10c[_0x636e('0x1f')]+_0x51c10c[_0x636e('0x20')];var _0x36fb8d;if(_0xe48bed>=_0x4c9eaa){_0xe48bed=_0x4c9eaa;_0x36fb8d=0xc8;}else{_0x36fb8d=0xce;}_0x16f220[_0x636e('0x1b')](_0x36fb8d);return _0x16f220[_0x636e('0x21')](_0x636e('0x22'),_0x5cfec9+'-'+_0xe48bed+'/'+_0x4c9eaa)['json'](_0x2a81c0);}return null;};}function patchUpdates(_0x58cb0b){return function(_0x2f80e4){try{jsonpatch[_0x636e('0x23')](_0x2f80e4,_0x58cb0b,!![]);}catch(_0x5b3a21){return BPromise[_0x636e('0x24')](_0x5b3a21);}return _0x2f80e4[_0x636e('0x25')]();};}function saveUpdates(_0x547958,_0x2eaf94){return function(_0x384450){if(_0x384450){return _0x384450[_0x636e('0x26')](_0x547958)['then'](function(_0x1d18f4){return _0x1d18f4;});}return null;};}function removeEntity(_0x1a06fd,_0x4f3b06){return function(_0x207ef5){if(_0x207ef5){return _0x207ef5[_0x636e('0x27')]()[_0x636e('0x28')](function(){_0x1a06fd['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x315bfe,_0x49ee1d){return function(_0x1310fc){if(!_0x1310fc){_0x315bfe[_0x636e('0x1a')](0x194);}return _0x1310fc;};}function handleError(_0x908ae4,_0x43687f){_0x43687f=_0x43687f||0x1f4;return function(_0x424db7){logger[_0x636e('0x29')](_0x424db7[_0x636e('0x2a')]);if(_0x424db7[_0x636e('0x2b')]){delete _0x424db7[_0x636e('0x2b')];}_0x908ae4[_0x636e('0x1b')](_0x43687f)[_0x636e('0x2c')](_0x424db7);};}exports[_0x636e('0x2d')]=function(_0x224a9d,_0x488877){var _0x537fb6={},_0x3a62a9={},_0x33dbab={'count':0x0,'rows':[]};var _0x71bc33=_['map'](db[_0x636e('0x2e')]['rawAttributes'],function(_0x49c5f2){return{'name':_0x49c5f2['fieldName'],'type':_0x49c5f2[_0x636e('0x2f')]['key']};});_0x3a62a9['model']=_[_0x636e('0x30')](_0x71bc33,'name');_0x3a62a9[_0x636e('0x31')]=_[_0x636e('0x32')](_0x224a9d[_0x636e('0x31')]);_0x3a62a9['filters']=_[_0x636e('0x33')](_0x3a62a9['model'],_0x3a62a9[_0x636e('0x31')]);_0x537fb6['attributes']=_[_0x636e('0x33')](_0x3a62a9['model'],qs[_0x636e('0x34')](_0x224a9d['query'][_0x636e('0x34')]));_0x537fb6[_0x636e('0x35')]=_0x537fb6[_0x636e('0x35')]['length']?_0x537fb6[_0x636e('0x35')]:_0x3a62a9[_0x636e('0x36')];if(!_0x224a9d[_0x636e('0x31')][_0x636e('0x37')](_0x636e('0x38'))){_0x537fb6[_0x636e('0x20')]=qs[_0x636e('0x20')](_0x224a9d[_0x636e('0x31')][_0x636e('0x20')]);_0x537fb6[_0x636e('0x1f')]=qs[_0x636e('0x1f')](_0x224a9d[_0x636e('0x31')][_0x636e('0x1f')]);}_0x537fb6[_0x636e('0x39')]=qs[_0x636e('0x3a')](_0x224a9d[_0x636e('0x31')][_0x636e('0x3a')]);_0x537fb6['where']=qs[_0x636e('0x3b')](_[_0x636e('0x3c')](_0x224a9d[_0x636e('0x31')],_0x3a62a9[_0x636e('0x3b')]),_0x71bc33);if(_0x224a9d['query'][_0x636e('0x3d')]){_0x537fb6[_0x636e('0x3e')]=_[_0x636e('0x3f')](_0x537fb6[_0x636e('0x3e')],{'$or':_[_0x636e('0x30')](_0x71bc33,function(_0x4f012c){if(_0x4f012c['type']!==_0x636e('0x40')){var _0x3eae0b={};_0x3eae0b[_0x4f012c[_0x636e('0x2b')]]={'$like':'%'+_0x224a9d[_0x636e('0x31')][_0x636e('0x3d')]+'%'};return _0x3eae0b;}})});}_0x537fb6=_[_0x636e('0x3f')]({},_0x537fb6,_0x224a9d['options']);var _0x3f6bed={'where':_0x537fb6[_0x636e('0x3e')]};return db[_0x636e('0x2e')][_0x636e('0x1e')](_0x3f6bed)['then'](function(_0xb4f1d8){_0x33dbab[_0x636e('0x1e')]=_0xb4f1d8;if(_0x224a9d['query'][_0x636e('0x41')]){_0x537fb6[_0x636e('0x42')]=[{'all':!![]}];}return db[_0x636e('0x2e')][_0x636e('0x43')](_0x537fb6);})[_0x636e('0x28')](function(_0x482058){_0x33dbab[_0x636e('0x44')]=_0x482058;return _0x33dbab;})['then'](respondWithFilteredResult(_0x488877,_0x537fb6))[_0x636e('0x45')](handleError(_0x488877,null));};exports[_0x636e('0x46')]=function(_0x2972a1,_0x104501){var _0x5032f0={'raw':![],'where':{'id':_0x2972a1[_0x636e('0x47')]['id']}},_0x3dc2d1={};_0x3dc2d1[_0x636e('0x36')]=_['keys'](db[_0x636e('0x2e')]['rawAttributes']);_0x3dc2d1[_0x636e('0x31')]=_['keys'](_0x2972a1[_0x636e('0x31')]);_0x3dc2d1['filters']=_[_0x636e('0x33')](_0x3dc2d1[_0x636e('0x36')],_0x3dc2d1['query']);_0x5032f0[_0x636e('0x35')]=_[_0x636e('0x33')](_0x3dc2d1['model'],qs[_0x636e('0x34')](_0x2972a1[_0x636e('0x31')][_0x636e('0x34')]));_0x5032f0[_0x636e('0x35')]=_0x5032f0[_0x636e('0x35')][_0x636e('0x48')]?_0x5032f0['attributes']:_0x3dc2d1[_0x636e('0x36')];if(_0x2972a1['query'][_0x636e('0x41')]){_0x5032f0[_0x636e('0x42')]=[{'all':!![]}];}_0x5032f0=_[_0x636e('0x3f')]({},_0x5032f0,_0x2972a1[_0x636e('0x49')]);return db[_0x636e('0x2e')][_0x636e('0x4a')](_0x5032f0)[_0x636e('0x28')](handleEntityNotFound(_0x104501,null))['then'](respondWithResult(_0x104501,null))[_0x636e('0x45')](handleError(_0x104501,null));};exports[_0x636e('0x4b')]=function(_0x416949,_0x1ac8c3){return db[_0x636e('0x2e')][_0x636e('0x4b')](_0x416949['body'],{})[_0x636e('0x28')](respondWithResult(_0x1ac8c3,0xc9))[_0x636e('0x45')](handleError(_0x1ac8c3,null));};exports['update']=function(_0x1bda58,_0x1505a3){if(_0x1bda58[_0x636e('0x4c')]['id']){delete _0x1bda58[_0x636e('0x4c')]['id'];}return db['Dynamics365Configuration']['find']({'where':{'id':_0x1bda58['params']['id']}})[_0x636e('0x28')](handleEntityNotFound(_0x1505a3,null))[_0x636e('0x28')](saveUpdates(_0x1bda58['body'],null))[_0x636e('0x28')](respondWithResult(_0x1505a3,null))['catch'](handleError(_0x1505a3,null));};exports['destroy']=function(_0x34df4f,_0x3dc6e6){return db[_0x636e('0x2e')][_0x636e('0x4a')]({'where':{'id':_0x34df4f[_0x636e('0x47')]['id']}})[_0x636e('0x28')](handleEntityNotFound(_0x3dc6e6,null))[_0x636e('0x28')](removeEntity(_0x3dc6e6,null))[_0x636e('0x45')](handleError(_0x3dc6e6,null));};exports['getFields']=function(_0x1afd03,_0x4bc2b2,_0x5c9d78){var _0x450dc1={};var _0x3116de={};var _0x53005f;var _0x58e36d;return db[_0x636e('0x2e')][_0x636e('0x4d')]({'where':{'id':_0x1afd03[_0x636e('0x47')]['id']}})['then'](handleEntityNotFound(_0x4bc2b2,null))['then'](function(_0x2ba55f){if(_0x2ba55f){_0x53005f=_0x2ba55f;_0x3116de[_0x636e('0x36')]=_['keys'](db[_0x636e('0x4e')][_0x636e('0x4f')]);_0x3116de[_0x636e('0x31')]=_[_0x636e('0x32')](_0x1afd03['query']);_0x3116de[_0x636e('0x3b')]=_[_0x636e('0x33')](_0x3116de['model'],_0x3116de[_0x636e('0x31')]);_0x450dc1['attributes']=_[_0x636e('0x33')](_0x3116de['model'],qs['fields'](_0x1afd03['query'][_0x636e('0x34')]));_0x450dc1[_0x636e('0x35')]=_0x450dc1[_0x636e('0x35')][_0x636e('0x48')]?_0x450dc1['attributes']:_0x3116de[_0x636e('0x36')];_0x450dc1[_0x636e('0x39')]=qs['sort'](_0x1afd03[_0x636e('0x31')][_0x636e('0x3a')]);_0x450dc1['where']=qs['filters'](_[_0x636e('0x3c')](_0x1afd03['query'],_0x3116de[_0x636e('0x3b')]));if(_0x1afd03[_0x636e('0x31')][_0x636e('0x3d')]){_0x450dc1[_0x636e('0x3e')]=_['merge'](_0x450dc1[_0x636e('0x3e')],{'$or':_[_0x636e('0x30')](_0x450dc1['attributes'],function(_0x47054f){var _0x544358={};_0x544358[_0x47054f]={'$like':'%'+_0x1afd03[_0x636e('0x31')][_0x636e('0x3d')]+'%'};return _0x544358;})});}_0x450dc1=_[_0x636e('0x3f')]({},_0x450dc1,_0x1afd03['options']);return _0x53005f[_0x636e('0x50')](_0x450dc1);}})[_0x636e('0x28')](function(_0x4bd1ef){if(_0x4bd1ef){_0x58e36d=_0x4bd1ef['length'];if(!_0x1afd03[_0x636e('0x31')][_0x636e('0x37')](_0x636e('0x38'))){_0x450dc1[_0x636e('0x20')]=qs[_0x636e('0x20')](_0x1afd03[_0x636e('0x31')]['limit']);_0x450dc1[_0x636e('0x1f')]=qs['offset'](_0x1afd03['query'][_0x636e('0x1f')]);}return _0x53005f[_0x636e('0x50')](_0x450dc1);}})[_0x636e('0x28')](function(_0x3bbc41){if(_0x3bbc41){return _0x3bbc41?{'count':_0x58e36d,'rows':_0x3bbc41}:null;}})[_0x636e('0x28')](respondWithResult(_0x4bc2b2,null))[_0x636e('0x45')](handleError(_0x4bc2b2,null));};exports[_0x636e('0x51')]=function(_0x3d71a5,_0x2601a5,_0x34182b){var _0x370a92={};var _0x860ee={};var _0x2b737c;var _0xd85602;return db[_0x636e('0x2e')][_0x636e('0x4d')]({'where':{'id':_0x3d71a5[_0x636e('0x47')]['id']}})[_0x636e('0x28')](handleEntityNotFound(_0x2601a5,null))[_0x636e('0x28')](function(_0x210f4e){if(_0x210f4e){_0x2b737c=_0x210f4e;_0x860ee[_0x636e('0x36')]=_['keys'](db[_0x636e('0x4e')][_0x636e('0x4f')]);_0x860ee[_0x636e('0x31')]=_[_0x636e('0x32')](_0x3d71a5[_0x636e('0x31')]);_0x860ee[_0x636e('0x3b')]=_[_0x636e('0x33')](_0x860ee[_0x636e('0x36')],_0x860ee[_0x636e('0x31')]);_0x370a92[_0x636e('0x35')]=_[_0x636e('0x33')](_0x860ee[_0x636e('0x36')],qs[_0x636e('0x34')](_0x3d71a5[_0x636e('0x31')]['fields']));_0x370a92[_0x636e('0x35')]=_0x370a92[_0x636e('0x35')]['length']?_0x370a92['attributes']:_0x860ee[_0x636e('0x36')];_0x370a92[_0x636e('0x39')]=qs['sort'](_0x3d71a5[_0x636e('0x31')][_0x636e('0x3a')]);_0x370a92[_0x636e('0x3e')]=qs[_0x636e('0x3b')](_[_0x636e('0x3c')](_0x3d71a5[_0x636e('0x31')],_0x860ee[_0x636e('0x3b')]));if(_0x3d71a5[_0x636e('0x31')]['filter']){_0x370a92['where']=_['merge'](_0x370a92[_0x636e('0x3e')],{'$or':_[_0x636e('0x30')](_0x370a92[_0x636e('0x35')],function(_0x2999c2){var _0x5c845d={};_0x5c845d[_0x2999c2]={'$like':'%'+_0x3d71a5[_0x636e('0x31')]['filter']+'%'};return _0x5c845d;})});}_0x370a92=_[_0x636e('0x3f')]({},_0x370a92,_0x3d71a5[_0x636e('0x49')]);return _0x2b737c[_0x636e('0x51')](_0x370a92);}})[_0x636e('0x28')](function(_0x2bd3e1){if(_0x2bd3e1){_0xd85602=_0x2bd3e1[_0x636e('0x48')];if(!_0x3d71a5[_0x636e('0x31')][_0x636e('0x37')](_0x636e('0x38'))){_0x370a92['limit']=qs[_0x636e('0x20')](_0x3d71a5[_0x636e('0x31')][_0x636e('0x20')]);_0x370a92[_0x636e('0x1f')]=qs[_0x636e('0x1f')](_0x3d71a5[_0x636e('0x31')][_0x636e('0x1f')]);}return _0x2b737c['getSubjects'](_0x370a92);}})[_0x636e('0x28')](function(_0x2d6f6b){if(_0x2d6f6b){return _0x2d6f6b?{'count':_0xd85602,'rows':_0x2d6f6b}:null;}})['then'](respondWithResult(_0x2601a5,null))[_0x636e('0x45')](handleError(_0x2601a5,null));};exports[_0x636e('0x52')]=function(_0x537e2f,_0x269678,_0x3f9eec){var _0x3d7a06={};var _0x34bd17={};var _0xc6f2a7;var _0x28a172;return db[_0x636e('0x2e')][_0x636e('0x4d')]({'where':{'id':_0x537e2f[_0x636e('0x47')]['id']}})[_0x636e('0x28')](handleEntityNotFound(_0x269678,null))[_0x636e('0x28')](function(_0x124755){if(_0x124755){_0xc6f2a7=_0x124755;_0x34bd17['model']=_[_0x636e('0x32')](db['Dynamics365Field']['rawAttributes']);_0x34bd17[_0x636e('0x31')]=_['keys'](_0x537e2f[_0x636e('0x31')]);_0x34bd17[_0x636e('0x3b')]=_[_0x636e('0x33')](_0x34bd17[_0x636e('0x36')],_0x34bd17[_0x636e('0x31')]);_0x3d7a06[_0x636e('0x35')]=_['intersection'](_0x34bd17[_0x636e('0x36')],qs[_0x636e('0x34')](_0x537e2f[_0x636e('0x31')]['fields']));_0x3d7a06[_0x636e('0x35')]=_0x3d7a06['attributes'][_0x636e('0x48')]?_0x3d7a06[_0x636e('0x35')]:_0x34bd17[_0x636e('0x36')];_0x3d7a06[_0x636e('0x39')]=qs[_0x636e('0x3a')](_0x537e2f[_0x636e('0x31')][_0x636e('0x3a')]);_0x3d7a06['where']=qs[_0x636e('0x3b')](_[_0x636e('0x3c')](_0x537e2f[_0x636e('0x31')],_0x34bd17['filters']));if(_0x537e2f[_0x636e('0x31')][_0x636e('0x3d')]){_0x3d7a06['where']=_[_0x636e('0x3f')](_0x3d7a06[_0x636e('0x3e')],{'$or':_[_0x636e('0x30')](_0x3d7a06[_0x636e('0x35')],function(_0x135031){var _0x2c05d6={};_0x2c05d6[_0x135031]={'$like':'%'+_0x537e2f[_0x636e('0x31')][_0x636e('0x3d')]+'%'};return _0x2c05d6;})});}_0x3d7a06=_[_0x636e('0x3f')]({},_0x3d7a06,_0x537e2f[_0x636e('0x49')]);return _0xc6f2a7['getDescriptions'](_0x3d7a06);}})['then'](function(_0xbeefb){if(_0xbeefb){_0x28a172=_0xbeefb[_0x636e('0x48')];if(!_0x537e2f[_0x636e('0x31')][_0x636e('0x37')](_0x636e('0x38'))){_0x3d7a06[_0x636e('0x20')]=qs[_0x636e('0x20')](_0x537e2f[_0x636e('0x31')][_0x636e('0x20')]);_0x3d7a06[_0x636e('0x1f')]=qs[_0x636e('0x1f')](_0x537e2f[_0x636e('0x31')][_0x636e('0x1f')]);}return _0xc6f2a7[_0x636e('0x52')](_0x3d7a06);}})[_0x636e('0x28')](function(_0x33a340){if(_0x33a340){return _0x33a340?{'count':_0x28a172,'rows':_0x33a340}:null;}})[_0x636e('0x28')](respondWithResult(_0x269678,null))['catch'](handleError(_0x269678,null));};