Built motion from commit da24aabd.|2.6.20
[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 _0xa23f=['UserProfileResource','destroy','sendStatus','error','stack','name','index','map','Disposition','rawAttributes','fieldName','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','includeAll','findAll','show','params','include','options','find','catch','create','body','role','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','end','json','offset','undefined','limit','count','status','Content-Range','apply','reject','save','update','then','get','Dispositions'];(function(_0x4bb711,_0x52865d){var _0x172e39=function(_0xc32ef7){while(--_0xc32ef7){_0x4bb711['push'](_0x4bb711['shift']());}};_0x172e39(++_0x52865d);}(_0xa23f,0x7c));var _0xfa23=function(_0x256953,_0x94c74e){_0x256953=_0x256953-0x0;var _0x54b751=_0xa23f[_0x256953];return _0x54b751;};'use strict';var emlformat=require(_0xfa23('0x0'));var rimraf=require(_0xfa23('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xfa23('0x2'));var moment=require(_0xfa23('0x3'));var BPromise=require(_0xfa23('0x4'));var Mustache=require(_0xfa23('0x5'));var util=require('util');var path=require(_0xfa23('0x6'));var sox=require('sox');var csv=require(_0xfa23('0x7'));var ejs=require(_0xfa23('0x8'));var fs=require('fs');var fs_extra=require(_0xfa23('0x9'));var _=require(_0xfa23('0xa'));var squel=require('squel');var crypto=require(_0xfa23('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xfa23('0xc'));var toCsv=require(_0xfa23('0x7'));var querystring=require(_0xfa23('0xd'));var Papa=require(_0xfa23('0xe'));var Redis=require(_0xfa23('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xfa23('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfa23('0x11'))('api');var utils=require(_0xfa23('0x12'));var config=require(_0xfa23('0x13'));var licenseUtil=require(_0xfa23('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e5ffe,_0x42380){_0x42380=_0x42380||0xcc;return function(_0x46f991){if(_0x46f991){return _0x1e5ffe['sendStatus'](_0x42380);}return _0x1e5ffe['status'](_0x42380)[_0xfa23('0x15')]();};}function respondWithResult(_0x23712b,_0x3f50f0){_0x3f50f0=_0x3f50f0||0xc8;return function(_0x36252c){if(_0x36252c){return _0x23712b['status'](_0x3f50f0)[_0xfa23('0x16')](_0x36252c);}};}function respondWithFilteredResult(_0xb7d11a,_0x2095a5){return function(_0x9611e0){if(_0x9611e0){var _0x542d9a=typeof _0x2095a5[_0xfa23('0x17')]===_0xfa23('0x18')&&typeof _0x2095a5[_0xfa23('0x19')]===_0xfa23('0x18');var _0x3fa5f6=_0x9611e0['count'];var _0x59610c=_0x542d9a?0x0:_0x2095a5['offset'];var _0x445bd0=_0x542d9a?_0x9611e0[_0xfa23('0x1a')]:_0x2095a5['offset']+_0x2095a5[_0xfa23('0x19')];var _0x2c456b;if(_0x445bd0>=_0x3fa5f6){_0x445bd0=_0x3fa5f6;_0x2c456b=0xc8;}else{_0x2c456b=0xce;}_0xb7d11a[_0xfa23('0x1b')](_0x2c456b);return _0xb7d11a['set'](_0xfa23('0x1c'),_0x59610c+'-'+_0x445bd0+'/'+_0x3fa5f6)[_0xfa23('0x16')](_0x9611e0);}return null;};}function patchUpdates(_0x47c323){return function(_0x16e4f9){try{jsonpatch[_0xfa23('0x1d')](_0x16e4f9,_0x47c323,!![]);}catch(_0x148f3b){return BPromise[_0xfa23('0x1e')](_0x148f3b);}return _0x16e4f9[_0xfa23('0x1f')]();};}function saveUpdates(_0x10ef95,_0x31eedb){return function(_0x485838){if(_0x485838){return _0x485838[_0xfa23('0x20')](_0x10ef95)[_0xfa23('0x21')](function(_0x34a2ce){return _0x34a2ce;});}return null;};}function removeEntity(_0xe4680f,_0x542cde){return function(_0x4500a2){if(_0x4500a2){return _0x4500a2['destroy']()[_0xfa23('0x21')](function(){var _0x1abb42=_0x4500a2[_0xfa23('0x22')]({'plain':!![]});var _0x26bdce=_0xfa23('0x23');return db[_0xfa23('0x24')][_0xfa23('0x25')]({'where':{'type':_0x26bdce,'resourceId':_0x1abb42['id']}})[_0xfa23('0x21')](function(){return _0x4500a2;});})['then'](function(){_0xe4680f[_0xfa23('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ae38a,_0x5de208){return function(_0x4ea972){if(!_0x4ea972){_0x1ae38a[_0xfa23('0x26')](0x194);}return _0x4ea972;};}function handleError(_0x1a9a90,_0xbf9d19){_0xbf9d19=_0xbf9d19||0x1f4;return function(_0x3b00a8){logger[_0xfa23('0x27')](_0x3b00a8[_0xfa23('0x28')]);if(_0x3b00a8[_0xfa23('0x29')]){delete _0x3b00a8['name'];}_0x1a9a90[_0xfa23('0x1b')](_0xbf9d19)['send'](_0x3b00a8);};}exports[_0xfa23('0x2a')]=function(_0x6bf719,_0x5df1f9){var _0x1c83d0={},_0x3a6966={},_0xf9c420={'count':0x0,'rows':[]};var _0x3dadc0=_[_0xfa23('0x2b')](db[_0xfa23('0x2c')][_0xfa23('0x2d')],function(_0x19c7bc){return{'name':_0x19c7bc[_0xfa23('0x2e')],'type':_0x19c7bc['type'][_0xfa23('0x2f')]};});_0x3a6966['model']=_[_0xfa23('0x2b')](_0x3dadc0,_0xfa23('0x29'));_0x3a6966[_0xfa23('0x30')]=_[_0xfa23('0x31')](_0x6bf719[_0xfa23('0x30')]);_0x3a6966[_0xfa23('0x32')]=_[_0xfa23('0x33')](_0x3a6966[_0xfa23('0x34')],_0x3a6966[_0xfa23('0x30')]);_0x1c83d0['attributes']=_[_0xfa23('0x33')](_0x3a6966['model'],qs[_0xfa23('0x35')](_0x6bf719[_0xfa23('0x30')][_0xfa23('0x35')]));_0x1c83d0[_0xfa23('0x36')]=_0x1c83d0[_0xfa23('0x36')][_0xfa23('0x37')]?_0x1c83d0[_0xfa23('0x36')]:_0x3a6966['model'];if(!_0x6bf719[_0xfa23('0x30')][_0xfa23('0x38')](_0xfa23('0x39'))){_0x1c83d0[_0xfa23('0x19')]=qs['limit'](_0x6bf719['query']['limit']);_0x1c83d0[_0xfa23('0x17')]=qs[_0xfa23('0x17')](_0x6bf719['query'][_0xfa23('0x17')]);}_0x1c83d0[_0xfa23('0x3a')]=qs[_0xfa23('0x3b')](_0x6bf719['query'][_0xfa23('0x3b')]);_0x1c83d0['where']=qs[_0xfa23('0x32')](_[_0xfa23('0x3c')](_0x6bf719[_0xfa23('0x30')],_0x3a6966[_0xfa23('0x32')]),_0x3dadc0);if(_0x6bf719[_0xfa23('0x30')][_0xfa23('0x3d')]){_0x1c83d0['where']=_[_0xfa23('0x3e')](_0x1c83d0[_0xfa23('0x3f')],{'$or':_[_0xfa23('0x2b')](_0x3dadc0,function(_0x245f49){if(_0x245f49['type']!==_0xfa23('0x40')){var _0xa4d21f={};_0xa4d21f[_0x245f49[_0xfa23('0x29')]]={'$like':'%'+_0x6bf719[_0xfa23('0x30')][_0xfa23('0x3d')]+'%'};return _0xa4d21f;}})});}_0x1c83d0=_[_0xfa23('0x3e')]({},_0x1c83d0,_0x6bf719['options']);var _0x93ebd4={'where':_0x1c83d0['where']};return db['Disposition'][_0xfa23('0x1a')](_0x93ebd4)[_0xfa23('0x21')](function(_0x5937e0){_0xf9c420[_0xfa23('0x1a')]=_0x5937e0;if(_0x6bf719[_0xfa23('0x30')][_0xfa23('0x41')]){_0x1c83d0['include']=[{'all':!![]}];}return db[_0xfa23('0x2c')][_0xfa23('0x42')](_0x1c83d0);})[_0xfa23('0x21')](function(_0x539271){_0xf9c420['rows']=_0x539271;return _0xf9c420;})[_0xfa23('0x21')](respondWithFilteredResult(_0x5df1f9,_0x1c83d0))['catch'](handleError(_0x5df1f9,null));};exports[_0xfa23('0x43')]=function(_0xd391f,_0x448e45){var _0x4a4028={'raw':!![],'where':{'id':_0xd391f[_0xfa23('0x44')]['id']}},_0x352e66={};_0x352e66[_0xfa23('0x34')]=_[_0xfa23('0x31')](db['Disposition'][_0xfa23('0x2d')]);_0x352e66[_0xfa23('0x30')]=_[_0xfa23('0x31')](_0xd391f['query']);_0x352e66['filters']=_[_0xfa23('0x33')](_0x352e66['model'],_0x352e66[_0xfa23('0x30')]);_0x4a4028[_0xfa23('0x36')]=_[_0xfa23('0x33')](_0x352e66[_0xfa23('0x34')],qs[_0xfa23('0x35')](_0xd391f[_0xfa23('0x30')]['fields']));_0x4a4028[_0xfa23('0x36')]=_0x4a4028[_0xfa23('0x36')][_0xfa23('0x37')]?_0x4a4028[_0xfa23('0x36')]:_0x352e66[_0xfa23('0x34')];if(_0xd391f[_0xfa23('0x30')]['includeAll']){_0x4a4028[_0xfa23('0x45')]=[{'all':!![]}];}_0x4a4028=_[_0xfa23('0x3e')]({},_0x4a4028,_0xd391f[_0xfa23('0x46')]);return db[_0xfa23('0x2c')][_0xfa23('0x47')](_0x4a4028)['then'](handleEntityNotFound(_0x448e45,null))[_0xfa23('0x21')](respondWithResult(_0x448e45,null))[_0xfa23('0x48')](handleError(_0x448e45,null));};exports[_0xfa23('0x49')]=function(_0x5e4633,_0x253faf){return db[_0xfa23('0x2c')][_0xfa23('0x49')](_0x5e4633[_0xfa23('0x4a')],{})[_0xfa23('0x21')](function(_0x312267){var _0x709755=_0x5e4633['user'][_0xfa23('0x22')]({'plain':!![]});if(!_0x709755)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x709755[_0xfa23('0x4b')]===_0xfa23('0x4c')){var _0x3824a9=_0x312267[_0xfa23('0x22')]({'plain':!![]});var _0x12a984=_0xfa23('0x23');return db['UserProfileSection'][_0xfa23('0x47')]({'where':{'name':_0x12a984,'userProfileId':_0x709755[_0xfa23('0x4d')]},'raw':!![]})[_0xfa23('0x21')](function(_0x47459e){if(_0x47459e&&_0x47459e[_0xfa23('0x4e')]===0x0){return db[_0xfa23('0x24')][_0xfa23('0x49')]({'name':_0x3824a9['name'],'resourceId':_0x3824a9['id'],'type':_0x47459e[_0xfa23('0x29')],'sectionId':_0x47459e['id']},{})[_0xfa23('0x21')](function(){return _0x312267;});}else{return _0x312267;}})[_0xfa23('0x48')](function(_0xd64189){logger['error'](_0xfa23('0x4f'),_0xd64189);throw _0xd64189;});}return _0x312267;})[_0xfa23('0x21')](respondWithResult(_0x253faf,0xc9))[_0xfa23('0x48')](handleError(_0x253faf,null));};exports[_0xfa23('0x20')]=function(_0x401309,_0x2993a3){if(_0x401309['body']['id']){delete _0x401309[_0xfa23('0x4a')]['id'];}return db['Disposition'][_0xfa23('0x47')]({'where':{'id':_0x401309[_0xfa23('0x44')]['id']}})['then'](handleEntityNotFound(_0x2993a3,null))[_0xfa23('0x21')](saveUpdates(_0x401309[_0xfa23('0x4a')],null))['then'](respondWithResult(_0x2993a3,null))[_0xfa23('0x48')](handleError(_0x2993a3,null));};exports[_0xfa23('0x25')]=function(_0x5d3777,_0x123116){return db[_0xfa23('0x2c')][_0xfa23('0x47')]({'where':{'id':_0x5d3777[_0xfa23('0x44')]['id']}})['then'](handleEntityNotFound(_0x123116,null))[_0xfa23('0x21')](removeEntity(_0x123116,null))[_0xfa23('0x48')](handleError(_0x123116,null));};