Built motion from commit 3e059bc2.|2.5.32
[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 _0xec38=['request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','get','Dispositions','error','stack','name','send','Disposition','rawAttributes','fieldName','type','key','map','keys','intersection','attributes','model','fields','length','nolimit','query','order','sort','where','filters','pick','filter','merge','options','include','rows','show','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','catch','update','params','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x408e38,_0x23cda8){var _0x426b0e=function(_0x8f2898){while(--_0x8f2898){_0x408e38['push'](_0x408e38['shift']());}};_0x426b0e(++_0x23cda8);}(_0xec38,0x1f4));var _0x8ec3=function(_0x32905d,_0x2ed18c){_0x32905d=_0x32905d-0x0;var _0x2c3f12=_0xec38[_0x32905d];return _0x2c3f12;};'use strict';var emlformat=require(_0x8ec3('0x0'));var rimraf=require(_0x8ec3('0x1'));var zipdir=require(_0x8ec3('0x2'));var jsonpatch=require(_0x8ec3('0x3'));var rp=require(_0x8ec3('0x4'));var moment=require(_0x8ec3('0x5'));var BPromise=require(_0x8ec3('0x6'));var Mustache=require(_0x8ec3('0x7'));var util=require(_0x8ec3('0x8'));var path=require(_0x8ec3('0x9'));var sox=require(_0x8ec3('0xa'));var csv=require('to-csv');var ejs=require(_0x8ec3('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8ec3('0xc'));var crypto=require('crypto');var jsforce=require(_0x8ec3('0xd'));var deskjs=require(_0x8ec3('0xe'));var toCsv=require(_0x8ec3('0xf'));var querystring=require(_0x8ec3('0x10'));var Papa=require(_0x8ec3('0x11'));var Redis=require('ioredis');var authService=require(_0x8ec3('0x12'));var qs=require(_0x8ec3('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8ec3('0x14'));var logger=require('../../config/logger')(_0x8ec3('0x15'));var utils=require(_0x8ec3('0x16'));var config=require(_0x8ec3('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1426e4,_0x1fbf6c){_0x1fbf6c=_0x1fbf6c||0xcc;return function(_0x14602a){if(_0x14602a){return _0x1426e4[_0x8ec3('0x18')](_0x1fbf6c);}return _0x1426e4[_0x8ec3('0x19')](_0x1fbf6c)[_0x8ec3('0x1a')]();};}function respondWithResult(_0x5597df,_0x15a506){_0x15a506=_0x15a506||0xc8;return function(_0xfe4d4f){if(_0xfe4d4f){return _0x5597df[_0x8ec3('0x19')](_0x15a506)[_0x8ec3('0x1b')](_0xfe4d4f);}};}function respondWithFilteredResult(_0x40a5c0,_0x342522){return function(_0x360661){if(_0x360661){var _0x3a83b9=typeof _0x342522[_0x8ec3('0x1c')]===_0x8ec3('0x1d')&&typeof _0x342522['limit']===_0x8ec3('0x1d');var _0x35e2f6=_0x360661[_0x8ec3('0x1e')];var _0xe09d67=_0x3a83b9?0x0:_0x342522[_0x8ec3('0x1c')];var _0x5255f0=_0x3a83b9?_0x360661[_0x8ec3('0x1e')]:_0x342522['offset']+_0x342522[_0x8ec3('0x1f')];var _0x3e5aa8;if(_0x5255f0>=_0x35e2f6){_0x5255f0=_0x35e2f6;_0x3e5aa8=0xc8;}else{_0x3e5aa8=0xce;}_0x40a5c0[_0x8ec3('0x19')](_0x3e5aa8);return _0x40a5c0[_0x8ec3('0x20')](_0x8ec3('0x21'),_0xe09d67+'-'+_0x5255f0+'/'+_0x35e2f6)[_0x8ec3('0x1b')](_0x360661);}return null;};}function patchUpdates(_0x1ab3eb){return function(_0xc21991){try{jsonpatch[_0x8ec3('0x22')](_0xc21991,_0x1ab3eb,!![]);}catch(_0x2c887e){return BPromise[_0x8ec3('0x23')](_0x2c887e);}return _0xc21991[_0x8ec3('0x24')]();};}function saveUpdates(_0x5e23a9,_0x252595){return function(_0x280a07){if(_0x280a07){return _0x280a07['update'](_0x5e23a9)[_0x8ec3('0x25')](function(_0x39c94c){return _0x39c94c;});}return null;};}function removeEntity(_0x334830,_0xc16744){return function(_0x4920f8){if(_0x4920f8){return _0x4920f8[_0x8ec3('0x26')]()[_0x8ec3('0x25')](function(){var _0x3ecfac=_0x4920f8[_0x8ec3('0x27')]({'plain':!![]});var _0x2e8900=_0x8ec3('0x28');return db['UserProfileResource'][_0x8ec3('0x26')]({'where':{'type':_0x2e8900,'resourceId':_0x3ecfac['id']}})['then'](function(){return _0x4920f8;});})[_0x8ec3('0x25')](function(){_0x334830[_0x8ec3('0x19')](0xcc)[_0x8ec3('0x1a')]();});}};}function handleEntityNotFound(_0x320ea3,_0x4985dc){return function(_0x16b382){if(!_0x16b382){_0x320ea3[_0x8ec3('0x18')](0x194);}return _0x16b382;};}function handleError(_0x475eb0,_0x51a5c2){_0x51a5c2=_0x51a5c2||0x1f4;return function(_0x449c32){logger[_0x8ec3('0x29')](_0x449c32[_0x8ec3('0x2a')]);if(_0x449c32['name']){delete _0x449c32[_0x8ec3('0x2b')];}_0x475eb0['status'](_0x51a5c2)[_0x8ec3('0x2c')](_0x449c32);};}exports['index']=function(_0x32f05c,_0x43cc5c){var _0x363b4f={},_0x1c46ce={},_0x5e7b3b={'count':0x0,'rows':[]};var _0x7a7799=_['map'](db[_0x8ec3('0x2d')][_0x8ec3('0x2e')],function(_0x4c1e03){return{'name':_0x4c1e03[_0x8ec3('0x2f')],'type':_0x4c1e03[_0x8ec3('0x30')][_0x8ec3('0x31')]};});_0x1c46ce['model']=_[_0x8ec3('0x32')](_0x7a7799,'name');_0x1c46ce['query']=_[_0x8ec3('0x33')](_0x32f05c['query']);_0x1c46ce['filters']=_[_0x8ec3('0x34')](_0x1c46ce['model'],_0x1c46ce['query']);_0x363b4f[_0x8ec3('0x35')]=_[_0x8ec3('0x34')](_0x1c46ce[_0x8ec3('0x36')],qs[_0x8ec3('0x37')](_0x32f05c['query']['fields']));_0x363b4f[_0x8ec3('0x35')]=_0x363b4f[_0x8ec3('0x35')][_0x8ec3('0x38')]?_0x363b4f[_0x8ec3('0x35')]:_0x1c46ce[_0x8ec3('0x36')];if(!_0x32f05c['query']['hasOwnProperty'](_0x8ec3('0x39'))){_0x363b4f[_0x8ec3('0x1f')]=qs['limit'](_0x32f05c[_0x8ec3('0x3a')]['limit']);_0x363b4f[_0x8ec3('0x1c')]=qs['offset'](_0x32f05c[_0x8ec3('0x3a')][_0x8ec3('0x1c')]);}_0x363b4f[_0x8ec3('0x3b')]=qs[_0x8ec3('0x3c')](_0x32f05c[_0x8ec3('0x3a')][_0x8ec3('0x3c')]);_0x363b4f[_0x8ec3('0x3d')]=qs[_0x8ec3('0x3e')](_[_0x8ec3('0x3f')](_0x32f05c['query'],_0x1c46ce[_0x8ec3('0x3e')]),_0x7a7799);if(_0x32f05c[_0x8ec3('0x3a')]['filter']){_0x363b4f['where']=_['merge'](_0x363b4f[_0x8ec3('0x3d')],{'$or':_[_0x8ec3('0x32')](_0x7a7799,function(_0x53adb9){if(_0x53adb9[_0x8ec3('0x30')]!=='VIRTUAL'){var _0x4bfe62={};_0x4bfe62[_0x53adb9['name']]={'$like':'%'+_0x32f05c[_0x8ec3('0x3a')][_0x8ec3('0x40')]+'%'};return _0x4bfe62;}})});}_0x363b4f=_[_0x8ec3('0x41')]({},_0x363b4f,_0x32f05c[_0x8ec3('0x42')]);var _0x58dc8b={'where':_0x363b4f['where']};return db[_0x8ec3('0x2d')][_0x8ec3('0x1e')](_0x58dc8b)[_0x8ec3('0x25')](function(_0x94e840){_0x5e7b3b[_0x8ec3('0x1e')]=_0x94e840;if(_0x32f05c[_0x8ec3('0x3a')]['includeAll']){_0x363b4f[_0x8ec3('0x43')]=[{'all':!![]}];}return db[_0x8ec3('0x2d')]['findAll'](_0x363b4f);})['then'](function(_0x2f012d){_0x5e7b3b[_0x8ec3('0x44')]=_0x2f012d;return _0x5e7b3b;})[_0x8ec3('0x25')](respondWithFilteredResult(_0x43cc5c,_0x363b4f))['catch'](handleError(_0x43cc5c,null));};exports[_0x8ec3('0x45')]=function(_0x3607b1,_0x568812){var _0x2473c0={'raw':!![],'where':{'id':_0x3607b1['params']['id']}},_0x55209d={};_0x55209d['model']=_[_0x8ec3('0x33')](db[_0x8ec3('0x2d')][_0x8ec3('0x2e')]);_0x55209d[_0x8ec3('0x3a')]=_['keys'](_0x3607b1['query']);_0x55209d[_0x8ec3('0x3e')]=_[_0x8ec3('0x34')](_0x55209d[_0x8ec3('0x36')],_0x55209d['query']);_0x2473c0['attributes']=_[_0x8ec3('0x34')](_0x55209d[_0x8ec3('0x36')],qs[_0x8ec3('0x37')](_0x3607b1[_0x8ec3('0x3a')][_0x8ec3('0x37')]));_0x2473c0['attributes']=_0x2473c0[_0x8ec3('0x35')][_0x8ec3('0x38')]?_0x2473c0[_0x8ec3('0x35')]:_0x55209d['model'];if(_0x3607b1[_0x8ec3('0x3a')][_0x8ec3('0x46')]){_0x2473c0[_0x8ec3('0x43')]=[{'all':!![]}];}_0x2473c0=_['merge']({},_0x2473c0,_0x3607b1[_0x8ec3('0x42')]);return db['Disposition'][_0x8ec3('0x47')](_0x2473c0)[_0x8ec3('0x25')](handleEntityNotFound(_0x568812,null))['then'](respondWithResult(_0x568812,null))['catch'](handleError(_0x568812,null));};exports[_0x8ec3('0x48')]=function(_0x1abe10,_0x5e890a){return db[_0x8ec3('0x2d')][_0x8ec3('0x48')](_0x1abe10[_0x8ec3('0x49')],{})[_0x8ec3('0x25')](function(_0x2799f6){var _0x37d9af=_0x1abe10[_0x8ec3('0x4a')][_0x8ec3('0x27')]({'plain':!![]});if(!_0x37d9af)throw new Error(_0x8ec3('0x4b'));if(_0x37d9af[_0x8ec3('0x4c')]===_0x8ec3('0x4a')){var _0x573bd7=_0x2799f6[_0x8ec3('0x27')]({'plain':!![]});var _0x959e63='Dispositions';return db[_0x8ec3('0x4d')][_0x8ec3('0x47')]({'where':{'name':_0x959e63,'userProfileId':_0x37d9af[_0x8ec3('0x4e')]},'raw':!![]})[_0x8ec3('0x25')](function(_0x52011b){if(_0x52011b&&_0x52011b[_0x8ec3('0x4f')]===0x0){return db[_0x8ec3('0x50')][_0x8ec3('0x48')]({'name':_0x573bd7['name'],'resourceId':_0x573bd7['id'],'type':_0x52011b[_0x8ec3('0x2b')],'sectionId':_0x52011b['id']},{})[_0x8ec3('0x25')](function(){return _0x2799f6;});}else{return _0x2799f6;}})[_0x8ec3('0x51')](function(_0x5e47c0){logger[_0x8ec3('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5e47c0);throw _0x5e47c0;});}return _0x2799f6;})[_0x8ec3('0x25')](respondWithResult(_0x5e890a,0xc9))[_0x8ec3('0x51')](handleError(_0x5e890a,null));};exports[_0x8ec3('0x52')]=function(_0x59eec7,_0x3cab61){if(_0x59eec7['body']['id']){delete _0x59eec7[_0x8ec3('0x49')]['id'];}return db[_0x8ec3('0x2d')][_0x8ec3('0x47')]({'where':{'id':_0x59eec7['params']['id']}})['then'](handleEntityNotFound(_0x3cab61,null))[_0x8ec3('0x25')](saveUpdates(_0x59eec7[_0x8ec3('0x49')],null))['then'](respondWithResult(_0x3cab61,null))[_0x8ec3('0x51')](handleError(_0x3cab61,null));};exports[_0x8ec3('0x26')]=function(_0x2c722e,_0x2a4640){return db['Disposition'][_0x8ec3('0x47')]({'where':{'id':_0x2c722e[_0x8ec3('0x53')]['id']}})[_0x8ec3('0x25')](handleEntityNotFound(_0x2a4640,null))[_0x8ec3('0x25')](removeEntity(_0x2a4640,null))[_0x8ec3('0x51')](handleError(_0x2a4640,null));};