a50c3d9cd3dd85210cb8c3aba3691d8a2944544a
[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 _0xaa65=['api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','limit','count','status','set','Content-Range','apply','reject','save','update','destroy','then','get','Dispositions','UserProfileResource','error','name','index','map','Disposition','rawAttributes','fieldName','type','key','model','keys','intersection','query','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','includeAll','include','rows','catch','show','options','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x51639a,_0x35f006){var _0x3abae4=function(_0x89b35e){while(--_0x89b35e){_0x51639a['push'](_0x51639a['shift']());}};_0x3abae4(++_0x35f006);}(_0xaa65,0x90));var _0x5aa6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaa65[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x5aa6('0x0'));var rimraf=require(_0x5aa6('0x1'));var zipdir=require(_0x5aa6('0x2'));var jsonpatch=require(_0x5aa6('0x3'));var rp=require('request-promise');var moment=require(_0x5aa6('0x4'));var BPromise=require(_0x5aa6('0x5'));var Mustache=require(_0x5aa6('0x6'));var util=require(_0x5aa6('0x7'));var path=require(_0x5aa6('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5aa6('0x9'));var fs=require('fs');var fs_extra=require(_0x5aa6('0xa'));var _=require(_0x5aa6('0xb'));var squel=require(_0x5aa6('0xc'));var crypto=require('crypto');var jsforce=require(_0x5aa6('0xd'));var deskjs=require(_0x5aa6('0xe'));var toCsv=require(_0x5aa6('0xf'));var querystring=require(_0x5aa6('0x10'));var Papa=require(_0x5aa6('0x11'));var Redis=require(_0x5aa6('0x12'));var authService=require(_0x5aa6('0x13'));var qs=require(_0x5aa6('0x14'));var as=require(_0x5aa6('0x15'));var hardwareService=require(_0x5aa6('0x16'));var logger=require(_0x5aa6('0x17'))(_0x5aa6('0x18'));var utils=require('../../config/utils');var config=require(_0x5aa6('0x19'));var licenseUtil=require(_0x5aa6('0x1a'));var db=require(_0x5aa6('0x1b'))['db'];function respondWithStatusCode(_0x2705c1,_0x35f52a){_0x35f52a=_0x35f52a||0xcc;return function(_0x4eb241){if(_0x4eb241){return _0x2705c1[_0x5aa6('0x1c')](_0x35f52a);}return _0x2705c1['status'](_0x35f52a)[_0x5aa6('0x1d')]();};}function respondWithResult(_0x3b9975,_0x37b20b){_0x37b20b=_0x37b20b||0xc8;return function(_0xbe2686){if(_0xbe2686){return _0x3b9975['status'](_0x37b20b)['json'](_0xbe2686);}};}function respondWithFilteredResult(_0x54d11f,_0x434bb8){return function(_0x49bc20){if(_0x49bc20){var _0x29c809=typeof _0x434bb8[_0x5aa6('0x1e')]===_0x5aa6('0x1f')&&typeof _0x434bb8[_0x5aa6('0x20')]===_0x5aa6('0x1f');var _0x2dc6b5=_0x49bc20[_0x5aa6('0x21')];var _0x5370dd=_0x29c809?0x0:_0x434bb8['offset'];var _0x16f7e0=_0x29c809?_0x49bc20['count']:_0x434bb8[_0x5aa6('0x1e')]+_0x434bb8['limit'];var _0x223cc6;if(_0x16f7e0>=_0x2dc6b5){_0x16f7e0=_0x2dc6b5;_0x223cc6=0xc8;}else{_0x223cc6=0xce;}_0x54d11f[_0x5aa6('0x22')](_0x223cc6);return _0x54d11f[_0x5aa6('0x23')](_0x5aa6('0x24'),_0x5370dd+'-'+_0x16f7e0+'/'+_0x2dc6b5)['json'](_0x49bc20);}return null;};}function patchUpdates(_0x55d786){return function(_0x313b4b){try{jsonpatch[_0x5aa6('0x25')](_0x313b4b,_0x55d786,!![]);}catch(_0xdc492e){return BPromise[_0x5aa6('0x26')](_0xdc492e);}return _0x313b4b[_0x5aa6('0x27')]();};}function saveUpdates(_0x136f00,_0x27c317){return function(_0x535692){if(_0x535692){return _0x535692[_0x5aa6('0x28')](_0x136f00)['then'](function(_0x5eaddd){return _0x5eaddd;});}return null;};}function removeEntity(_0x296a11,_0x1e74d2){return function(_0x8c7319){if(_0x8c7319){return _0x8c7319[_0x5aa6('0x29')]()[_0x5aa6('0x2a')](function(){var _0x3066a6=_0x8c7319[_0x5aa6('0x2b')]({'plain':!![]});var _0x30a7da=_0x5aa6('0x2c');return db[_0x5aa6('0x2d')][_0x5aa6('0x29')]({'where':{'type':_0x30a7da,'resourceId':_0x3066a6['id']}})[_0x5aa6('0x2a')](function(){return _0x8c7319;});})[_0x5aa6('0x2a')](function(){_0x296a11[_0x5aa6('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x540789,_0x3f0623){return function(_0x546337){if(!_0x546337){_0x540789[_0x5aa6('0x1c')](0x194);}return _0x546337;};}function handleError(_0x35b48b,_0x26c401){_0x26c401=_0x26c401||0x1f4;return function(_0x5c3b1f){logger[_0x5aa6('0x2e')](_0x5c3b1f['stack']);if(_0x5c3b1f['name']){delete _0x5c3b1f[_0x5aa6('0x2f')];}_0x35b48b['status'](_0x26c401)['send'](_0x5c3b1f);};}exports[_0x5aa6('0x30')]=function(_0x33bd51,_0x4ac7c0){var _0x1ce7d1={},_0x407958={},_0x58ec31={'count':0x0,'rows':[]};var _0x5b9aff=_[_0x5aa6('0x31')](db[_0x5aa6('0x32')][_0x5aa6('0x33')],function(_0x39914f){return{'name':_0x39914f[_0x5aa6('0x34')],'type':_0x39914f[_0x5aa6('0x35')][_0x5aa6('0x36')]};});_0x407958[_0x5aa6('0x37')]=_[_0x5aa6('0x31')](_0x5b9aff,'name');_0x407958['query']=_[_0x5aa6('0x38')](_0x33bd51['query']);_0x407958['filters']=_['intersection'](_0x407958[_0x5aa6('0x37')],_0x407958['query']);_0x1ce7d1['attributes']=_[_0x5aa6('0x39')](_0x407958['model'],qs['fields'](_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x3b')]));_0x1ce7d1[_0x5aa6('0x3c')]=_0x1ce7d1[_0x5aa6('0x3c')]['length']?_0x1ce7d1[_0x5aa6('0x3c')]:_0x407958['model'];if(!_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x3d')](_0x5aa6('0x3e'))){_0x1ce7d1[_0x5aa6('0x20')]=qs[_0x5aa6('0x20')](_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x20')]);_0x1ce7d1[_0x5aa6('0x1e')]=qs[_0x5aa6('0x1e')](_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x1e')]);}_0x1ce7d1[_0x5aa6('0x3f')]=qs[_0x5aa6('0x40')](_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x40')]);_0x1ce7d1[_0x5aa6('0x41')]=qs[_0x5aa6('0x42')](_['pick'](_0x33bd51[_0x5aa6('0x3a')],_0x407958[_0x5aa6('0x42')]),_0x5b9aff);if(_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x43')]){_0x1ce7d1['where']=_['merge'](_0x1ce7d1[_0x5aa6('0x41')],{'$or':_[_0x5aa6('0x31')](_0x5b9aff,function(_0x372c95){if(_0x372c95[_0x5aa6('0x35')]!=='VIRTUAL'){var _0x4d19f9={};_0x4d19f9[_0x372c95[_0x5aa6('0x2f')]]={'$like':'%'+_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x43')]+'%'};return _0x4d19f9;}})});}_0x1ce7d1=_[_0x5aa6('0x44')]({},_0x1ce7d1,_0x33bd51['options']);var _0x57b48d={'where':_0x1ce7d1[_0x5aa6('0x41')]};return db[_0x5aa6('0x32')][_0x5aa6('0x21')](_0x57b48d)['then'](function(_0x5b6595){_0x58ec31[_0x5aa6('0x21')]=_0x5b6595;if(_0x33bd51[_0x5aa6('0x3a')][_0x5aa6('0x45')]){_0x1ce7d1[_0x5aa6('0x46')]=[{'all':!![]}];}return db[_0x5aa6('0x32')]['findAll'](_0x1ce7d1);})[_0x5aa6('0x2a')](function(_0x568afd){_0x58ec31[_0x5aa6('0x47')]=_0x568afd;return _0x58ec31;})[_0x5aa6('0x2a')](respondWithFilteredResult(_0x4ac7c0,_0x1ce7d1))[_0x5aa6('0x48')](handleError(_0x4ac7c0,null));};exports[_0x5aa6('0x49')]=function(_0x24665d,_0x4bb169){var _0x4e2487={'raw':!![],'where':{'id':_0x24665d['params']['id']}},_0x471d2c={};_0x471d2c[_0x5aa6('0x37')]=_['keys'](db[_0x5aa6('0x32')][_0x5aa6('0x33')]);_0x471d2c[_0x5aa6('0x3a')]=_[_0x5aa6('0x38')](_0x24665d[_0x5aa6('0x3a')]);_0x471d2c[_0x5aa6('0x42')]=_['intersection'](_0x471d2c[_0x5aa6('0x37')],_0x471d2c[_0x5aa6('0x3a')]);_0x4e2487[_0x5aa6('0x3c')]=_[_0x5aa6('0x39')](_0x471d2c[_0x5aa6('0x37')],qs['fields'](_0x24665d[_0x5aa6('0x3a')]['fields']));_0x4e2487[_0x5aa6('0x3c')]=_0x4e2487[_0x5aa6('0x3c')]['length']?_0x4e2487['attributes']:_0x471d2c[_0x5aa6('0x37')];if(_0x24665d[_0x5aa6('0x3a')][_0x5aa6('0x45')]){_0x4e2487[_0x5aa6('0x46')]=[{'all':!![]}];}_0x4e2487=_[_0x5aa6('0x44')]({},_0x4e2487,_0x24665d[_0x5aa6('0x4a')]);return db[_0x5aa6('0x32')][_0x5aa6('0x4b')](_0x4e2487)[_0x5aa6('0x2a')](handleEntityNotFound(_0x4bb169,null))[_0x5aa6('0x2a')](respondWithResult(_0x4bb169,null))[_0x5aa6('0x48')](handleError(_0x4bb169,null));};exports['create']=function(_0x5cfb93,_0xc33a2){return db[_0x5aa6('0x32')][_0x5aa6('0x4c')](_0x5cfb93[_0x5aa6('0x4d')],{})[_0x5aa6('0x2a')](function(_0x27bdf4){var _0xb62d69=_0x5cfb93[_0x5aa6('0x4e')][_0x5aa6('0x2b')]({'plain':!![]});if(!_0xb62d69)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xb62d69[_0x5aa6('0x4f')]===_0x5aa6('0x4e')){var _0x28c4d7=_0x27bdf4[_0x5aa6('0x2b')]({'plain':!![]});var _0x22ae33=_0x5aa6('0x2c');return db[_0x5aa6('0x50')][_0x5aa6('0x4b')]({'where':{'name':_0x22ae33,'userProfileId':_0xb62d69[_0x5aa6('0x51')]},'raw':!![]})[_0x5aa6('0x2a')](function(_0xf56e54){if(_0xf56e54&&_0xf56e54[_0x5aa6('0x52')]===0x0){return db[_0x5aa6('0x2d')][_0x5aa6('0x4c')]({'name':_0x28c4d7[_0x5aa6('0x2f')],'resourceId':_0x28c4d7['id'],'type':_0xf56e54['name'],'sectionId':_0xf56e54['id']},{})['then'](function(){return _0x27bdf4;});}else{return _0x27bdf4;}})[_0x5aa6('0x48')](function(_0x385966){logger[_0x5aa6('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x385966);throw _0x385966;});}return _0x27bdf4;})[_0x5aa6('0x2a')](respondWithResult(_0xc33a2,0xc9))[_0x5aa6('0x48')](handleError(_0xc33a2,null));};exports[_0x5aa6('0x28')]=function(_0x2b5276,_0x451304){if(_0x2b5276[_0x5aa6('0x4d')]['id']){delete _0x2b5276[_0x5aa6('0x4d')]['id'];}return db[_0x5aa6('0x32')][_0x5aa6('0x4b')]({'where':{'id':_0x2b5276[_0x5aa6('0x53')]['id']}})[_0x5aa6('0x2a')](handleEntityNotFound(_0x451304,null))[_0x5aa6('0x2a')](saveUpdates(_0x2b5276[_0x5aa6('0x4d')],null))[_0x5aa6('0x2a')](respondWithResult(_0x451304,null))[_0x5aa6('0x48')](handleError(_0x451304,null));};exports[_0x5aa6('0x29')]=function(_0x205ac0,_0x2844f8){return db[_0x5aa6('0x32')][_0x5aa6('0x4b')]({'where':{'id':_0x205ac0[_0x5aa6('0x53')]['id']}})[_0x5aa6('0x2a')](handleEntityNotFound(_0x2844f8,null))[_0x5aa6('0x2a')](removeEntity(_0x2844f8,null))[_0x5aa6('0x48')](handleError(_0x2844f8,null));};