Built motion from commit 00bf23f6.|2.6.16
[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 _0xe225=['send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','Disposition','includeAll','include','findAll','rows','catch','merge','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','rimraf','zip-dir','bluebird','util','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','Dispositions','stack','name'];(function(_0x20de0e,_0xef1cd6){var _0x159bbc=function(_0x5b8850){while(--_0x5b8850){_0x20de0e['push'](_0x20de0e['shift']());}};_0x159bbc(++_0xef1cd6);}(_0xe225,0x1bd));var _0x5e22=function(_0x573a31,_0x4a76f9){_0x573a31=_0x573a31-0x0;var _0x274b73=_0xe225[_0x573a31];return _0x274b73;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5e22('0x0'));var zipdir=require(_0x5e22('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x5e22('0x2'));var Mustache=require('mustache');var util=require(_0x5e22('0x3'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5e22('0x4'));var fs=require('fs');var fs_extra=require(_0x5e22('0x5'));var _=require(_0x5e22('0x6'));var squel=require(_0x5e22('0x7'));var crypto=require(_0x5e22('0x8'));var jsforce=require(_0x5e22('0x9'));var deskjs=require(_0x5e22('0xa'));var toCsv=require(_0x5e22('0xb'));var querystring=require(_0x5e22('0xc'));var Papa=require(_0x5e22('0xd'));var Redis=require(_0x5e22('0xe'));var authService=require(_0x5e22('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x5e22('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5e22('0x11'))(_0x5e22('0x12'));var utils=require(_0x5e22('0x13'));var config=require(_0x5e22('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x5e22('0x15'))['db'];function respondWithStatusCode(_0x5e8b51,_0x3f96be){_0x3f96be=_0x3f96be||0xcc;return function(_0x3dd24c){if(_0x3dd24c){return _0x5e8b51[_0x5e22('0x16')](_0x3f96be);}return _0x5e8b51[_0x5e22('0x17')](_0x3f96be)[_0x5e22('0x18')]();};}function respondWithResult(_0x598d29,_0x1eb276){_0x1eb276=_0x1eb276||0xc8;return function(_0x4795ae){if(_0x4795ae){return _0x598d29[_0x5e22('0x17')](_0x1eb276)[_0x5e22('0x19')](_0x4795ae);}};}function respondWithFilteredResult(_0x1e9eff,_0xbae23a){return function(_0x34de3d){if(_0x34de3d){var _0x32bce1=typeof _0xbae23a[_0x5e22('0x1a')]===_0x5e22('0x1b')&&typeof _0xbae23a[_0x5e22('0x1c')]===_0x5e22('0x1b');var _0x1c4b6c=_0x34de3d['count'];var _0x545723=_0x32bce1?0x0:_0xbae23a[_0x5e22('0x1a')];var _0x48c441=_0x32bce1?_0x34de3d[_0x5e22('0x1d')]:_0xbae23a[_0x5e22('0x1a')]+_0xbae23a[_0x5e22('0x1c')];var _0xe3ed1e;if(_0x48c441>=_0x1c4b6c){_0x48c441=_0x1c4b6c;_0xe3ed1e=0xc8;}else{_0xe3ed1e=0xce;}_0x1e9eff[_0x5e22('0x17')](_0xe3ed1e);return _0x1e9eff[_0x5e22('0x1e')](_0x5e22('0x1f'),_0x545723+'-'+_0x48c441+'/'+_0x1c4b6c)[_0x5e22('0x19')](_0x34de3d);}return null;};}function patchUpdates(_0x280988){return function(_0x26509c){try{jsonpatch['apply'](_0x26509c,_0x280988,!![]);}catch(_0x193a42){return BPromise[_0x5e22('0x20')](_0x193a42);}return _0x26509c[_0x5e22('0x21')]();};}function saveUpdates(_0x303f19,_0x1b5d41){return function(_0x310978){if(_0x310978){return _0x310978[_0x5e22('0x22')](_0x303f19)[_0x5e22('0x23')](function(_0x29f733){return _0x29f733;});}return null;};}function removeEntity(_0x495a17,_0x2a5411){return function(_0x5d0a07){if(_0x5d0a07){return _0x5d0a07[_0x5e22('0x24')]()[_0x5e22('0x23')](function(){var _0x290e23=_0x5d0a07[_0x5e22('0x25')]({'plain':!![]});var _0x1f0b7d=_0x5e22('0x26');return db['UserProfileResource'][_0x5e22('0x24')]({'where':{'type':_0x1f0b7d,'resourceId':_0x290e23['id']}})[_0x5e22('0x23')](function(){return _0x5d0a07;});})[_0x5e22('0x23')](function(){_0x495a17[_0x5e22('0x17')](0xcc)[_0x5e22('0x18')]();});}};}function handleEntityNotFound(_0x3ba9db,_0x218692){return function(_0x5b0c00){if(!_0x5b0c00){_0x3ba9db['sendStatus'](0x194);}return _0x5b0c00;};}function handleError(_0x3d52d0,_0xe36dc7){_0xe36dc7=_0xe36dc7||0x1f4;return function(_0x3c0561){logger['error'](_0x3c0561[_0x5e22('0x27')]);if(_0x3c0561['name']){delete _0x3c0561[_0x5e22('0x28')];}_0x3d52d0[_0x5e22('0x17')](_0xe36dc7)[_0x5e22('0x29')](_0x3c0561);};}exports['index']=function(_0x3227b4,_0x537574){var _0x5981be={},_0x490597={},_0x226fc2={'count':0x0,'rows':[]};var _0x36ab38=_[_0x5e22('0x2a')](db['Disposition'][_0x5e22('0x2b')],function(_0x223e9a){return{'name':_0x223e9a[_0x5e22('0x2c')],'type':_0x223e9a[_0x5e22('0x2d')][_0x5e22('0x2e')]};});_0x490597[_0x5e22('0x2f')]=_[_0x5e22('0x2a')](_0x36ab38,'name');_0x490597[_0x5e22('0x30')]=_[_0x5e22('0x31')](_0x3227b4[_0x5e22('0x30')]);_0x490597[_0x5e22('0x32')]=_[_0x5e22('0x33')](_0x490597[_0x5e22('0x2f')],_0x490597[_0x5e22('0x30')]);_0x5981be[_0x5e22('0x34')]=_[_0x5e22('0x33')](_0x490597['model'],qs[_0x5e22('0x35')](_0x3227b4[_0x5e22('0x30')][_0x5e22('0x35')]));_0x5981be[_0x5e22('0x34')]=_0x5981be[_0x5e22('0x34')][_0x5e22('0x36')]?_0x5981be[_0x5e22('0x34')]:_0x490597[_0x5e22('0x2f')];if(!_0x3227b4[_0x5e22('0x30')]['hasOwnProperty'](_0x5e22('0x37'))){_0x5981be[_0x5e22('0x1c')]=qs[_0x5e22('0x1c')](_0x3227b4['query'][_0x5e22('0x1c')]);_0x5981be[_0x5e22('0x1a')]=qs['offset'](_0x3227b4['query'][_0x5e22('0x1a')]);}_0x5981be[_0x5e22('0x38')]=qs[_0x5e22('0x39')](_0x3227b4[_0x5e22('0x30')][_0x5e22('0x39')]);_0x5981be[_0x5e22('0x3a')]=qs['filters'](_['pick'](_0x3227b4['query'],_0x490597[_0x5e22('0x32')]),_0x36ab38);if(_0x3227b4['query'][_0x5e22('0x3b')]){_0x5981be[_0x5e22('0x3a')]=_['merge'](_0x5981be[_0x5e22('0x3a')],{'$or':_['map'](_0x36ab38,function(_0x11176c){if(_0x11176c[_0x5e22('0x2d')]!=='VIRTUAL'){var _0x352f77={};_0x352f77[_0x11176c[_0x5e22('0x28')]]={'$like':'%'+_0x3227b4[_0x5e22('0x30')][_0x5e22('0x3b')]+'%'};return _0x352f77;}})});}_0x5981be=_['merge']({},_0x5981be,_0x3227b4['options']);var _0xd20728={'where':_0x5981be[_0x5e22('0x3a')]};return db[_0x5e22('0x3c')]['count'](_0xd20728)[_0x5e22('0x23')](function(_0x4feb13){_0x226fc2['count']=_0x4feb13;if(_0x3227b4['query'][_0x5e22('0x3d')]){_0x5981be[_0x5e22('0x3e')]=[{'all':!![]}];}return db[_0x5e22('0x3c')][_0x5e22('0x3f')](_0x5981be);})['then'](function(_0x59c399){_0x226fc2[_0x5e22('0x40')]=_0x59c399;return _0x226fc2;})[_0x5e22('0x23')](respondWithFilteredResult(_0x537574,_0x5981be))[_0x5e22('0x41')](handleError(_0x537574,null));};exports['show']=function(_0x1d36af,_0x37fedf){var _0x463770={'raw':!![],'where':{'id':_0x1d36af['params']['id']}},_0x75a4c9={};_0x75a4c9[_0x5e22('0x2f')]=_[_0x5e22('0x31')](db['Disposition']['rawAttributes']);_0x75a4c9[_0x5e22('0x30')]=_['keys'](_0x1d36af[_0x5e22('0x30')]);_0x75a4c9['filters']=_[_0x5e22('0x33')](_0x75a4c9[_0x5e22('0x2f')],_0x75a4c9[_0x5e22('0x30')]);_0x463770['attributes']=_[_0x5e22('0x33')](_0x75a4c9['model'],qs[_0x5e22('0x35')](_0x1d36af[_0x5e22('0x30')]['fields']));_0x463770['attributes']=_0x463770[_0x5e22('0x34')][_0x5e22('0x36')]?_0x463770[_0x5e22('0x34')]:_0x75a4c9['model'];if(_0x1d36af[_0x5e22('0x30')][_0x5e22('0x3d')]){_0x463770[_0x5e22('0x3e')]=[{'all':!![]}];}_0x463770=_[_0x5e22('0x42')]({},_0x463770,_0x1d36af[_0x5e22('0x43')]);return db[_0x5e22('0x3c')][_0x5e22('0x44')](_0x463770)['then'](handleEntityNotFound(_0x37fedf,null))[_0x5e22('0x23')](respondWithResult(_0x37fedf,null))[_0x5e22('0x41')](handleError(_0x37fedf,null));};exports['create']=function(_0x3cb7de,_0x5e7a90){return db[_0x5e22('0x3c')][_0x5e22('0x45')](_0x3cb7de['body'],{})[_0x5e22('0x23')](function(_0xee3f88){var _0x1fd024=_0x3cb7de[_0x5e22('0x46')][_0x5e22('0x25')]({'plain':!![]});if(!_0x1fd024)throw new Error(_0x5e22('0x47'));if(_0x1fd024[_0x5e22('0x48')]===_0x5e22('0x46')){var _0xe75dc=_0xee3f88[_0x5e22('0x25')]({'plain':!![]});var _0x57b3fa=_0x5e22('0x26');return db[_0x5e22('0x49')][_0x5e22('0x44')]({'where':{'name':_0x57b3fa,'userProfileId':_0x1fd024[_0x5e22('0x4a')]},'raw':!![]})[_0x5e22('0x23')](function(_0x5bfdf9){if(_0x5bfdf9&&_0x5bfdf9[_0x5e22('0x4b')]===0x0){return db[_0x5e22('0x4c')]['create']({'name':_0xe75dc['name'],'resourceId':_0xe75dc['id'],'type':_0x5bfdf9[_0x5e22('0x28')],'sectionId':_0x5bfdf9['id']},{})[_0x5e22('0x23')](function(){return _0xee3f88;});}else{return _0xee3f88;}})[_0x5e22('0x41')](function(_0x4d10d0){logger[_0x5e22('0x4d')](_0x5e22('0x4e'),_0x4d10d0);throw _0x4d10d0;});}return _0xee3f88;})[_0x5e22('0x23')](respondWithResult(_0x5e7a90,0xc9))[_0x5e22('0x41')](handleError(_0x5e7a90,null));};exports[_0x5e22('0x22')]=function(_0xa6cec9,_0x53794d){if(_0xa6cec9[_0x5e22('0x4f')]['id']){delete _0xa6cec9[_0x5e22('0x4f')]['id'];}return db['Disposition']['find']({'where':{'id':_0xa6cec9[_0x5e22('0x50')]['id']}})[_0x5e22('0x23')](handleEntityNotFound(_0x53794d,null))[_0x5e22('0x23')](saveUpdates(_0xa6cec9[_0x5e22('0x4f')],null))['then'](respondWithResult(_0x53794d,null))[_0x5e22('0x41')](handleError(_0x53794d,null));};exports['destroy']=function(_0x36fc00,_0x1dcd91){return db[_0x5e22('0x3c')]['find']({'where':{'id':_0x36fc00[_0x5e22('0x50')]['id']}})['then'](handleEntityNotFound(_0x1dcd91,null))['then'](removeEntity(_0x1dcd91,null))[_0x5e22('0x41')](handleError(_0x1dcd91,null));};