Built motion from commit 3e059bc2.|2.5.32
[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 _0x3909=['jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','set','Content-Range','reject','update','then','error','name','send','Dynamics365Configuration','rawAttributes','fieldName','type','model','map','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','includeAll','include','findAll','rows','catch','show','params','intersection','find','create','body','destroy','getFields','findOne','Dynamics365Field','options','getSubjects','getDescriptions','rimraf','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x16ae34,_0x1dc6d){var _0x184836=function(_0x1e48b7){while(--_0x1e48b7){_0x16ae34['push'](_0x16ae34['shift']());}};_0x184836(++_0x1dc6d);}(_0x3909,0x16a));var _0x9390=function(_0x3e079f,_0x189e15){_0x3e079f=_0x3e079f-0x0;var _0x296a34=_0x3909[_0x3e079f];return _0x296a34;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9390('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9390('0x1'));var rp=require(_0x9390('0x2'));var moment=require(_0x9390('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9390('0x4'));var path=require(_0x9390('0x5'));var sox=require(_0x9390('0x6'));var csv=require(_0x9390('0x7'));var ejs=require(_0x9390('0x8'));var fs=require('fs');var fs_extra=require(_0x9390('0x9'));var _=require(_0x9390('0xa'));var squel=require(_0x9390('0xb'));var crypto=require(_0x9390('0xc'));var jsforce=require(_0x9390('0xd'));var deskjs=require(_0x9390('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9390('0xf'));var Redis=require(_0x9390('0x10'));var authService=require(_0x9390('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9390('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x9390('0x13'));var licenseUtil=require(_0x9390('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x6c7b13,_0x123056){_0x123056=_0x123056||0xcc;return function(_0x413844){if(_0x413844){return _0x6c7b13[_0x9390('0x15')](_0x123056);}return _0x6c7b13[_0x9390('0x16')](_0x123056)[_0x9390('0x17')]();};}function respondWithResult(_0x21d57f,_0x3b0986){_0x3b0986=_0x3b0986||0xc8;return function(_0x33d427){if(_0x33d427){return _0x21d57f['status'](_0x3b0986)[_0x9390('0x18')](_0x33d427);}};}function respondWithFilteredResult(_0x49cafb,_0x694b71){return function(_0x4dea9f){if(_0x4dea9f){var _0x110519=typeof _0x694b71['offset']==='undefined'&&typeof _0x694b71['limit']===_0x9390('0x19');var _0x254f43=_0x4dea9f[_0x9390('0x1a')];var _0x107117=_0x110519?0x0:_0x694b71[_0x9390('0x1b')];var _0x1528ac=_0x110519?_0x4dea9f['count']:_0x694b71[_0x9390('0x1b')]+_0x694b71[_0x9390('0x1c')];var _0x1e874d;if(_0x1528ac>=_0x254f43){_0x1528ac=_0x254f43;_0x1e874d=0xc8;}else{_0x1e874d=0xce;}_0x49cafb['status'](_0x1e874d);return _0x49cafb[_0x9390('0x1d')](_0x9390('0x1e'),_0x107117+'-'+_0x1528ac+'/'+_0x254f43)[_0x9390('0x18')](_0x4dea9f);}return null;};}function patchUpdates(_0x359d6c){return function(_0x544c1b){try{jsonpatch['apply'](_0x544c1b,_0x359d6c,!![]);}catch(_0x3db079){return BPromise[_0x9390('0x1f')](_0x3db079);}return _0x544c1b['save']();};}function saveUpdates(_0x14626f,_0x2d4664){return function(_0x199a3a){if(_0x199a3a){return _0x199a3a[_0x9390('0x20')](_0x14626f)[_0x9390('0x21')](function(_0x4719da){return _0x4719da;});}return null;};}function removeEntity(_0x4eddac,_0x3c0fc2){return function(_0x16eaff){if(_0x16eaff){return _0x16eaff['destroy']()[_0x9390('0x21')](function(){_0x4eddac[_0x9390('0x16')](0xcc)[_0x9390('0x17')]();});}};}function handleEntityNotFound(_0x40f9f8,_0x105b92){return function(_0x3a9e26){if(!_0x3a9e26){_0x40f9f8[_0x9390('0x15')](0x194);}return _0x3a9e26;};}function handleError(_0x4b76e4,_0x5a5e19){_0x5a5e19=_0x5a5e19||0x1f4;return function(_0x4b2aab){logger[_0x9390('0x22')](_0x4b2aab['stack']);if(_0x4b2aab[_0x9390('0x23')]){delete _0x4b2aab[_0x9390('0x23')];}_0x4b76e4[_0x9390('0x16')](_0x5a5e19)[_0x9390('0x24')](_0x4b2aab);};}exports['index']=function(_0x51a14c,_0x250110){var _0x5f46e9={},_0x416a8c={},_0x49502e={'count':0x0,'rows':[]};var _0x3ce2c4=_['map'](db[_0x9390('0x25')][_0x9390('0x26')],function(_0x51e6b0){return{'name':_0x51e6b0[_0x9390('0x27')],'type':_0x51e6b0[_0x9390('0x28')]['key']};});_0x416a8c[_0x9390('0x29')]=_[_0x9390('0x2a')](_0x3ce2c4,'name');_0x416a8c[_0x9390('0x2b')]=_[_0x9390('0x2c')](_0x51a14c[_0x9390('0x2b')]);_0x416a8c['filters']=_['intersection'](_0x416a8c[_0x9390('0x29')],_0x416a8c['query']);_0x5f46e9[_0x9390('0x2d')]=_['intersection'](_0x416a8c[_0x9390('0x29')],qs['fields'](_0x51a14c[_0x9390('0x2b')][_0x9390('0x2e')]));_0x5f46e9[_0x9390('0x2d')]=_0x5f46e9[_0x9390('0x2d')][_0x9390('0x2f')]?_0x5f46e9[_0x9390('0x2d')]:_0x416a8c[_0x9390('0x29')];if(!_0x51a14c[_0x9390('0x2b')][_0x9390('0x30')](_0x9390('0x31'))){_0x5f46e9[_0x9390('0x1c')]=qs[_0x9390('0x1c')](_0x51a14c[_0x9390('0x2b')]['limit']);_0x5f46e9[_0x9390('0x1b')]=qs[_0x9390('0x1b')](_0x51a14c['query'][_0x9390('0x1b')]);}_0x5f46e9[_0x9390('0x32')]=qs[_0x9390('0x33')](_0x51a14c[_0x9390('0x2b')][_0x9390('0x33')]);_0x5f46e9[_0x9390('0x34')]=qs[_0x9390('0x35')](_[_0x9390('0x36')](_0x51a14c[_0x9390('0x2b')],_0x416a8c[_0x9390('0x35')]),_0x3ce2c4);if(_0x51a14c[_0x9390('0x2b')]['filter']){_0x5f46e9['where']=_[_0x9390('0x37')](_0x5f46e9[_0x9390('0x34')],{'$or':_[_0x9390('0x2a')](_0x3ce2c4,function(_0x4d34f6){if(_0x4d34f6['type']!=='VIRTUAL'){var _0x4e3f1a={};_0x4e3f1a[_0x4d34f6['name']]={'$like':'%'+_0x51a14c['query'][_0x9390('0x38')]+'%'};return _0x4e3f1a;}})});}_0x5f46e9=_[_0x9390('0x37')]({},_0x5f46e9,_0x51a14c['options']);var _0x159a04={'where':_0x5f46e9[_0x9390('0x34')]};return db[_0x9390('0x25')]['count'](_0x159a04)[_0x9390('0x21')](function(_0x1141df){_0x49502e[_0x9390('0x1a')]=_0x1141df;if(_0x51a14c[_0x9390('0x2b')][_0x9390('0x39')]){_0x5f46e9[_0x9390('0x3a')]=[{'all':!![]}];}return db[_0x9390('0x25')][_0x9390('0x3b')](_0x5f46e9);})['then'](function(_0x50e572){_0x49502e[_0x9390('0x3c')]=_0x50e572;return _0x49502e;})['then'](respondWithFilteredResult(_0x250110,_0x5f46e9))[_0x9390('0x3d')](handleError(_0x250110,null));};exports[_0x9390('0x3e')]=function(_0x34e458,_0xa9d835){var _0x23868c={'raw':![],'where':{'id':_0x34e458[_0x9390('0x3f')]['id']}},_0x2b4baf={};_0x2b4baf['model']=_[_0x9390('0x2c')](db[_0x9390('0x25')][_0x9390('0x26')]);_0x2b4baf['query']=_[_0x9390('0x2c')](_0x34e458[_0x9390('0x2b')]);_0x2b4baf[_0x9390('0x35')]=_['intersection'](_0x2b4baf[_0x9390('0x29')],_0x2b4baf[_0x9390('0x2b')]);_0x23868c['attributes']=_[_0x9390('0x40')](_0x2b4baf[_0x9390('0x29')],qs[_0x9390('0x2e')](_0x34e458[_0x9390('0x2b')]['fields']));_0x23868c['attributes']=_0x23868c[_0x9390('0x2d')][_0x9390('0x2f')]?_0x23868c[_0x9390('0x2d')]:_0x2b4baf[_0x9390('0x29')];if(_0x34e458[_0x9390('0x2b')][_0x9390('0x39')]){_0x23868c[_0x9390('0x3a')]=[{'all':!![]}];}_0x23868c=_[_0x9390('0x37')]({},_0x23868c,_0x34e458['options']);return db[_0x9390('0x25')][_0x9390('0x41')](_0x23868c)['then'](handleEntityNotFound(_0xa9d835,null))['then'](respondWithResult(_0xa9d835,null))[_0x9390('0x3d')](handleError(_0xa9d835,null));};exports['create']=function(_0x3f15f2,_0x214e35){return db['Dynamics365Configuration'][_0x9390('0x42')](_0x3f15f2[_0x9390('0x43')],{})[_0x9390('0x21')](respondWithResult(_0x214e35,0xc9))[_0x9390('0x3d')](handleError(_0x214e35,null));};exports[_0x9390('0x20')]=function(_0x250773,_0x4ebd21){if(_0x250773['body']['id']){delete _0x250773[_0x9390('0x43')]['id'];}return db[_0x9390('0x25')][_0x9390('0x41')]({'where':{'id':_0x250773[_0x9390('0x3f')]['id']}})['then'](handleEntityNotFound(_0x4ebd21,null))[_0x9390('0x21')](saveUpdates(_0x250773[_0x9390('0x43')],null))[_0x9390('0x21')](respondWithResult(_0x4ebd21,null))[_0x9390('0x3d')](handleError(_0x4ebd21,null));};exports[_0x9390('0x44')]=function(_0x3c061b,_0x536998){return db[_0x9390('0x25')][_0x9390('0x41')]({'where':{'id':_0x3c061b[_0x9390('0x3f')]['id']}})['then'](handleEntityNotFound(_0x536998,null))[_0x9390('0x21')](removeEntity(_0x536998,null))[_0x9390('0x3d')](handleError(_0x536998,null));};exports[_0x9390('0x45')]=function(_0x1f3030,_0x2d32d9,_0x3ff286){var _0x1d430c={};var _0x11dd49={};var _0x19c097;var _0x35b00f;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x1f3030[_0x9390('0x3f')]['id']}})['then'](handleEntityNotFound(_0x2d32d9,null))[_0x9390('0x21')](function(_0x18b94e){if(_0x18b94e){_0x19c097=_0x18b94e;_0x11dd49[_0x9390('0x29')]=_[_0x9390('0x2c')](db['Dynamics365Field']['rawAttributes']);_0x11dd49[_0x9390('0x2b')]=_[_0x9390('0x2c')](_0x1f3030['query']);_0x11dd49[_0x9390('0x35')]=_['intersection'](_0x11dd49[_0x9390('0x29')],_0x11dd49['query']);_0x1d430c[_0x9390('0x2d')]=_['intersection'](_0x11dd49['model'],qs[_0x9390('0x2e')](_0x1f3030[_0x9390('0x2b')][_0x9390('0x2e')]));_0x1d430c[_0x9390('0x2d')]=_0x1d430c[_0x9390('0x2d')][_0x9390('0x2f')]?_0x1d430c[_0x9390('0x2d')]:_0x11dd49[_0x9390('0x29')];_0x1d430c['order']=qs[_0x9390('0x33')](_0x1f3030[_0x9390('0x2b')][_0x9390('0x33')]);_0x1d430c[_0x9390('0x34')]=qs[_0x9390('0x35')](_['pick'](_0x1f3030[_0x9390('0x2b')],_0x11dd49[_0x9390('0x35')]));if(_0x1f3030[_0x9390('0x2b')][_0x9390('0x38')]){_0x1d430c[_0x9390('0x34')]=_[_0x9390('0x37')](_0x1d430c[_0x9390('0x34')],{'$or':_[_0x9390('0x2a')](_0x1d430c['attributes'],function(_0x10682b){var _0x276fee={};_0x276fee[_0x10682b]={'$like':'%'+_0x1f3030['query'][_0x9390('0x38')]+'%'};return _0x276fee;})});}_0x1d430c=_[_0x9390('0x37')]({},_0x1d430c,_0x1f3030['options']);return _0x19c097[_0x9390('0x45')](_0x1d430c);}})[_0x9390('0x21')](function(_0x5b60e8){if(_0x5b60e8){_0x35b00f=_0x5b60e8[_0x9390('0x2f')];if(!_0x1f3030[_0x9390('0x2b')][_0x9390('0x30')](_0x9390('0x31'))){_0x1d430c[_0x9390('0x1c')]=qs[_0x9390('0x1c')](_0x1f3030[_0x9390('0x2b')][_0x9390('0x1c')]);_0x1d430c[_0x9390('0x1b')]=qs['offset'](_0x1f3030[_0x9390('0x2b')][_0x9390('0x1b')]);}return _0x19c097[_0x9390('0x45')](_0x1d430c);}})[_0x9390('0x21')](function(_0x20ff8f){if(_0x20ff8f){return _0x20ff8f?{'count':_0x35b00f,'rows':_0x20ff8f}:null;}})[_0x9390('0x21')](respondWithResult(_0x2d32d9,null))['catch'](handleError(_0x2d32d9,null));};exports['getSubjects']=function(_0x3be8e8,_0x2d48f9,_0x9473fa){var _0x186643={};var _0x36249d={};var _0x1570bf;var _0x5e23a2;return db['Dynamics365Configuration'][_0x9390('0x46')]({'where':{'id':_0x3be8e8[_0x9390('0x3f')]['id']}})[_0x9390('0x21')](handleEntityNotFound(_0x2d48f9,null))[_0x9390('0x21')](function(_0x4baee5){if(_0x4baee5){_0x1570bf=_0x4baee5;_0x36249d[_0x9390('0x29')]=_['keys'](db[_0x9390('0x47')][_0x9390('0x26')]);_0x36249d[_0x9390('0x2b')]=_['keys'](_0x3be8e8[_0x9390('0x2b')]);_0x36249d['filters']=_['intersection'](_0x36249d[_0x9390('0x29')],_0x36249d[_0x9390('0x2b')]);_0x186643['attributes']=_['intersection'](_0x36249d[_0x9390('0x29')],qs['fields'](_0x3be8e8['query'][_0x9390('0x2e')]));_0x186643['attributes']=_0x186643[_0x9390('0x2d')]['length']?_0x186643[_0x9390('0x2d')]:_0x36249d['model'];_0x186643[_0x9390('0x32')]=qs[_0x9390('0x33')](_0x3be8e8[_0x9390('0x2b')]['sort']);_0x186643[_0x9390('0x34')]=qs[_0x9390('0x35')](_['pick'](_0x3be8e8[_0x9390('0x2b')],_0x36249d[_0x9390('0x35')]));if(_0x3be8e8['query'][_0x9390('0x38')]){_0x186643[_0x9390('0x34')]=_['merge'](_0x186643[_0x9390('0x34')],{'$or':_['map'](_0x186643[_0x9390('0x2d')],function(_0x5015d5){var _0x11698d={};_0x11698d[_0x5015d5]={'$like':'%'+_0x3be8e8['query'][_0x9390('0x38')]+'%'};return _0x11698d;})});}_0x186643=_[_0x9390('0x37')]({},_0x186643,_0x3be8e8[_0x9390('0x48')]);return _0x1570bf['getSubjects'](_0x186643);}})['then'](function(_0xe5488d){if(_0xe5488d){_0x5e23a2=_0xe5488d[_0x9390('0x2f')];if(!_0x3be8e8[_0x9390('0x2b')][_0x9390('0x30')](_0x9390('0x31'))){_0x186643[_0x9390('0x1c')]=qs[_0x9390('0x1c')](_0x3be8e8[_0x9390('0x2b')]['limit']);_0x186643['offset']=qs[_0x9390('0x1b')](_0x3be8e8[_0x9390('0x2b')][_0x9390('0x1b')]);}return _0x1570bf[_0x9390('0x49')](_0x186643);}})['then'](function(_0x5c0930){if(_0x5c0930){return _0x5c0930?{'count':_0x5e23a2,'rows':_0x5c0930}:null;}})[_0x9390('0x21')](respondWithResult(_0x2d48f9,null))[_0x9390('0x3d')](handleError(_0x2d48f9,null));};exports[_0x9390('0x4a')]=function(_0x5e744f,_0x388328,_0x270872){var _0x3cb503={};var _0x2224ea={};var _0xdad79f;var _0x5c9071;return db[_0x9390('0x25')][_0x9390('0x46')]({'where':{'id':_0x5e744f[_0x9390('0x3f')]['id']}})['then'](handleEntityNotFound(_0x388328,null))[_0x9390('0x21')](function(_0xbef021){if(_0xbef021){_0xdad79f=_0xbef021;_0x2224ea['model']=_['keys'](db[_0x9390('0x47')][_0x9390('0x26')]);_0x2224ea[_0x9390('0x2b')]=_[_0x9390('0x2c')](_0x5e744f['query']);_0x2224ea[_0x9390('0x35')]=_['intersection'](_0x2224ea['model'],_0x2224ea[_0x9390('0x2b')]);_0x3cb503[_0x9390('0x2d')]=_['intersection'](_0x2224ea[_0x9390('0x29')],qs['fields'](_0x5e744f['query'][_0x9390('0x2e')]));_0x3cb503['attributes']=_0x3cb503['attributes'][_0x9390('0x2f')]?_0x3cb503['attributes']:_0x2224ea[_0x9390('0x29')];_0x3cb503[_0x9390('0x32')]=qs['sort'](_0x5e744f['query'][_0x9390('0x33')]);_0x3cb503[_0x9390('0x34')]=qs[_0x9390('0x35')](_[_0x9390('0x36')](_0x5e744f[_0x9390('0x2b')],_0x2224ea[_0x9390('0x35')]));if(_0x5e744f[_0x9390('0x2b')][_0x9390('0x38')]){_0x3cb503[_0x9390('0x34')]=_[_0x9390('0x37')](_0x3cb503['where'],{'$or':_[_0x9390('0x2a')](_0x3cb503['attributes'],function(_0x360ac3){var _0x254219={};_0x254219[_0x360ac3]={'$like':'%'+_0x5e744f['query']['filter']+'%'};return _0x254219;})});}_0x3cb503=_[_0x9390('0x37')]({},_0x3cb503,_0x5e744f[_0x9390('0x48')]);return _0xdad79f[_0x9390('0x4a')](_0x3cb503);}})['then'](function(_0xf70623){if(_0xf70623){_0x5c9071=_0xf70623[_0x9390('0x2f')];if(!_0x5e744f['query']['hasOwnProperty'](_0x9390('0x31'))){_0x3cb503[_0x9390('0x1c')]=qs['limit'](_0x5e744f[_0x9390('0x2b')][_0x9390('0x1c')]);_0x3cb503['offset']=qs[_0x9390('0x1b')](_0x5e744f[_0x9390('0x2b')][_0x9390('0x1b')]);}return _0xdad79f[_0x9390('0x4a')](_0x3cb503);}})[_0x9390('0x21')](function(_0x8b45f1){if(_0x8b45f1){return _0x8b45f1?{'count':_0x5c9071,'rows':_0x8b45f1}:null;}})['then'](respondWithResult(_0x388328,null))['catch'](handleError(_0x388328,null));};