8b8f0b2bd95c27cca09cebf111135d563368af4e
[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 _0x97a2=['sort','where','type','VIRTUAL','filter','merge','Dynamics365Configuration','includeAll','include','rows','catch','show','params','rawAttributes','filtears','options','create','body','update','find','getFields','Dynamics365Field','pick','getSubjects','findOne','getDescriptions','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','request\x20sent','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','stringify','error','Dynamics365Configuration,\x20%s,\x20%s','message','info','result','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','destroy','sendStatus','name','send','index','map','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0x97a2,0x18e));var _0x297a=function(_0x2c5066,_0x4bb793){_0x2c5066=_0x2c5066-0x0;var _0x4db36d=_0x97a2[_0x2c5066];return _0x4db36d;};'use strict';var pdf=require(_0x297a('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x297a('0x1'));var jsonpatch=require(_0x297a('0x2'));var rp=require(_0x297a('0x3'));var moment=require(_0x297a('0x4'));var BPromise=require(_0x297a('0x5'));var Mustache=require('mustache');var util=require(_0x297a('0x6'));var path=require(_0x297a('0x7'));var sox=require(_0x297a('0x8'));var csv=require(_0x297a('0x9'));var ejs=require(_0x297a('0xa'));var fs=require('fs');var _=require(_0x297a('0xb'));var squel=require(_0x297a('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x297a('0xd'));var toCsv=require(_0x297a('0x9'));var querystring=require(_0x297a('0xe'));var Papa=require('papaparse');var Redis=require(_0x297a('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x297a('0x10'));var as=require(_0x297a('0x11'));var hardwareService=require(_0x297a('0x12'));var logger=require('../../config/logger')(_0x297a('0x13'));var utils=require('../../config/utils');var config=require(_0x297a('0x14'));var licenseUtil=require(_0x297a('0x15'));var db=require(_0x297a('0x16'))['db'];var jayson=require(_0x297a('0x17'));var client=jayson[_0x297a('0x18')][_0x297a('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x2931ec,_0x1b81bc,_0x688f74,_0x15b4f1){return new BPromise(function(_0x3b36ca,_0x4bdf7a){var _0x1dca00=_0x15b4f1||client;return _0x1dca00[_0x297a('0x1a')](_0x2931ec,_0x688f74)[_0x297a('0x1b')](function(_0x57aa1f){logger['info']('Dynamics365Configuration,\x20%s,\x20%s',_0x1b81bc,_0x297a('0x1c'));logger[_0x297a('0x1d')](_0x297a('0x1e'),_0x1b81bc,_0x297a('0x1c'),JSON[_0x297a('0x1f')](_0x57aa1f));if(_0x57aa1f['error']){if(_0x57aa1f[_0x297a('0x20')]['code']===0x1f4){logger['error'](_0x297a('0x21'),_0x1b81bc,_0x57aa1f[_0x297a('0x20')][_0x297a('0x22')]);return _0x4bdf7a(_0x57aa1f[_0x297a('0x20')][_0x297a('0x22')]);}logger['error'](_0x297a('0x21'),_0x1b81bc,_0x57aa1f[_0x297a('0x20')][_0x297a('0x22')]);return _0x3b36ca(_0x57aa1f[_0x297a('0x20')]['message']);}else{logger[_0x297a('0x23')](_0x297a('0x21'),_0x1b81bc,_0x297a('0x1c'));_0x3b36ca(_0x57aa1f[_0x297a('0x24')][_0x297a('0x22')]);}})['catch'](function(_0x3dac8e){logger[_0x297a('0x20')]('Dynamics365Configuration,\x20%s,\x20%s',_0x1b81bc,_0x3dac8e);_0x4bdf7a(_0x3dac8e);});});}function respondWithStatusCode(_0xddb4eb,_0x199192){_0x199192=_0x199192||0xcc;return function(_0xd2e5be){if(_0xd2e5be){return _0xddb4eb['sendStatus'](_0x199192);}return _0xddb4eb[_0x297a('0x25')](_0x199192)[_0x297a('0x26')]();};}function respondWithResult(_0x298fc9,_0x2e9cbb){_0x2e9cbb=_0x2e9cbb||0xc8;return function(_0x114a26){if(_0x114a26){return _0x298fc9['status'](_0x2e9cbb)['json'](_0x114a26);}};}function respondWithFilteredResult(_0x9b2c7a,_0x1af161){return function(_0x158664){if(_0x158664){var _0x5f02f8=_0x158664[_0x297a('0x27')],_0x50cdef=_0x1af161['offset'],_0x321c40=_0x1af161[_0x297a('0x28')]+_0x1af161[_0x297a('0x29')],_0x400b25;if(_0x321c40>=_0x5f02f8){_0x321c40=_0x5f02f8;_0x400b25=0xc8;}else{_0x400b25=0xce;}_0x9b2c7a[_0x297a('0x25')](_0x400b25);return _0x9b2c7a[_0x297a('0x2a')](_0x297a('0x2b'),_0x50cdef+'-'+_0x321c40+'/'+_0x5f02f8)[_0x297a('0x2c')](_0x158664);}return null;};}function patchUpdates(_0x5826d8){return function(_0x12970d){try{jsonpatch[_0x297a('0x2d')](_0x12970d,_0x5826d8,!![]);}catch(_0xfa7e9d){return BPromise[_0x297a('0x2e')](_0xfa7e9d);}return _0x12970d[_0x297a('0x2f')]();};}function saveUpdates(_0x130083,_0x88ef57){return function(_0x512e97){if(_0x512e97){return _0x512e97['update'](_0x130083)[_0x297a('0x1b')](function(_0x4923f3){return _0x4923f3;});}return null;};}function removeEntity(_0x1adc0d,_0x49042b){return function(_0x4690a9){if(_0x4690a9){return _0x4690a9[_0x297a('0x30')]()[_0x297a('0x1b')](function(){_0x1adc0d['status'](0xcc)[_0x297a('0x26')]();});}};}function handleEntityNotFound(_0x3ad55b,_0x2cab05){return function(_0x24a0f9){if(!_0x24a0f9){_0x3ad55b[_0x297a('0x31')](0x194);}return _0x24a0f9;};}function handleError(_0x4561d9,_0x22517b){_0x22517b=_0x22517b||0x1f4;return function(_0x409fe3){logger[_0x297a('0x20')](_0x409fe3['stack']);if(_0x409fe3[_0x297a('0x32')]){delete _0x409fe3[_0x297a('0x32')];}_0x4561d9[_0x297a('0x25')](_0x22517b)[_0x297a('0x33')](_0x409fe3);};}exports[_0x297a('0x34')]=function(_0x2c2972,_0x1801be){var _0x572db7={},_0x426e59={},_0x26b197={'count':0x0,'rows':[]};var _0x1a9aea=_[_0x297a('0x35')](db['Dynamics365Configuration']['rawAttributes'],function(_0x1462f8){return{'name':_0x1462f8[_0x297a('0x36')],'type':_0x1462f8['type'][_0x297a('0x37')]};});_0x426e59[_0x297a('0x38')]=_[_0x297a('0x35')](_0x1a9aea,'name');_0x426e59[_0x297a('0x39')]=_[_0x297a('0x3a')](_0x2c2972[_0x297a('0x39')]);_0x426e59[_0x297a('0x3b')]=_[_0x297a('0x3c')](_0x426e59[_0x297a('0x38')],_0x426e59['query']);_0x572db7[_0x297a('0x3d')]=_[_0x297a('0x3c')](_0x426e59[_0x297a('0x38')],qs['fields'](_0x2c2972[_0x297a('0x39')][_0x297a('0x3e')]));_0x572db7[_0x297a('0x3d')]=_0x572db7[_0x297a('0x3d')][_0x297a('0x3f')]?_0x572db7[_0x297a('0x3d')]:_0x426e59[_0x297a('0x38')];if(!_0x2c2972[_0x297a('0x39')][_0x297a('0x40')](_0x297a('0x41'))){_0x572db7[_0x297a('0x29')]=qs[_0x297a('0x29')](_0x2c2972[_0x297a('0x39')]['limit']);_0x572db7[_0x297a('0x28')]=qs[_0x297a('0x28')](_0x2c2972[_0x297a('0x39')][_0x297a('0x28')]);}_0x572db7[_0x297a('0x42')]=qs[_0x297a('0x43')](_0x2c2972[_0x297a('0x39')][_0x297a('0x43')]);_0x572db7[_0x297a('0x44')]=qs[_0x297a('0x3b')](_['pick'](_0x2c2972[_0x297a('0x39')],_0x426e59[_0x297a('0x3b')]),_0x1a9aea);if(_0x2c2972['query']['filter']){_0x572db7[_0x297a('0x44')]=_['merge'](_0x572db7[_0x297a('0x44')],{'$or':_[_0x297a('0x35')](_0x1a9aea,function(_0x4e78e4){if(_0x4e78e4[_0x297a('0x45')]!==_0x297a('0x46')){var _0x5762b2={};_0x5762b2[_0x4e78e4[_0x297a('0x32')]]={'$like':'%'+_0x2c2972[_0x297a('0x39')][_0x297a('0x47')]+'%'};return _0x5762b2;}})});}_0x572db7=_[_0x297a('0x48')]({},_0x572db7,_0x2c2972['options']);var _0xba1155={'where':_0x572db7[_0x297a('0x44')]};return db[_0x297a('0x49')][_0x297a('0x27')](_0xba1155)[_0x297a('0x1b')](function(_0xa6da94){_0x26b197[_0x297a('0x27')]=_0xa6da94;if(_0x2c2972[_0x297a('0x39')][_0x297a('0x4a')]){_0x572db7[_0x297a('0x4b')]=[{'all':!![]}];}return db[_0x297a('0x49')]['findAll'](_0x572db7);})['then'](function(_0x639737){_0x26b197[_0x297a('0x4c')]=_0x639737;return _0x26b197;})[_0x297a('0x1b')](respondWithFilteredResult(_0x1801be,_0x572db7))[_0x297a('0x4d')](handleError(_0x1801be,null));};exports[_0x297a('0x4e')]=function(_0x4b400d,_0x165711){var _0x1d734d={'raw':![],'where':{'id':_0x4b400d[_0x297a('0x4f')]['id']}},_0x1690b9={};_0x1690b9['model']=_[_0x297a('0x3a')](db[_0x297a('0x49')][_0x297a('0x50')]);_0x1690b9[_0x297a('0x39')]=_['keys'](_0x4b400d[_0x297a('0x39')]);_0x1690b9[_0x297a('0x51')]=_[_0x297a('0x3c')](_0x1690b9[_0x297a('0x38')],_0x1690b9[_0x297a('0x39')]);_0x1d734d[_0x297a('0x3d')]=_[_0x297a('0x3c')](_0x1690b9['model'],qs[_0x297a('0x3e')](_0x4b400d[_0x297a('0x39')]['fields']));_0x1d734d['attributes']=_0x1d734d['attributes']['length']?_0x1d734d[_0x297a('0x3d')]:_0x1690b9[_0x297a('0x38')];if(_0x4b400d[_0x297a('0x39')][_0x297a('0x4a')]){_0x1d734d[_0x297a('0x4b')]=[{'all':!![]}];}_0x1d734d=_['merge']({},_0x1d734d,_0x4b400d[_0x297a('0x52')]);return db[_0x297a('0x49')]['find'](_0x1d734d)['then'](handleEntityNotFound(_0x165711,null))['then'](respondWithResult(_0x165711,null))[_0x297a('0x4d')](handleError(_0x165711,null));};exports[_0x297a('0x53')]=function(_0x5f2d25,_0x34007f){return db[_0x297a('0x49')][_0x297a('0x53')](_0x5f2d25[_0x297a('0x54')],{})['then'](respondWithResult(_0x34007f,0xc9))[_0x297a('0x4d')](handleError(_0x34007f,null));};exports[_0x297a('0x55')]=function(_0x3efa0b,_0x42866e){if(_0x3efa0b['body']['id']){delete _0x3efa0b['body']['id'];}return db['Dynamics365Configuration']['find']({'where':{'id':_0x3efa0b[_0x297a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x42866e,null))[_0x297a('0x1b')](saveUpdates(_0x3efa0b[_0x297a('0x54')],null))[_0x297a('0x1b')](respondWithResult(_0x42866e,null))[_0x297a('0x4d')](handleError(_0x42866e,null));};exports[_0x297a('0x30')]=function(_0x3c8a56,_0x59e744){return db[_0x297a('0x49')][_0x297a('0x56')]({'where':{'id':_0x3c8a56[_0x297a('0x4f')]['id']}})[_0x297a('0x1b')](handleEntityNotFound(_0x59e744,null))['then'](removeEntity(_0x59e744,null))[_0x297a('0x4d')](handleError(_0x59e744,null));};exports[_0x297a('0x57')]=function(_0x38fd8a,_0x3a861c,_0x23c590){var _0x438f60={};var _0x686896={};var _0xc8f004;var _0x230c6e;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x38fd8a[_0x297a('0x4f')]['id']}})['then'](handleEntityNotFound(_0x3a861c,null))[_0x297a('0x1b')](function(_0x195889){if(_0x195889){_0xc8f004=_0x195889;_0x686896[_0x297a('0x38')]=_[_0x297a('0x3a')](db[_0x297a('0x58')]['rawAttributes']);_0x686896[_0x297a('0x39')]=_[_0x297a('0x3a')](_0x38fd8a['query']);_0x686896[_0x297a('0x3b')]=_[_0x297a('0x3c')](_0x686896[_0x297a('0x38')],_0x686896[_0x297a('0x39')]);_0x438f60[_0x297a('0x3d')]=_[_0x297a('0x3c')](_0x686896[_0x297a('0x38')],qs['fields'](_0x38fd8a[_0x297a('0x39')][_0x297a('0x3e')]));_0x438f60[_0x297a('0x3d')]=_0x438f60[_0x297a('0x3d')][_0x297a('0x3f')]?_0x438f60['attributes']:_0x686896['model'];_0x438f60[_0x297a('0x42')]=qs[_0x297a('0x43')](_0x38fd8a[_0x297a('0x39')]['sort']);_0x438f60['where']=qs[_0x297a('0x3b')](_[_0x297a('0x59')](_0x38fd8a[_0x297a('0x39')],_0x686896['filters']));if(_0x38fd8a['query'][_0x297a('0x47')]){_0x438f60[_0x297a('0x44')]=_[_0x297a('0x48')](_0x438f60[_0x297a('0x44')],{'$or':_[_0x297a('0x35')](_0x438f60[_0x297a('0x3d')],function(_0x5a5fcb){var _0x5f37da={};_0x5f37da[_0x5a5fcb]={'$like':'%'+_0x38fd8a[_0x297a('0x39')][_0x297a('0x47')]+'%'};return _0x5f37da;})});}_0x438f60=_[_0x297a('0x48')]({},_0x438f60,_0x38fd8a['options']);return _0xc8f004[_0x297a('0x57')](_0x438f60);}})[_0x297a('0x1b')](function(_0x38aa31){if(_0x38aa31){_0x230c6e=_0x38aa31[_0x297a('0x3f')];if(!_0x38fd8a['query'][_0x297a('0x40')](_0x297a('0x41'))){_0x438f60[_0x297a('0x29')]=qs[_0x297a('0x29')](_0x38fd8a[_0x297a('0x39')][_0x297a('0x29')]);_0x438f60[_0x297a('0x28')]=qs[_0x297a('0x28')](_0x38fd8a['query'][_0x297a('0x28')]);}return _0xc8f004[_0x297a('0x57')](_0x438f60);}})[_0x297a('0x1b')](function(_0x4b67c3){if(_0x4b67c3){return _0x4b67c3?{'count':_0x230c6e,'rows':_0x4b67c3}:null;}})[_0x297a('0x1b')](respondWithResult(_0x3a861c,null))['catch'](handleError(_0x3a861c,null));};exports[_0x297a('0x5a')]=function(_0x2be6b8,_0x2350ef,_0x53998c){var _0x69333e={};var _0x5e1812={};var _0x2dc825;var _0x5dbfb0;return db[_0x297a('0x49')][_0x297a('0x5b')]({'where':{'id':_0x2be6b8[_0x297a('0x4f')]['id']}})[_0x297a('0x1b')](handleEntityNotFound(_0x2350ef,null))[_0x297a('0x1b')](function(_0x36e905){if(_0x36e905){_0x2dc825=_0x36e905;_0x5e1812[_0x297a('0x38')]=_['keys'](db[_0x297a('0x58')][_0x297a('0x50')]);_0x5e1812[_0x297a('0x39')]=_[_0x297a('0x3a')](_0x2be6b8[_0x297a('0x39')]);_0x5e1812[_0x297a('0x3b')]=_['intersection'](_0x5e1812[_0x297a('0x38')],_0x5e1812[_0x297a('0x39')]);_0x69333e[_0x297a('0x3d')]=_[_0x297a('0x3c')](_0x5e1812[_0x297a('0x38')],qs[_0x297a('0x3e')](_0x2be6b8[_0x297a('0x39')]['fields']));_0x69333e[_0x297a('0x3d')]=_0x69333e[_0x297a('0x3d')]['length']?_0x69333e[_0x297a('0x3d')]:_0x5e1812['model'];_0x69333e[_0x297a('0x42')]=qs[_0x297a('0x43')](_0x2be6b8[_0x297a('0x39')][_0x297a('0x43')]);_0x69333e[_0x297a('0x44')]=qs[_0x297a('0x3b')](_[_0x297a('0x59')](_0x2be6b8[_0x297a('0x39')],_0x5e1812[_0x297a('0x3b')]));if(_0x2be6b8[_0x297a('0x39')][_0x297a('0x47')]){_0x69333e[_0x297a('0x44')]=_['merge'](_0x69333e['where'],{'$or':_[_0x297a('0x35')](_0x69333e[_0x297a('0x3d')],function(_0x54e0fd){var _0x31a1e7={};_0x31a1e7[_0x54e0fd]={'$like':'%'+_0x2be6b8[_0x297a('0x39')]['filter']+'%'};return _0x31a1e7;})});}_0x69333e=_['merge']({},_0x69333e,_0x2be6b8['options']);return _0x2dc825[_0x297a('0x5a')](_0x69333e);}})[_0x297a('0x1b')](function(_0x8deafa){if(_0x8deafa){_0x5dbfb0=_0x8deafa[_0x297a('0x3f')];if(!_0x2be6b8[_0x297a('0x39')]['hasOwnProperty'](_0x297a('0x41'))){_0x69333e[_0x297a('0x29')]=qs[_0x297a('0x29')](_0x2be6b8[_0x297a('0x39')][_0x297a('0x29')]);_0x69333e['offset']=qs[_0x297a('0x28')](_0x2be6b8['query']['offset']);}return _0x2dc825[_0x297a('0x5a')](_0x69333e);}})[_0x297a('0x1b')](function(_0x17a131){if(_0x17a131){return _0x17a131?{'count':_0x5dbfb0,'rows':_0x17a131}:null;}})['then'](respondWithResult(_0x2350ef,null))['catch'](handleError(_0x2350ef,null));};exports[_0x297a('0x5c')]=function(_0x26d34f,_0x2f913d,_0x3ca81b){var _0x5dbf0e={};var _0x4afef4={};var _0x3f1e6a;var _0x419d93;return db[_0x297a('0x49')][_0x297a('0x5b')]({'where':{'id':_0x26d34f[_0x297a('0x4f')]['id']}})[_0x297a('0x1b')](handleEntityNotFound(_0x2f913d,null))[_0x297a('0x1b')](function(_0x54b347){if(_0x54b347){_0x3f1e6a=_0x54b347;_0x4afef4[_0x297a('0x38')]=_[_0x297a('0x3a')](db[_0x297a('0x58')][_0x297a('0x50')]);_0x4afef4['query']=_[_0x297a('0x3a')](_0x26d34f[_0x297a('0x39')]);_0x4afef4[_0x297a('0x3b')]=_[_0x297a('0x3c')](_0x4afef4['model'],_0x4afef4['query']);_0x5dbf0e[_0x297a('0x3d')]=_[_0x297a('0x3c')](_0x4afef4[_0x297a('0x38')],qs['fields'](_0x26d34f[_0x297a('0x39')]['fields']));_0x5dbf0e[_0x297a('0x3d')]=_0x5dbf0e[_0x297a('0x3d')][_0x297a('0x3f')]?_0x5dbf0e[_0x297a('0x3d')]:_0x4afef4[_0x297a('0x38')];_0x5dbf0e[_0x297a('0x42')]=qs[_0x297a('0x43')](_0x26d34f[_0x297a('0x39')][_0x297a('0x43')]);_0x5dbf0e[_0x297a('0x44')]=qs[_0x297a('0x3b')](_[_0x297a('0x59')](_0x26d34f[_0x297a('0x39')],_0x4afef4[_0x297a('0x3b')]));if(_0x26d34f[_0x297a('0x39')][_0x297a('0x47')]){_0x5dbf0e['where']=_[_0x297a('0x48')](_0x5dbf0e[_0x297a('0x44')],{'$or':_[_0x297a('0x35')](_0x5dbf0e[_0x297a('0x3d')],function(_0x4f375e){var _0x4c665f={};_0x4c665f[_0x4f375e]={'$like':'%'+_0x26d34f[_0x297a('0x39')][_0x297a('0x47')]+'%'};return _0x4c665f;})});}_0x5dbf0e=_[_0x297a('0x48')]({},_0x5dbf0e,_0x26d34f[_0x297a('0x52')]);return _0x3f1e6a[_0x297a('0x5c')](_0x5dbf0e);}})[_0x297a('0x1b')](function(_0x324698){if(_0x324698){_0x419d93=_0x324698[_0x297a('0x3f')];if(!_0x26d34f[_0x297a('0x39')]['hasOwnProperty'](_0x297a('0x41'))){_0x5dbf0e[_0x297a('0x29')]=qs[_0x297a('0x29')](_0x26d34f[_0x297a('0x39')][_0x297a('0x29')]);_0x5dbf0e[_0x297a('0x28')]=qs[_0x297a('0x28')](_0x26d34f[_0x297a('0x39')]['offset']);}return _0x3f1e6a[_0x297a('0x5c')](_0x5dbf0e);}})['then'](function(_0x153866){if(_0x153866){return _0x153866?{'count':_0x419d93,'rows':_0x153866}:null;}})[_0x297a('0x1b')](respondWithResult(_0x2f913d,null))[_0x297a('0x4d')](handleError(_0x2f913d,null));};