76baa62c6bfd37444fec89bc56cb4fbcf6863395
[motion2.git] / server / api / disposition / disposition.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 _0x5ca3=['pick','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','rawAttributes','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','crypto','desk.js','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','count','offset','limit','apply','reject','update','destroy','then','get','Dispositions','error','name','index','map','Disposition','fieldName','key','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where'];(function(_0xdbaf7f,_0x2ffdf7){var _0x2b296b=function(_0x32d2e0){while(--_0x32d2e0){_0xdbaf7f['push'](_0xdbaf7f['shift']());}};_0x2b296b(++_0x2ffdf7);}(_0x5ca3,0xfd));var _0x35ca=function(_0x13a76c,_0x445e8e){_0x13a76c=_0x13a76c-0x0;var _0x4cbd9d=_0x5ca3[_0x13a76c];return _0x4cbd9d;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x35ca('0x0'));var rimraf=require(_0x35ca('0x1'));var zipdir=require(_0x35ca('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x35ca('0x3'));var moment=require(_0x35ca('0x4'));var BPromise=require(_0x35ca('0x5'));var Mustache=require(_0x35ca('0x6'));var util=require(_0x35ca('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x35ca('0x8'));var ejs=require(_0x35ca('0x9'));var fs=require('fs');var _=require(_0x35ca('0xa'));var squel=require(_0x35ca('0xb'));var crypto=require(_0x35ca('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x35ca('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x35ca('0xe'));var authService=require(_0x35ca('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x35ca('0x10'));var logger=require(_0x35ca('0x11'))(_0x35ca('0x12'));var utils=require(_0x35ca('0x13'));var config=require(_0x35ca('0x14'));var licenseUtil=require(_0x35ca('0x15'));var db=require(_0x35ca('0x16'))['db'];function respondWithStatusCode(_0x57431c,_0x273e03){_0x273e03=_0x273e03||0xcc;return function(_0x432ebb){if(_0x432ebb){return _0x57431c[_0x35ca('0x17')](_0x273e03);}return _0x57431c['status'](_0x273e03)[_0x35ca('0x18')]();};}function respondWithResult(_0xaf1919,_0x2ccfb0){_0x2ccfb0=_0x2ccfb0||0xc8;return function(_0x12ca6d){if(_0x12ca6d){return _0xaf1919[_0x35ca('0x19')](_0x2ccfb0)[_0x35ca('0x1a')](_0x12ca6d);}};}function respondWithFilteredResult(_0x51d31c,_0x2c7c4f){return function(_0xcc658e){if(_0xcc658e){var _0x1f54d3=_0xcc658e[_0x35ca('0x1b')],_0x75a3ad=_0x2c7c4f[_0x35ca('0x1c')],_0x2284ae=_0x2c7c4f[_0x35ca('0x1c')]+_0x2c7c4f[_0x35ca('0x1d')],_0x219f04;if(_0x2284ae>=_0x1f54d3){_0x2284ae=_0x1f54d3;_0x219f04=0xc8;}else{_0x219f04=0xce;}_0x51d31c[_0x35ca('0x19')](_0x219f04);return _0x51d31c['set']('Content-Range',_0x75a3ad+'-'+_0x2284ae+'/'+_0x1f54d3)['json'](_0xcc658e);}return null;};}function patchUpdates(_0x982552){return function(_0x13d0ff){try{jsonpatch[_0x35ca('0x1e')](_0x13d0ff,_0x982552,!![]);}catch(_0x33faec){return BPromise[_0x35ca('0x1f')](_0x33faec);}return _0x13d0ff['save']();};}function saveUpdates(_0xd230c7,_0x178072){return function(_0x1e3d62){if(_0x1e3d62){return _0x1e3d62[_0x35ca('0x20')](_0xd230c7)['then'](function(_0x3c9aca){return _0x3c9aca;});}return null;};}function removeEntity(_0x57cc79,_0x4b6843){return function(_0xb7a95a){if(_0xb7a95a){return _0xb7a95a[_0x35ca('0x21')]()[_0x35ca('0x22')](function(){var _0x1fd5d3=_0xb7a95a[_0x35ca('0x23')]({'plain':!![]});var _0x5aea9a=_0x35ca('0x24');return db['UserProfileResource'][_0x35ca('0x21')]({'where':{'type':_0x5aea9a,'resourceId':_0x1fd5d3['id']}})[_0x35ca('0x22')](function(){return _0xb7a95a;});})[_0x35ca('0x22')](function(){_0x57cc79[_0x35ca('0x19')](0xcc)[_0x35ca('0x18')]();});}};}function handleEntityNotFound(_0x27d5a1,_0x271aed){return function(_0xcfb8b4){if(!_0xcfb8b4){_0x27d5a1[_0x35ca('0x17')](0x194);}return _0xcfb8b4;};}function handleError(_0x482a8f,_0x65cb4d){_0x65cb4d=_0x65cb4d||0x1f4;return function(_0x25e192){logger[_0x35ca('0x25')](_0x25e192['stack']);if(_0x25e192[_0x35ca('0x26')]){delete _0x25e192[_0x35ca('0x26')];}_0x482a8f[_0x35ca('0x19')](_0x65cb4d)['send'](_0x25e192);};}exports[_0x35ca('0x27')]=function(_0x2f883d,_0x54aa92){var _0x1475a5={},_0x3868eb={},_0x42fa91={'count':0x0,'rows':[]};var _0x37037d=_[_0x35ca('0x28')](db[_0x35ca('0x29')]['rawAttributes'],function(_0x1cfd7b){return{'name':_0x1cfd7b[_0x35ca('0x2a')],'type':_0x1cfd7b['type'][_0x35ca('0x2b')]};});_0x3868eb[_0x35ca('0x2c')]=_[_0x35ca('0x28')](_0x37037d,_0x35ca('0x26'));_0x3868eb['query']=_[_0x35ca('0x2d')](_0x2f883d[_0x35ca('0x2e')]);_0x3868eb[_0x35ca('0x2f')]=_[_0x35ca('0x30')](_0x3868eb[_0x35ca('0x2c')],_0x3868eb[_0x35ca('0x2e')]);_0x1475a5['attributes']=_[_0x35ca('0x30')](_0x3868eb[_0x35ca('0x2c')],qs[_0x35ca('0x31')](_0x2f883d[_0x35ca('0x2e')][_0x35ca('0x31')]));_0x1475a5['attributes']=_0x1475a5['attributes']['length']?_0x1475a5[_0x35ca('0x32')]:_0x3868eb[_0x35ca('0x2c')];if(!_0x2f883d['query']['hasOwnProperty'](_0x35ca('0x33'))){_0x1475a5['limit']=qs[_0x35ca('0x1d')](_0x2f883d['query'][_0x35ca('0x1d')]);_0x1475a5[_0x35ca('0x1c')]=qs[_0x35ca('0x1c')](_0x2f883d[_0x35ca('0x2e')][_0x35ca('0x1c')]);}_0x1475a5[_0x35ca('0x34')]=qs['sort'](_0x2f883d[_0x35ca('0x2e')][_0x35ca('0x35')]);_0x1475a5[_0x35ca('0x36')]=qs[_0x35ca('0x2f')](_[_0x35ca('0x37')](_0x2f883d['query'],_0x3868eb[_0x35ca('0x2f')]),_0x37037d);if(_0x2f883d[_0x35ca('0x2e')]['filter']){_0x1475a5[_0x35ca('0x36')]=_[_0x35ca('0x38')](_0x1475a5[_0x35ca('0x36')],{'$or':_[_0x35ca('0x28')](_0x37037d,function(_0x769df){if(_0x769df[_0x35ca('0x39')]!==_0x35ca('0x3a')){var _0x65c30b={};_0x65c30b[_0x769df[_0x35ca('0x26')]]={'$like':'%'+_0x2f883d[_0x35ca('0x2e')]['filter']+'%'};return _0x65c30b;}})});}_0x1475a5=_['merge']({},_0x1475a5,_0x2f883d[_0x35ca('0x3b')]);var _0x2a1f29={'where':_0x1475a5[_0x35ca('0x36')]};return db[_0x35ca('0x29')][_0x35ca('0x1b')](_0x2a1f29)[_0x35ca('0x22')](function(_0x3f5772){_0x42fa91[_0x35ca('0x1b')]=_0x3f5772;if(_0x2f883d['query'][_0x35ca('0x3c')]){_0x1475a5[_0x35ca('0x3d')]=[{'all':!![]}];}return db[_0x35ca('0x29')]['findAll'](_0x1475a5);})[_0x35ca('0x22')](function(_0x52a5a3){_0x42fa91[_0x35ca('0x3e')]=_0x52a5a3;return _0x42fa91;})['then'](respondWithFilteredResult(_0x54aa92,_0x1475a5))[_0x35ca('0x3f')](handleError(_0x54aa92,null));};exports[_0x35ca('0x40')]=function(_0x5624e8,_0x304521){var _0x2e706b={'raw':!![],'where':{'id':_0x5624e8['params']['id']}},_0x4f9d30={};_0x4f9d30[_0x35ca('0x2c')]=_[_0x35ca('0x2d')](db['Disposition'][_0x35ca('0x41')]);_0x4f9d30['query']=_[_0x35ca('0x2d')](_0x5624e8[_0x35ca('0x2e')]);_0x4f9d30[_0x35ca('0x2f')]=_[_0x35ca('0x30')](_0x4f9d30[_0x35ca('0x2c')],_0x4f9d30[_0x35ca('0x2e')]);_0x2e706b[_0x35ca('0x32')]=_[_0x35ca('0x30')](_0x4f9d30[_0x35ca('0x2c')],qs[_0x35ca('0x31')](_0x5624e8[_0x35ca('0x2e')][_0x35ca('0x31')]));_0x2e706b[_0x35ca('0x32')]=_0x2e706b[_0x35ca('0x32')]['length']?_0x2e706b[_0x35ca('0x32')]:_0x4f9d30[_0x35ca('0x2c')];if(_0x5624e8[_0x35ca('0x2e')][_0x35ca('0x3c')]){_0x2e706b['include']=[{'all':!![]}];}_0x2e706b=_[_0x35ca('0x38')]({},_0x2e706b,_0x5624e8[_0x35ca('0x3b')]);return db[_0x35ca('0x29')][_0x35ca('0x42')](_0x2e706b)['then'](handleEntityNotFound(_0x304521,null))[_0x35ca('0x22')](respondWithResult(_0x304521,null))[_0x35ca('0x3f')](handleError(_0x304521,null));};exports[_0x35ca('0x43')]=function(_0x56443f,_0x5548b5){return db[_0x35ca('0x29')][_0x35ca('0x43')](_0x56443f['body'],{})[_0x35ca('0x22')](function(_0x237270){var _0x3e151a=_0x56443f[_0x35ca('0x44')][_0x35ca('0x23')]({'plain':!![]});if(!_0x3e151a)throw new Error(_0x35ca('0x45'));if(_0x3e151a[_0x35ca('0x46')]==='user'){var _0x4c95d7=_0x237270[_0x35ca('0x23')]({'plain':!![]});var _0x39c636='Dispositions';return db[_0x35ca('0x47')]['find']({'where':{'name':_0x39c636,'userProfileId':_0x3e151a[_0x35ca('0x48')]},'raw':!![]})[_0x35ca('0x22')](function(_0x4f9bec){if(_0x4f9bec&&_0x4f9bec[_0x35ca('0x49')]===0x0){return db['UserProfileResource'][_0x35ca('0x43')]({'name':_0x4c95d7[_0x35ca('0x26')],'resourceId':_0x4c95d7['id'],'type':_0x4f9bec[_0x35ca('0x26')],'sectionId':_0x4f9bec['id']},{})[_0x35ca('0x22')](function(){return _0x237270;});}else{return _0x237270;}})['catch'](function(_0x36c22c){logger[_0x35ca('0x25')](_0x35ca('0x4a'),_0x36c22c);throw _0x36c22c;});}return _0x237270;})[_0x35ca('0x22')](respondWithResult(_0x5548b5,0xc9))[_0x35ca('0x3f')](handleError(_0x5548b5,null));};exports['update']=function(_0x360ef5,_0xe97cd4){if(_0x360ef5[_0x35ca('0x4b')]['id']){delete _0x360ef5[_0x35ca('0x4b')]['id'];}return db[_0x35ca('0x29')][_0x35ca('0x42')]({'where':{'id':_0x360ef5[_0x35ca('0x4c')]['id']}})[_0x35ca('0x22')](handleEntityNotFound(_0xe97cd4,null))[_0x35ca('0x22')](saveUpdates(_0x360ef5[_0x35ca('0x4b')],null))['then'](respondWithResult(_0xe97cd4,null))[_0x35ca('0x3f')](handleError(_0xe97cd4,null));};exports[_0x35ca('0x21')]=function(_0xacd5f2,_0x20f70f){return db[_0x35ca('0x29')][_0x35ca('0x42')]({'where':{'id':_0xacd5f2[_0x35ca('0x4c')]['id']}})['then'](handleEntityNotFound(_0x20f70f,null))['then'](removeEntity(_0x20f70f,null))[_0x35ca('0x3f')](handleError(_0x20f70f,null));};