Built motion from commit bab6f49e.|2.6.17
[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 _0x2f92=['autoAssociation','update','find','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','end','status','json','undefined','limit','count','offset','set','apply','reject','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','map','Disposition','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','catch','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection'];(function(_0x2f24ef,_0x4edc7c){var _0x4563f8=function(_0x5c48c1){while(--_0x5c48c1){_0x2f24ef['push'](_0x2f24ef['shift']());}};_0x4563f8(++_0x4edc7c);}(_0x2f92,0x1d7));var _0x22f9=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0x2f92[_0x2763f2];return _0x3ef471;};'use strict';var emlformat=require(_0x22f9('0x0'));var rimraf=require(_0x22f9('0x1'));var zipdir=require(_0x22f9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x22f9('0x3'));var BPromise=require(_0x22f9('0x4'));var Mustache=require(_0x22f9('0x5'));var util=require('util');var path=require(_0x22f9('0x6'));var sox=require(_0x22f9('0x7'));var csv=require(_0x22f9('0x8'));var ejs=require(_0x22f9('0x9'));var fs=require('fs');var fs_extra=require(_0x22f9('0xa'));var _=require(_0x22f9('0xb'));var squel=require('squel');var crypto=require(_0x22f9('0xc'));var jsforce=require(_0x22f9('0xd'));var deskjs=require(_0x22f9('0xe'));var toCsv=require(_0x22f9('0x8'));var querystring=require(_0x22f9('0xf'));var Papa=require(_0x22f9('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x22f9('0x11'));var as=require(_0x22f9('0x12'));var hardwareService=require(_0x22f9('0x13'));var logger=require(_0x22f9('0x14'))(_0x22f9('0x15'));var utils=require(_0x22f9('0x16'));var config=require(_0x22f9('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x40e99d,_0x13f6ce){_0x13f6ce=_0x13f6ce||0xcc;return function(_0x5a690d){if(_0x5a690d){return _0x40e99d['sendStatus'](_0x13f6ce);}return _0x40e99d['status'](_0x13f6ce)[_0x22f9('0x18')]();};}function respondWithResult(_0x5c268a,_0x481a80){_0x481a80=_0x481a80||0xc8;return function(_0x5840bf){if(_0x5840bf){return _0x5c268a[_0x22f9('0x19')](_0x481a80)[_0x22f9('0x1a')](_0x5840bf);}};}function respondWithFilteredResult(_0x441b50,_0x292583){return function(_0x354e6b){if(_0x354e6b){var _0x19f4ed=typeof _0x292583['offset']===_0x22f9('0x1b')&&typeof _0x292583[_0x22f9('0x1c')]===_0x22f9('0x1b');var _0x22e4c4=_0x354e6b['count'];var _0x82cd21=_0x19f4ed?0x0:_0x292583['offset'];var _0x3634d5=_0x19f4ed?_0x354e6b[_0x22f9('0x1d')]:_0x292583[_0x22f9('0x1e')]+_0x292583[_0x22f9('0x1c')];var _0x422637;if(_0x3634d5>=_0x22e4c4){_0x3634d5=_0x22e4c4;_0x422637=0xc8;}else{_0x422637=0xce;}_0x441b50[_0x22f9('0x19')](_0x422637);return _0x441b50[_0x22f9('0x1f')]('Content-Range',_0x82cd21+'-'+_0x3634d5+'/'+_0x22e4c4)['json'](_0x354e6b);}return null;};}function patchUpdates(_0x3d6dc4){return function(_0x277434){try{jsonpatch[_0x22f9('0x20')](_0x277434,_0x3d6dc4,!![]);}catch(_0x1dd86e){return BPromise[_0x22f9('0x21')](_0x1dd86e);}return _0x277434['save']();};}function saveUpdates(_0x27228c,_0x53d78d){return function(_0x2b4dfe){if(_0x2b4dfe){return _0x2b4dfe['update'](_0x27228c)[_0x22f9('0x22')](function(_0x35c0d0){return _0x35c0d0;});}return null;};}function removeEntity(_0x43f965,_0x64e825){return function(_0x116026){if(_0x116026){return _0x116026[_0x22f9('0x23')]()[_0x22f9('0x22')](function(){var _0x370be3=_0x116026[_0x22f9('0x24')]({'plain':!![]});var _0x6bf32d=_0x22f9('0x25');return db[_0x22f9('0x26')][_0x22f9('0x23')]({'where':{'type':_0x6bf32d,'resourceId':_0x370be3['id']}})[_0x22f9('0x22')](function(){return _0x116026;});})[_0x22f9('0x22')](function(){_0x43f965['status'](0xcc)[_0x22f9('0x18')]();});}};}function handleEntityNotFound(_0x361ea4,_0x1881c4){return function(_0x173241){if(!_0x173241){_0x361ea4['sendStatus'](0x194);}return _0x173241;};}function handleError(_0x45bcc3,_0x204825){_0x204825=_0x204825||0x1f4;return function(_0x491be7){logger[_0x22f9('0x27')](_0x491be7[_0x22f9('0x28')]);if(_0x491be7[_0x22f9('0x29')]){delete _0x491be7[_0x22f9('0x29')];}_0x45bcc3[_0x22f9('0x19')](_0x204825)[_0x22f9('0x2a')](_0x491be7);};}exports[_0x22f9('0x2b')]=function(_0xe81621,_0x37a148){var _0x5dd29d={},_0x571042={},_0x117078={'count':0x0,'rows':[]};var _0xcce5dc=_[_0x22f9('0x2c')](db[_0x22f9('0x2d')][_0x22f9('0x2e')],function(_0x454c5b){return{'name':_0x454c5b[_0x22f9('0x2f')],'type':_0x454c5b['type'][_0x22f9('0x30')]};});_0x571042[_0x22f9('0x31')]=_[_0x22f9('0x2c')](_0xcce5dc,_0x22f9('0x29'));_0x571042['query']=_[_0x22f9('0x32')](_0xe81621[_0x22f9('0x33')]);_0x571042[_0x22f9('0x34')]=_[_0x22f9('0x35')](_0x571042['model'],_0x571042[_0x22f9('0x33')]);_0x5dd29d[_0x22f9('0x36')]=_[_0x22f9('0x35')](_0x571042['model'],qs[_0x22f9('0x37')](_0xe81621[_0x22f9('0x33')]['fields']));_0x5dd29d[_0x22f9('0x36')]=_0x5dd29d[_0x22f9('0x36')]['length']?_0x5dd29d[_0x22f9('0x36')]:_0x571042['model'];if(!_0xe81621['query'][_0x22f9('0x38')](_0x22f9('0x39'))){_0x5dd29d[_0x22f9('0x1c')]=qs[_0x22f9('0x1c')](_0xe81621[_0x22f9('0x33')][_0x22f9('0x1c')]);_0x5dd29d[_0x22f9('0x1e')]=qs[_0x22f9('0x1e')](_0xe81621[_0x22f9('0x33')][_0x22f9('0x1e')]);}_0x5dd29d['order']=qs[_0x22f9('0x3a')](_0xe81621[_0x22f9('0x33')][_0x22f9('0x3a')]);_0x5dd29d[_0x22f9('0x3b')]=qs[_0x22f9('0x34')](_[_0x22f9('0x3c')](_0xe81621[_0x22f9('0x33')],_0x571042[_0x22f9('0x34')]),_0xcce5dc);if(_0xe81621['query'][_0x22f9('0x3d')]){_0x5dd29d[_0x22f9('0x3b')]=_[_0x22f9('0x3e')](_0x5dd29d['where'],{'$or':_[_0x22f9('0x2c')](_0xcce5dc,function(_0x44d507){if(_0x44d507[_0x22f9('0x3f')]!==_0x22f9('0x40')){var _0x5ddf35={};_0x5ddf35[_0x44d507[_0x22f9('0x29')]]={'$like':'%'+_0xe81621['query'][_0x22f9('0x3d')]+'%'};return _0x5ddf35;}})});}_0x5dd29d=_[_0x22f9('0x3e')]({},_0x5dd29d,_0xe81621[_0x22f9('0x41')]);var _0x13b7cf={'where':_0x5dd29d[_0x22f9('0x3b')]};return db[_0x22f9('0x2d')][_0x22f9('0x1d')](_0x13b7cf)[_0x22f9('0x22')](function(_0x52ec4e){_0x117078[_0x22f9('0x1d')]=_0x52ec4e;if(_0xe81621[_0x22f9('0x33')][_0x22f9('0x42')]){_0x5dd29d['include']=[{'all':!![]}];}return db[_0x22f9('0x2d')]['findAll'](_0x5dd29d);})[_0x22f9('0x22')](function(_0x221108){_0x117078['rows']=_0x221108;return _0x117078;})[_0x22f9('0x22')](respondWithFilteredResult(_0x37a148,_0x5dd29d))[_0x22f9('0x43')](handleError(_0x37a148,null));};exports[_0x22f9('0x44')]=function(_0x145f17,_0x496bdf){var _0x38e1e4={'raw':!![],'where':{'id':_0x145f17[_0x22f9('0x45')]['id']}},_0x1990e1={};_0x1990e1[_0x22f9('0x31')]=_[_0x22f9('0x32')](db['Disposition'][_0x22f9('0x2e')]);_0x1990e1[_0x22f9('0x33')]=_[_0x22f9('0x32')](_0x145f17[_0x22f9('0x33')]);_0x1990e1[_0x22f9('0x34')]=_[_0x22f9('0x35')](_0x1990e1[_0x22f9('0x31')],_0x1990e1['query']);_0x38e1e4[_0x22f9('0x36')]=_[_0x22f9('0x35')](_0x1990e1[_0x22f9('0x31')],qs[_0x22f9('0x37')](_0x145f17[_0x22f9('0x33')][_0x22f9('0x37')]));_0x38e1e4[_0x22f9('0x36')]=_0x38e1e4['attributes']['length']?_0x38e1e4[_0x22f9('0x36')]:_0x1990e1[_0x22f9('0x31')];if(_0x145f17['query'][_0x22f9('0x42')]){_0x38e1e4['include']=[{'all':!![]}];}_0x38e1e4=_[_0x22f9('0x3e')]({},_0x38e1e4,_0x145f17[_0x22f9('0x41')]);return db[_0x22f9('0x2d')]['find'](_0x38e1e4)[_0x22f9('0x22')](handleEntityNotFound(_0x496bdf,null))[_0x22f9('0x22')](respondWithResult(_0x496bdf,null))[_0x22f9('0x43')](handleError(_0x496bdf,null));};exports[_0x22f9('0x46')]=function(_0x448f25,_0x1d8954){return db[_0x22f9('0x2d')][_0x22f9('0x46')](_0x448f25[_0x22f9('0x47')],{})[_0x22f9('0x22')](function(_0x59e34c){var _0x893b33=_0x448f25[_0x22f9('0x48')]['get']({'plain':!![]});if(!_0x893b33)throw new Error(_0x22f9('0x49'));if(_0x893b33['role']===_0x22f9('0x48')){var _0x178e16=_0x59e34c['get']({'plain':!![]});var _0x6d034a='Dispositions';return db[_0x22f9('0x4a')]['find']({'where':{'name':_0x6d034a,'userProfileId':_0x893b33['userProfileId']},'raw':!![]})['then'](function(_0x152bbc){if(_0x152bbc&&_0x152bbc[_0x22f9('0x4b')]===0x0){return db[_0x22f9('0x26')][_0x22f9('0x46')]({'name':_0x178e16[_0x22f9('0x29')],'resourceId':_0x178e16['id'],'type':_0x152bbc[_0x22f9('0x29')],'sectionId':_0x152bbc['id']},{})[_0x22f9('0x22')](function(){return _0x59e34c;});}else{return _0x59e34c;}})[_0x22f9('0x43')](function(_0x31a1e7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x31a1e7);throw _0x31a1e7;});}return _0x59e34c;})[_0x22f9('0x22')](respondWithResult(_0x1d8954,0xc9))[_0x22f9('0x43')](handleError(_0x1d8954,null));};exports[_0x22f9('0x4c')]=function(_0x492957,_0x590c66){if(_0x492957[_0x22f9('0x47')]['id']){delete _0x492957['body']['id'];}return db[_0x22f9('0x2d')][_0x22f9('0x4d')]({'where':{'id':_0x492957['params']['id']}})[_0x22f9('0x22')](handleEntityNotFound(_0x590c66,null))['then'](saveUpdates(_0x492957[_0x22f9('0x47')],null))['then'](respondWithResult(_0x590c66,null))[_0x22f9('0x43')](handleError(_0x590c66,null));};exports['destroy']=function(_0x3f0a97,_0x21bc4b){return db[_0x22f9('0x2d')][_0x22f9('0x4d')]({'where':{'id':_0x3f0a97[_0x22f9('0x45')]['id']}})[_0x22f9('0x22')](handleEntityNotFound(_0x21bc4b,null))['then'](removeEntity(_0x21bc4b,null))['catch'](handleError(_0x21bc4b,null));};