Built motion from commit (unavailable).|2.5.4
[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 _0x9e46=['../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','set','apply','reject','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','map','Disposition','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','count','includeAll','findAll','catch','show','params','keys','include','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x48c059,_0x5cb1fe){var _0xcb0f8c=function(_0x539ba7){while(--_0x539ba7){_0x48c059['push'](_0x48c059['shift']());}};_0xcb0f8c(++_0x5cb1fe);}(_0x9e46,0x19b));var _0x69e4=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x9e46[_0xbca1b1];return _0x4e1686;};'use strict';var pdf=require(_0x69e4('0x0'));var emlformat=require(_0x69e4('0x1'));var rimraf=require(_0x69e4('0x2'));var zipdir=require(_0x69e4('0x3'));var jsonpatch=require(_0x69e4('0x4'));var rp=require(_0x69e4('0x5'));var moment=require('moment');var BPromise=require(_0x69e4('0x6'));var Mustache=require(_0x69e4('0x7'));var util=require(_0x69e4('0x8'));var path=require(_0x69e4('0x9'));var sox=require(_0x69e4('0xa'));var csv=require(_0x69e4('0xb'));var ejs=require(_0x69e4('0xc'));var fs=require('fs');var _=require(_0x69e4('0xd'));var squel=require(_0x69e4('0xe'));var crypto=require(_0x69e4('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x69e4('0x10'));var toCsv=require('to-csv');var querystring=require(_0x69e4('0x11'));var Papa=require(_0x69e4('0x12'));var Redis=require(_0x69e4('0x13'));var authService=require(_0x69e4('0x14'));var qs=require(_0x69e4('0x15'));var as=require(_0x69e4('0x16'));var hardwareService=require(_0x69e4('0x17'));var logger=require(_0x69e4('0x18'))('api');var utils=require(_0x69e4('0x19'));var config=require(_0x69e4('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5daba6,_0x5afeea){_0x5afeea=_0x5afeea||0xcc;return function(_0x5d8dd1){if(_0x5d8dd1){return _0x5daba6[_0x69e4('0x1b')](_0x5afeea);}return _0x5daba6[_0x69e4('0x1c')](_0x5afeea)[_0x69e4('0x1d')]();};}function respondWithResult(_0x421cee,_0x1b0516){_0x1b0516=_0x1b0516||0xc8;return function(_0x2e2436){if(_0x2e2436){return _0x421cee[_0x69e4('0x1c')](_0x1b0516)[_0x69e4('0x1e')](_0x2e2436);}};}function respondWithFilteredResult(_0x5cb39d,_0x47bd8f){return function(_0x3a5cf2){if(_0x3a5cf2){var _0x34419e=_0x3a5cf2['count'],_0xeaa774=_0x47bd8f[_0x69e4('0x1f')],_0x2a69a9=_0x47bd8f[_0x69e4('0x1f')]+_0x47bd8f[_0x69e4('0x20')],_0x27c26d;if(_0x2a69a9>=_0x34419e){_0x2a69a9=_0x34419e;_0x27c26d=0xc8;}else{_0x27c26d=0xce;}_0x5cb39d['status'](_0x27c26d);return _0x5cb39d[_0x69e4('0x21')]('Content-Range',_0xeaa774+'-'+_0x2a69a9+'/'+_0x34419e)[_0x69e4('0x1e')](_0x3a5cf2);}return null;};}function patchUpdates(_0x5b3a95){return function(_0x4627f2){try{jsonpatch[_0x69e4('0x22')](_0x4627f2,_0x5b3a95,!![]);}catch(_0x3da7e0){return BPromise[_0x69e4('0x23')](_0x3da7e0);}return _0x4627f2[_0x69e4('0x24')]();};}function saveUpdates(_0x4b31ef,_0x52bb9f){return function(_0x1f9ee5){if(_0x1f9ee5){return _0x1f9ee5[_0x69e4('0x25')](_0x4b31ef)[_0x69e4('0x26')](function(_0x3d5ea9){return _0x3d5ea9;});}return null;};}function removeEntity(_0x322ab0,_0x3607ef){return function(_0x5cf15f){if(_0x5cf15f){return _0x5cf15f[_0x69e4('0x27')]()['then'](function(){var _0x364bab=_0x5cf15f[_0x69e4('0x28')]({'plain':!![]});var _0xeba747=_0x69e4('0x29');return db[_0x69e4('0x2a')]['destroy']({'where':{'type':_0xeba747,'resourceId':_0x364bab['id']}})[_0x69e4('0x26')](function(){return _0x5cf15f;});})[_0x69e4('0x26')](function(){_0x322ab0[_0x69e4('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x49b1df,_0x4a2863){return function(_0x5e5371){if(!_0x5e5371){_0x49b1df['sendStatus'](0x194);}return _0x5e5371;};}function handleError(_0x1b20e3,_0x227ba2){_0x227ba2=_0x227ba2||0x1f4;return function(_0x5cae8a){logger[_0x69e4('0x2b')](_0x5cae8a[_0x69e4('0x2c')]);if(_0x5cae8a[_0x69e4('0x2d')]){delete _0x5cae8a[_0x69e4('0x2d')];}_0x1b20e3[_0x69e4('0x1c')](_0x227ba2)[_0x69e4('0x2e')](_0x5cae8a);};}exports[_0x69e4('0x2f')]=function(_0x4390b1,_0xeeb857){var _0xbdbbb3={},_0x455934={},_0x3d8d75={'count':0x0,'rows':[]};var _0x5a98a4=_[_0x69e4('0x30')](db[_0x69e4('0x31')][_0x69e4('0x32')],function(_0x4f0e6f){return{'name':_0x4f0e6f[_0x69e4('0x33')],'type':_0x4f0e6f[_0x69e4('0x34')][_0x69e4('0x35')]};});_0x455934['model']=_[_0x69e4('0x30')](_0x5a98a4,_0x69e4('0x2d'));_0x455934[_0x69e4('0x36')]=_['keys'](_0x4390b1['query']);_0x455934[_0x69e4('0x37')]=_[_0x69e4('0x38')](_0x455934[_0x69e4('0x39')],_0x455934[_0x69e4('0x36')]);_0xbdbbb3[_0x69e4('0x3a')]=_[_0x69e4('0x38')](_0x455934[_0x69e4('0x39')],qs[_0x69e4('0x3b')](_0x4390b1['query'][_0x69e4('0x3b')]));_0xbdbbb3['attributes']=_0xbdbbb3[_0x69e4('0x3a')][_0x69e4('0x3c')]?_0xbdbbb3['attributes']:_0x455934['model'];if(!_0x4390b1[_0x69e4('0x36')][_0x69e4('0x3d')](_0x69e4('0x3e'))){_0xbdbbb3[_0x69e4('0x20')]=qs[_0x69e4('0x20')](_0x4390b1[_0x69e4('0x36')]['limit']);_0xbdbbb3[_0x69e4('0x1f')]=qs['offset'](_0x4390b1['query']['offset']);}_0xbdbbb3[_0x69e4('0x3f')]=qs[_0x69e4('0x40')](_0x4390b1[_0x69e4('0x36')][_0x69e4('0x40')]);_0xbdbbb3[_0x69e4('0x41')]=qs['filters'](_[_0x69e4('0x42')](_0x4390b1['query'],_0x455934[_0x69e4('0x37')]),_0x5a98a4);if(_0x4390b1['query']['filter']){_0xbdbbb3[_0x69e4('0x41')]=_[_0x69e4('0x43')](_0xbdbbb3[_0x69e4('0x41')],{'$or':_['map'](_0x5a98a4,function(_0x51e33a){if(_0x51e33a['type']!==_0x69e4('0x44')){var _0x44fa09={};_0x44fa09[_0x51e33a[_0x69e4('0x2d')]]={'$like':'%'+_0x4390b1[_0x69e4('0x36')][_0x69e4('0x45')]+'%'};return _0x44fa09;}})});}_0xbdbbb3=_[_0x69e4('0x43')]({},_0xbdbbb3,_0x4390b1[_0x69e4('0x46')]);var _0x9235a5={'where':_0xbdbbb3[_0x69e4('0x41')]};return db[_0x69e4('0x31')][_0x69e4('0x47')](_0x9235a5)[_0x69e4('0x26')](function(_0x3b2687){_0x3d8d75[_0x69e4('0x47')]=_0x3b2687;if(_0x4390b1['query'][_0x69e4('0x48')]){_0xbdbbb3['include']=[{'all':!![]}];}return db[_0x69e4('0x31')][_0x69e4('0x49')](_0xbdbbb3);})[_0x69e4('0x26')](function(_0x5761ab){_0x3d8d75['rows']=_0x5761ab;return _0x3d8d75;})['then'](respondWithFilteredResult(_0xeeb857,_0xbdbbb3))[_0x69e4('0x4a')](handleError(_0xeeb857,null));};exports[_0x69e4('0x4b')]=function(_0x32d0aa,_0x4f6e7b){var _0x599dd0={'raw':!![],'where':{'id':_0x32d0aa[_0x69e4('0x4c')]['id']}},_0x246fc3={};_0x246fc3[_0x69e4('0x39')]=_[_0x69e4('0x4d')](db['Disposition'][_0x69e4('0x32')]);_0x246fc3['query']=_[_0x69e4('0x4d')](_0x32d0aa[_0x69e4('0x36')]);_0x246fc3['filters']=_[_0x69e4('0x38')](_0x246fc3['model'],_0x246fc3[_0x69e4('0x36')]);_0x599dd0['attributes']=_[_0x69e4('0x38')](_0x246fc3[_0x69e4('0x39')],qs[_0x69e4('0x3b')](_0x32d0aa['query']['fields']));_0x599dd0[_0x69e4('0x3a')]=_0x599dd0['attributes'][_0x69e4('0x3c')]?_0x599dd0[_0x69e4('0x3a')]:_0x246fc3[_0x69e4('0x39')];if(_0x32d0aa[_0x69e4('0x36')][_0x69e4('0x48')]){_0x599dd0[_0x69e4('0x4e')]=[{'all':!![]}];}_0x599dd0=_[_0x69e4('0x43')]({},_0x599dd0,_0x32d0aa[_0x69e4('0x46')]);return db[_0x69e4('0x31')][_0x69e4('0x4f')](_0x599dd0)[_0x69e4('0x26')](handleEntityNotFound(_0x4f6e7b,null))[_0x69e4('0x26')](respondWithResult(_0x4f6e7b,null))[_0x69e4('0x4a')](handleError(_0x4f6e7b,null));};exports[_0x69e4('0x50')]=function(_0x366046,_0x3dee13){return db[_0x69e4('0x31')][_0x69e4('0x50')](_0x366046[_0x69e4('0x51')],{})[_0x69e4('0x26')](function(_0x284b2e){var _0x251aca=_0x366046[_0x69e4('0x52')]['get']({'plain':!![]});if(!_0x251aca)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x251aca['role']===_0x69e4('0x52')){var _0x51d917=_0x284b2e[_0x69e4('0x28')]({'plain':!![]});var _0x29dded=_0x69e4('0x29');return db[_0x69e4('0x53')][_0x69e4('0x4f')]({'where':{'name':_0x29dded,'userProfileId':_0x251aca[_0x69e4('0x54')]},'raw':!![]})['then'](function(_0x97ba0b){if(_0x97ba0b&&_0x97ba0b[_0x69e4('0x55')]===0x0){return db[_0x69e4('0x2a')][_0x69e4('0x50')]({'name':_0x51d917[_0x69e4('0x2d')],'resourceId':_0x51d917['id'],'type':_0x97ba0b[_0x69e4('0x2d')],'sectionId':_0x97ba0b['id']},{})['then'](function(){return _0x284b2e;});}else{return _0x284b2e;}})[_0x69e4('0x4a')](function(_0x499eb4){logger[_0x69e4('0x2b')](_0x69e4('0x56'),_0x499eb4);throw _0x499eb4;});}return _0x284b2e;})[_0x69e4('0x26')](respondWithResult(_0x3dee13,0xc9))[_0x69e4('0x4a')](handleError(_0x3dee13,null));};exports[_0x69e4('0x25')]=function(_0x3b35e9,_0x184ff8){if(_0x3b35e9[_0x69e4('0x51')]['id']){delete _0x3b35e9[_0x69e4('0x51')]['id'];}return db[_0x69e4('0x31')][_0x69e4('0x4f')]({'where':{'id':_0x3b35e9[_0x69e4('0x4c')]['id']}})[_0x69e4('0x26')](handleEntityNotFound(_0x184ff8,null))[_0x69e4('0x26')](saveUpdates(_0x3b35e9['body'],null))['then'](respondWithResult(_0x184ff8,null))['catch'](handleError(_0x184ff8,null));};exports[_0x69e4('0x27')]=function(_0x56853e,_0x12f424){return db[_0x69e4('0x31')]['find']({'where':{'id':_0x56853e[_0x69e4('0x4c')]['id']}})['then'](handleEntityNotFound(_0x12f424,null))[_0x69e4('0x26')](removeEntity(_0x12f424,null))[_0x69e4('0x4a')](handleError(_0x12f424,null));};