Built motion from commit 9d7072cc.|2.5.39
[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 _0x8084=['apply','reject','then','destroy','error','stack','name','index','map','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','Dynamics365Configuration','include','findAll','rows','show','params','includeAll','options','find','catch','create','body','update','getFields','findOne','Dynamics365Field','hasOwnProperty','nolimit','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range'];(function(_0x485f53,_0x104081){var _0x480f1e=function(_0x2d61d2){while(--_0x2d61d2){_0x485f53['push'](_0x485f53['shift']());}};_0x480f1e(++_0x104081);}(_0x8084,0xd1));var _0x4808=function(_0x4310ab,_0x188dee){_0x4310ab=_0x4310ab-0x0;var _0x5e9e24=_0x8084[_0x4310ab];return _0x5e9e24;};'use strict';var emlformat=require(_0x4808('0x0'));var rimraf=require(_0x4808('0x1'));var zipdir=require(_0x4808('0x2'));var jsonpatch=require(_0x4808('0x3'));var rp=require(_0x4808('0x4'));var moment=require(_0x4808('0x5'));var BPromise=require(_0x4808('0x6'));var Mustache=require(_0x4808('0x7'));var util=require(_0x4808('0x8'));var path=require('path');var sox=require(_0x4808('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4808('0xa'));var _=require(_0x4808('0xb'));var squel=require(_0x4808('0xc'));var crypto=require(_0x4808('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4808('0xe'));var toCsv=require(_0x4808('0xf'));var querystring=require(_0x4808('0x10'));var Papa=require(_0x4808('0x11'));var Redis=require(_0x4808('0x12'));var authService=require(_0x4808('0x13'));var qs=require(_0x4808('0x14'));var as=require(_0x4808('0x15'));var hardwareService=require(_0x4808('0x16'));var logger=require(_0x4808('0x17'))('api');var utils=require(_0x4808('0x18'));var config=require(_0x4808('0x19'));var licenseUtil=require(_0x4808('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x43375d,_0x87942){_0x87942=_0x87942||0xcc;return function(_0x105034){if(_0x105034){return _0x43375d[_0x4808('0x1b')](_0x87942);}return _0x43375d[_0x4808('0x1c')](_0x87942)[_0x4808('0x1d')]();};}function respondWithResult(_0x448a8e,_0x114cf5){_0x114cf5=_0x114cf5||0xc8;return function(_0x1a89f8){if(_0x1a89f8){return _0x448a8e['status'](_0x114cf5)[_0x4808('0x1e')](_0x1a89f8);}};}function respondWithFilteredResult(_0x5d6d02,_0x25cd54){return function(_0x5aac0b){if(_0x5aac0b){var _0xb89365=typeof _0x25cd54[_0x4808('0x1f')]==='undefined'&&typeof _0x25cd54[_0x4808('0x20')]===_0x4808('0x21');var _0x59a3b8=_0x5aac0b[_0x4808('0x22')];var _0x34584d=_0xb89365?0x0:_0x25cd54['offset'];var _0x501dbd=_0xb89365?_0x5aac0b[_0x4808('0x22')]:_0x25cd54[_0x4808('0x1f')]+_0x25cd54['limit'];var _0x5079b4;if(_0x501dbd>=_0x59a3b8){_0x501dbd=_0x59a3b8;_0x5079b4=0xc8;}else{_0x5079b4=0xce;}_0x5d6d02[_0x4808('0x1c')](_0x5079b4);return _0x5d6d02[_0x4808('0x23')](_0x4808('0x24'),_0x34584d+'-'+_0x501dbd+'/'+_0x59a3b8)[_0x4808('0x1e')](_0x5aac0b);}return null;};}function patchUpdates(_0x3bfcdb){return function(_0x2c073c){try{jsonpatch[_0x4808('0x25')](_0x2c073c,_0x3bfcdb,!![]);}catch(_0x1c6038){return BPromise[_0x4808('0x26')](_0x1c6038);}return _0x2c073c['save']();};}function saveUpdates(_0x31b67f,_0x4063e0){return function(_0x3b6dc5){if(_0x3b6dc5){return _0x3b6dc5['update'](_0x31b67f)[_0x4808('0x27')](function(_0x1c8115){return _0x1c8115;});}return null;};}function removeEntity(_0x4a98a9,_0x14d086){return function(_0x40d124){if(_0x40d124){return _0x40d124[_0x4808('0x28')]()[_0x4808('0x27')](function(){_0x4a98a9[_0x4808('0x1c')](0xcc)[_0x4808('0x1d')]();});}};}function handleEntityNotFound(_0x3d36c6,_0x5489cb){return function(_0x46971d){if(!_0x46971d){_0x3d36c6['sendStatus'](0x194);}return _0x46971d;};}function handleError(_0x16783e,_0x3be737){_0x3be737=_0x3be737||0x1f4;return function(_0x5f89f9){logger[_0x4808('0x29')](_0x5f89f9[_0x4808('0x2a')]);if(_0x5f89f9[_0x4808('0x2b')]){delete _0x5f89f9[_0x4808('0x2b')];}_0x16783e['status'](_0x3be737)['send'](_0x5f89f9);};}exports[_0x4808('0x2c')]=function(_0x74ce43,_0x1aea16){var _0x8bb446={},_0x1ba893={},_0x418d3f={'count':0x0,'rows':[]};var _0x252e60=_[_0x4808('0x2d')](db['Dynamics365Configuration'][_0x4808('0x2e')],function(_0x23bb83){return{'name':_0x23bb83[_0x4808('0x2f')],'type':_0x23bb83[_0x4808('0x30')]['key']};});_0x1ba893[_0x4808('0x31')]=_[_0x4808('0x2d')](_0x252e60,'name');_0x1ba893['query']=_[_0x4808('0x32')](_0x74ce43[_0x4808('0x33')]);_0x1ba893[_0x4808('0x34')]=_[_0x4808('0x35')](_0x1ba893['model'],_0x1ba893[_0x4808('0x33')]);_0x8bb446[_0x4808('0x36')]=_[_0x4808('0x35')](_0x1ba893[_0x4808('0x31')],qs[_0x4808('0x37')](_0x74ce43[_0x4808('0x33')][_0x4808('0x37')]));_0x8bb446['attributes']=_0x8bb446[_0x4808('0x36')][_0x4808('0x38')]?_0x8bb446[_0x4808('0x36')]:_0x1ba893[_0x4808('0x31')];if(!_0x74ce43[_0x4808('0x33')]['hasOwnProperty']('nolimit')){_0x8bb446[_0x4808('0x20')]=qs[_0x4808('0x20')](_0x74ce43[_0x4808('0x33')][_0x4808('0x20')]);_0x8bb446[_0x4808('0x1f')]=qs[_0x4808('0x1f')](_0x74ce43[_0x4808('0x33')][_0x4808('0x1f')]);}_0x8bb446[_0x4808('0x39')]=qs['sort'](_0x74ce43[_0x4808('0x33')][_0x4808('0x3a')]);_0x8bb446[_0x4808('0x3b')]=qs[_0x4808('0x34')](_[_0x4808('0x3c')](_0x74ce43['query'],_0x1ba893[_0x4808('0x34')]),_0x252e60);if(_0x74ce43['query'][_0x4808('0x3d')]){_0x8bb446[_0x4808('0x3b')]=_[_0x4808('0x3e')](_0x8bb446['where'],{'$or':_[_0x4808('0x2d')](_0x252e60,function(_0x543860){if(_0x543860[_0x4808('0x30')]!=='VIRTUAL'){var _0x2d2f05={};_0x2d2f05[_0x543860[_0x4808('0x2b')]]={'$like':'%'+_0x74ce43[_0x4808('0x33')][_0x4808('0x3d')]+'%'};return _0x2d2f05;}})});}_0x8bb446=_[_0x4808('0x3e')]({},_0x8bb446,_0x74ce43['options']);var _0x20d8ee={'where':_0x8bb446['where']};return db[_0x4808('0x3f')]['count'](_0x20d8ee)[_0x4808('0x27')](function(_0x4dd57f){_0x418d3f[_0x4808('0x22')]=_0x4dd57f;if(_0x74ce43['query']['includeAll']){_0x8bb446[_0x4808('0x40')]=[{'all':!![]}];}return db[_0x4808('0x3f')][_0x4808('0x41')](_0x8bb446);})[_0x4808('0x27')](function(_0x30eafc){_0x418d3f[_0x4808('0x42')]=_0x30eafc;return _0x418d3f;})[_0x4808('0x27')](respondWithFilteredResult(_0x1aea16,_0x8bb446))['catch'](handleError(_0x1aea16,null));};exports[_0x4808('0x43')]=function(_0x32e22a,_0x1fc37c){var _0x4dfd10={'raw':![],'where':{'id':_0x32e22a[_0x4808('0x44')]['id']}},_0x7bdaad={};_0x7bdaad[_0x4808('0x31')]=_[_0x4808('0x32')](db[_0x4808('0x3f')][_0x4808('0x2e')]);_0x7bdaad[_0x4808('0x33')]=_[_0x4808('0x32')](_0x32e22a[_0x4808('0x33')]);_0x7bdaad[_0x4808('0x34')]=_['intersection'](_0x7bdaad[_0x4808('0x31')],_0x7bdaad['query']);_0x4dfd10[_0x4808('0x36')]=_[_0x4808('0x35')](_0x7bdaad['model'],qs['fields'](_0x32e22a[_0x4808('0x33')]['fields']));_0x4dfd10['attributes']=_0x4dfd10[_0x4808('0x36')]['length']?_0x4dfd10[_0x4808('0x36')]:_0x7bdaad['model'];if(_0x32e22a[_0x4808('0x33')][_0x4808('0x45')]){_0x4dfd10[_0x4808('0x40')]=[{'all':!![]}];}_0x4dfd10=_[_0x4808('0x3e')]({},_0x4dfd10,_0x32e22a[_0x4808('0x46')]);return db['Dynamics365Configuration'][_0x4808('0x47')](_0x4dfd10)[_0x4808('0x27')](handleEntityNotFound(_0x1fc37c,null))[_0x4808('0x27')](respondWithResult(_0x1fc37c,null))[_0x4808('0x48')](handleError(_0x1fc37c,null));};exports['create']=function(_0x23fa9c,_0x4db1e8){return db[_0x4808('0x3f')][_0x4808('0x49')](_0x23fa9c[_0x4808('0x4a')],{})[_0x4808('0x27')](respondWithResult(_0x4db1e8,0xc9))[_0x4808('0x48')](handleError(_0x4db1e8,null));};exports[_0x4808('0x4b')]=function(_0x2b5d13,_0x3159d3){if(_0x2b5d13[_0x4808('0x4a')]['id']){delete _0x2b5d13['body']['id'];}return db[_0x4808('0x3f')]['find']({'where':{'id':_0x2b5d13[_0x4808('0x44')]['id']}})[_0x4808('0x27')](handleEntityNotFound(_0x3159d3,null))[_0x4808('0x27')](saveUpdates(_0x2b5d13[_0x4808('0x4a')],null))['then'](respondWithResult(_0x3159d3,null))[_0x4808('0x48')](handleError(_0x3159d3,null));};exports[_0x4808('0x28')]=function(_0x2d64d9,_0x2229ee){return db['Dynamics365Configuration']['find']({'where':{'id':_0x2d64d9['params']['id']}})['then'](handleEntityNotFound(_0x2229ee,null))[_0x4808('0x27')](removeEntity(_0x2229ee,null))['catch'](handleError(_0x2229ee,null));};exports[_0x4808('0x4c')]=function(_0x24dc81,_0x19ab9a,_0x2302dd){var _0x1ae9b9={};var _0x2b1457={};var _0x8e8826;var _0x46986f;return db[_0x4808('0x3f')][_0x4808('0x4d')]({'where':{'id':_0x24dc81[_0x4808('0x44')]['id']}})['then'](handleEntityNotFound(_0x19ab9a,null))[_0x4808('0x27')](function(_0x29eed4){if(_0x29eed4){_0x8e8826=_0x29eed4;_0x2b1457[_0x4808('0x31')]=_[_0x4808('0x32')](db[_0x4808('0x4e')][_0x4808('0x2e')]);_0x2b1457[_0x4808('0x33')]=_[_0x4808('0x32')](_0x24dc81[_0x4808('0x33')]);_0x2b1457['filters']=_[_0x4808('0x35')](_0x2b1457['model'],_0x2b1457['query']);_0x1ae9b9['attributes']=_[_0x4808('0x35')](_0x2b1457['model'],qs['fields'](_0x24dc81[_0x4808('0x33')]['fields']));_0x1ae9b9[_0x4808('0x36')]=_0x1ae9b9[_0x4808('0x36')][_0x4808('0x38')]?_0x1ae9b9['attributes']:_0x2b1457[_0x4808('0x31')];_0x1ae9b9[_0x4808('0x39')]=qs[_0x4808('0x3a')](_0x24dc81[_0x4808('0x33')][_0x4808('0x3a')]);_0x1ae9b9[_0x4808('0x3b')]=qs[_0x4808('0x34')](_['pick'](_0x24dc81[_0x4808('0x33')],_0x2b1457['filters']));if(_0x24dc81[_0x4808('0x33')][_0x4808('0x3d')]){_0x1ae9b9[_0x4808('0x3b')]=_[_0x4808('0x3e')](_0x1ae9b9[_0x4808('0x3b')],{'$or':_[_0x4808('0x2d')](_0x1ae9b9['attributes'],function(_0x4c3345){var _0x22b1f8={};_0x22b1f8[_0x4c3345]={'$like':'%'+_0x24dc81['query']['filter']+'%'};return _0x22b1f8;})});}_0x1ae9b9=_[_0x4808('0x3e')]({},_0x1ae9b9,_0x24dc81[_0x4808('0x46')]);return _0x8e8826[_0x4808('0x4c')](_0x1ae9b9);}})[_0x4808('0x27')](function(_0x5e938f){if(_0x5e938f){_0x46986f=_0x5e938f['length'];if(!_0x24dc81[_0x4808('0x33')][_0x4808('0x4f')]('nolimit')){_0x1ae9b9['limit']=qs[_0x4808('0x20')](_0x24dc81[_0x4808('0x33')][_0x4808('0x20')]);_0x1ae9b9[_0x4808('0x1f')]=qs[_0x4808('0x1f')](_0x24dc81[_0x4808('0x33')][_0x4808('0x1f')]);}return _0x8e8826[_0x4808('0x4c')](_0x1ae9b9);}})[_0x4808('0x27')](function(_0x55e232){if(_0x55e232){return _0x55e232?{'count':_0x46986f,'rows':_0x55e232}:null;}})[_0x4808('0x27')](respondWithResult(_0x19ab9a,null))['catch'](handleError(_0x19ab9a,null));};exports['getSubjects']=function(_0x58ca88,_0xf27a8b,_0x40502a){var _0xd5c21a={};var _0x58d8c0={};var _0x380638;var _0x3bcad1;return db[_0x4808('0x3f')]['findOne']({'where':{'id':_0x58ca88[_0x4808('0x44')]['id']}})['then'](handleEntityNotFound(_0xf27a8b,null))[_0x4808('0x27')](function(_0x1d4df7){if(_0x1d4df7){_0x380638=_0x1d4df7;_0x58d8c0['model']=_[_0x4808('0x32')](db['Dynamics365Field'][_0x4808('0x2e')]);_0x58d8c0[_0x4808('0x33')]=_[_0x4808('0x32')](_0x58ca88[_0x4808('0x33')]);_0x58d8c0[_0x4808('0x34')]=_['intersection'](_0x58d8c0['model'],_0x58d8c0[_0x4808('0x33')]);_0xd5c21a[_0x4808('0x36')]=_[_0x4808('0x35')](_0x58d8c0[_0x4808('0x31')],qs['fields'](_0x58ca88[_0x4808('0x33')]['fields']));_0xd5c21a[_0x4808('0x36')]=_0xd5c21a[_0x4808('0x36')][_0x4808('0x38')]?_0xd5c21a['attributes']:_0x58d8c0[_0x4808('0x31')];_0xd5c21a[_0x4808('0x39')]=qs['sort'](_0x58ca88[_0x4808('0x33')][_0x4808('0x3a')]);_0xd5c21a[_0x4808('0x3b')]=qs[_0x4808('0x34')](_[_0x4808('0x3c')](_0x58ca88['query'],_0x58d8c0[_0x4808('0x34')]));if(_0x58ca88[_0x4808('0x33')][_0x4808('0x3d')]){_0xd5c21a[_0x4808('0x3b')]=_['merge'](_0xd5c21a[_0x4808('0x3b')],{'$or':_[_0x4808('0x2d')](_0xd5c21a['attributes'],function(_0x32d8b1){var _0x3e8c24={};_0x3e8c24[_0x32d8b1]={'$like':'%'+_0x58ca88['query']['filter']+'%'};return _0x3e8c24;})});}_0xd5c21a=_['merge']({},_0xd5c21a,_0x58ca88[_0x4808('0x46')]);return _0x380638['getSubjects'](_0xd5c21a);}})[_0x4808('0x27')](function(_0x1bbe7b){if(_0x1bbe7b){_0x3bcad1=_0x1bbe7b[_0x4808('0x38')];if(!_0x58ca88[_0x4808('0x33')][_0x4808('0x4f')](_0x4808('0x50'))){_0xd5c21a[_0x4808('0x20')]=qs[_0x4808('0x20')](_0x58ca88[_0x4808('0x33')][_0x4808('0x20')]);_0xd5c21a['offset']=qs['offset'](_0x58ca88[_0x4808('0x33')][_0x4808('0x1f')]);}return _0x380638['getSubjects'](_0xd5c21a);}})[_0x4808('0x27')](function(_0x287723){if(_0x287723){return _0x287723?{'count':_0x3bcad1,'rows':_0x287723}:null;}})[_0x4808('0x27')](respondWithResult(_0xf27a8b,null))[_0x4808('0x48')](handleError(_0xf27a8b,null));};exports[_0x4808('0x51')]=function(_0x5b03b0,_0x2a4262,_0x569ba3){var _0x12e011={};var _0x391968={};var _0xa2cf6f;var _0x4bf2d2;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x5b03b0[_0x4808('0x44')]['id']}})['then'](handleEntityNotFound(_0x2a4262,null))[_0x4808('0x27')](function(_0x1e8278){if(_0x1e8278){_0xa2cf6f=_0x1e8278;_0x391968[_0x4808('0x31')]=_['keys'](db[_0x4808('0x4e')]['rawAttributes']);_0x391968[_0x4808('0x33')]=_['keys'](_0x5b03b0[_0x4808('0x33')]);_0x391968[_0x4808('0x34')]=_[_0x4808('0x35')](_0x391968['model'],_0x391968[_0x4808('0x33')]);_0x12e011[_0x4808('0x36')]=_[_0x4808('0x35')](_0x391968[_0x4808('0x31')],qs[_0x4808('0x37')](_0x5b03b0[_0x4808('0x33')]['fields']));_0x12e011['attributes']=_0x12e011[_0x4808('0x36')]['length']?_0x12e011[_0x4808('0x36')]:_0x391968['model'];_0x12e011[_0x4808('0x39')]=qs[_0x4808('0x3a')](_0x5b03b0['query'][_0x4808('0x3a')]);_0x12e011[_0x4808('0x3b')]=qs[_0x4808('0x34')](_['pick'](_0x5b03b0['query'],_0x391968[_0x4808('0x34')]));if(_0x5b03b0[_0x4808('0x33')][_0x4808('0x3d')]){_0x12e011[_0x4808('0x3b')]=_[_0x4808('0x3e')](_0x12e011['where'],{'$or':_[_0x4808('0x2d')](_0x12e011[_0x4808('0x36')],function(_0x3b351f){var _0x5262dc={};_0x5262dc[_0x3b351f]={'$like':'%'+_0x5b03b0[_0x4808('0x33')]['filter']+'%'};return _0x5262dc;})});}_0x12e011=_[_0x4808('0x3e')]({},_0x12e011,_0x5b03b0[_0x4808('0x46')]);return _0xa2cf6f['getDescriptions'](_0x12e011);}})[_0x4808('0x27')](function(_0x3b6b9f){if(_0x3b6b9f){_0x4bf2d2=_0x3b6b9f[_0x4808('0x38')];if(!_0x5b03b0[_0x4808('0x33')][_0x4808('0x4f')]('nolimit')){_0x12e011[_0x4808('0x20')]=qs[_0x4808('0x20')](_0x5b03b0[_0x4808('0x33')][_0x4808('0x20')]);_0x12e011[_0x4808('0x1f')]=qs[_0x4808('0x1f')](_0x5b03b0[_0x4808('0x33')][_0x4808('0x1f')]);}return _0xa2cf6f[_0x4808('0x51')](_0x12e011);}})['then'](function(_0x2cf42c){if(_0x2cf42c){return _0x2cf42c?{'count':_0x4bf2d2,'rows':_0x2cf42c}:null;}})['then'](respondWithResult(_0x2a4262,null))[_0x4808('0x48')](handleError(_0x2a4262,null));};