d19dda8437374c5ed0078138647323c01116229d
[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 _0x5a2a=['filter','type','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','keys','options','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','get','Dispositions','UserProfileResource','destroy','error','stack','name','send','index','map','Disposition','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick'];(function(_0x5da6b9,_0x3b0e49){var _0x301637=function(_0x3d3068){while(--_0x3d3068){_0x5da6b9['push'](_0x5da6b9['shift']());}};_0x301637(++_0x3b0e49);}(_0x5a2a,0x1c3));var _0xa5a2=function(_0x1a6283,_0x4be506){_0x1a6283=_0x1a6283-0x0;var _0x97dfd7=_0x5a2a[_0x1a6283];return _0x97dfd7;};'use strict';var emlformat=require(_0xa5a2('0x0'));var rimraf=require(_0xa5a2('0x1'));var zipdir=require(_0xa5a2('0x2'));var jsonpatch=require(_0xa5a2('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xa5a2('0x4'));var util=require(_0xa5a2('0x5'));var path=require('path');var sox=require(_0xa5a2('0x6'));var csv=require(_0xa5a2('0x7'));var ejs=require(_0xa5a2('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa5a2('0x9'));var squel=require('squel');var crypto=require(_0xa5a2('0xa'));var jsforce=require(_0xa5a2('0xb'));var deskjs=require(_0xa5a2('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa5a2('0xd'));var Redis=require(_0xa5a2('0xe'));var authService=require(_0xa5a2('0xf'));var qs=require(_0xa5a2('0x10'));var as=require(_0xa5a2('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa5a2('0x12'))(_0xa5a2('0x13'));var utils=require(_0xa5a2('0x14'));var config=require(_0xa5a2('0x15'));var licenseUtil=require(_0xa5a2('0x16'));var db=require(_0xa5a2('0x17'))['db'];function respondWithStatusCode(_0x501e3c,_0x5e71a8){_0x5e71a8=_0x5e71a8||0xcc;return function(_0x4a6a35){if(_0x4a6a35){return _0x501e3c[_0xa5a2('0x18')](_0x5e71a8);}return _0x501e3c[_0xa5a2('0x19')](_0x5e71a8)[_0xa5a2('0x1a')]();};}function respondWithResult(_0x29174b,_0x39d6a6){_0x39d6a6=_0x39d6a6||0xc8;return function(_0x488b10){if(_0x488b10){return _0x29174b[_0xa5a2('0x19')](_0x39d6a6)[_0xa5a2('0x1b')](_0x488b10);}};}function respondWithFilteredResult(_0x570d87,_0x20ae7c){return function(_0x1bdcd2){if(_0x1bdcd2){var _0x5e1b56=typeof _0x20ae7c[_0xa5a2('0x1c')]===_0xa5a2('0x1d')&&typeof _0x20ae7c['limit']===_0xa5a2('0x1d');var _0x996384=_0x1bdcd2[_0xa5a2('0x1e')];var _0xf874c0=_0x5e1b56?0x0:_0x20ae7c[_0xa5a2('0x1c')];var _0xe4b688=_0x5e1b56?_0x1bdcd2['count']:_0x20ae7c[_0xa5a2('0x1c')]+_0x20ae7c[_0xa5a2('0x1f')];var _0x21712b;if(_0xe4b688>=_0x996384){_0xe4b688=_0x996384;_0x21712b=0xc8;}else{_0x21712b=0xce;}_0x570d87[_0xa5a2('0x19')](_0x21712b);return _0x570d87[_0xa5a2('0x20')](_0xa5a2('0x21'),_0xf874c0+'-'+_0xe4b688+'/'+_0x996384)['json'](_0x1bdcd2);}return null;};}function patchUpdates(_0x299208){return function(_0x2fa65d){try{jsonpatch[_0xa5a2('0x22')](_0x2fa65d,_0x299208,!![]);}catch(_0x1116f8){return BPromise[_0xa5a2('0x23')](_0x1116f8);}return _0x2fa65d[_0xa5a2('0x24')]();};}function saveUpdates(_0x134877,_0x27f3bf){return function(_0x3a7a6a){if(_0x3a7a6a){return _0x3a7a6a[_0xa5a2('0x25')](_0x134877)[_0xa5a2('0x26')](function(_0x2adce9){return _0x2adce9;});}return null;};}function removeEntity(_0x9a6e53,_0x349f94){return function(_0x4c8faf){if(_0x4c8faf){return _0x4c8faf['destroy']()['then'](function(){var _0x33954c=_0x4c8faf[_0xa5a2('0x27')]({'plain':!![]});var _0x2f0317=_0xa5a2('0x28');return db[_0xa5a2('0x29')][_0xa5a2('0x2a')]({'where':{'type':_0x2f0317,'resourceId':_0x33954c['id']}})[_0xa5a2('0x26')](function(){return _0x4c8faf;});})[_0xa5a2('0x26')](function(){_0x9a6e53['status'](0xcc)[_0xa5a2('0x1a')]();});}};}function handleEntityNotFound(_0x3eca31,_0x4c5f8b){return function(_0x1a0d7f){if(!_0x1a0d7f){_0x3eca31[_0xa5a2('0x18')](0x194);}return _0x1a0d7f;};}function handleError(_0x493912,_0xe02093){_0xe02093=_0xe02093||0x1f4;return function(_0x406f3d){logger[_0xa5a2('0x2b')](_0x406f3d[_0xa5a2('0x2c')]);if(_0x406f3d['name']){delete _0x406f3d[_0xa5a2('0x2d')];}_0x493912[_0xa5a2('0x19')](_0xe02093)[_0xa5a2('0x2e')](_0x406f3d);};}exports[_0xa5a2('0x2f')]=function(_0x193b72,_0x1475ec){var _0x1c5fca={},_0x2e55ba={},_0x12ec37={'count':0x0,'rows':[]};var _0x6e0dd7=_[_0xa5a2('0x30')](db[_0xa5a2('0x31')][_0xa5a2('0x32')],function(_0x498af8){return{'name':_0x498af8[_0xa5a2('0x33')],'type':_0x498af8['type'][_0xa5a2('0x34')]};});_0x2e55ba[_0xa5a2('0x35')]=_[_0xa5a2('0x30')](_0x6e0dd7,_0xa5a2('0x2d'));_0x2e55ba['query']=_['keys'](_0x193b72[_0xa5a2('0x36')]);_0x2e55ba['filters']=_['intersection'](_0x2e55ba[_0xa5a2('0x35')],_0x2e55ba[_0xa5a2('0x36')]);_0x1c5fca['attributes']=_[_0xa5a2('0x37')](_0x2e55ba[_0xa5a2('0x35')],qs[_0xa5a2('0x38')](_0x193b72['query']['fields']));_0x1c5fca[_0xa5a2('0x39')]=_0x1c5fca[_0xa5a2('0x39')][_0xa5a2('0x3a')]?_0x1c5fca[_0xa5a2('0x39')]:_0x2e55ba[_0xa5a2('0x35')];if(!_0x193b72[_0xa5a2('0x36')][_0xa5a2('0x3b')]('nolimit')){_0x1c5fca[_0xa5a2('0x1f')]=qs[_0xa5a2('0x1f')](_0x193b72[_0xa5a2('0x36')][_0xa5a2('0x1f')]);_0x1c5fca['offset']=qs[_0xa5a2('0x1c')](_0x193b72[_0xa5a2('0x36')]['offset']);}_0x1c5fca[_0xa5a2('0x3c')]=qs[_0xa5a2('0x3d')](_0x193b72[_0xa5a2('0x36')][_0xa5a2('0x3d')]);_0x1c5fca[_0xa5a2('0x3e')]=qs[_0xa5a2('0x3f')](_[_0xa5a2('0x40')](_0x193b72[_0xa5a2('0x36')],_0x2e55ba[_0xa5a2('0x3f')]),_0x6e0dd7);if(_0x193b72[_0xa5a2('0x36')][_0xa5a2('0x41')]){_0x1c5fca['where']=_['merge'](_0x1c5fca['where'],{'$or':_[_0xa5a2('0x30')](_0x6e0dd7,function(_0x3137c8){if(_0x3137c8[_0xa5a2('0x42')]!==_0xa5a2('0x43')){var _0x1f7397={};_0x1f7397[_0x3137c8[_0xa5a2('0x2d')]]={'$like':'%'+_0x193b72['query'][_0xa5a2('0x41')]+'%'};return _0x1f7397;}})});}_0x1c5fca=_[_0xa5a2('0x44')]({},_0x1c5fca,_0x193b72['options']);var _0x40398e={'where':_0x1c5fca[_0xa5a2('0x3e')]};return db['Disposition'][_0xa5a2('0x1e')](_0x40398e)[_0xa5a2('0x26')](function(_0x4c81aa){_0x12ec37[_0xa5a2('0x1e')]=_0x4c81aa;if(_0x193b72[_0xa5a2('0x36')][_0xa5a2('0x45')]){_0x1c5fca[_0xa5a2('0x46')]=[{'all':!![]}];}return db['Disposition'][_0xa5a2('0x47')](_0x1c5fca);})[_0xa5a2('0x26')](function(_0x28d0c8){_0x12ec37[_0xa5a2('0x48')]=_0x28d0c8;return _0x12ec37;})['then'](respondWithFilteredResult(_0x1475ec,_0x1c5fca))[_0xa5a2('0x49')](handleError(_0x1475ec,null));};exports[_0xa5a2('0x4a')]=function(_0x4813e8,_0x123d86){var _0x27bc82={'raw':!![],'where':{'id':_0x4813e8['params']['id']}},_0x538352={};_0x538352['model']=_[_0xa5a2('0x4b')](db['Disposition']['rawAttributes']);_0x538352['query']=_['keys'](_0x4813e8['query']);_0x538352[_0xa5a2('0x3f')]=_[_0xa5a2('0x37')](_0x538352['model'],_0x538352[_0xa5a2('0x36')]);_0x27bc82[_0xa5a2('0x39')]=_[_0xa5a2('0x37')](_0x538352[_0xa5a2('0x35')],qs[_0xa5a2('0x38')](_0x4813e8[_0xa5a2('0x36')][_0xa5a2('0x38')]));_0x27bc82['attributes']=_0x27bc82[_0xa5a2('0x39')][_0xa5a2('0x3a')]?_0x27bc82[_0xa5a2('0x39')]:_0x538352[_0xa5a2('0x35')];if(_0x4813e8['query']['includeAll']){_0x27bc82[_0xa5a2('0x46')]=[{'all':!![]}];}_0x27bc82=_['merge']({},_0x27bc82,_0x4813e8[_0xa5a2('0x4c')]);return db[_0xa5a2('0x31')][_0xa5a2('0x4d')](_0x27bc82)['then'](handleEntityNotFound(_0x123d86,null))['then'](respondWithResult(_0x123d86,null))[_0xa5a2('0x49')](handleError(_0x123d86,null));};exports[_0xa5a2('0x4e')]=function(_0x589b52,_0x44d1ea){return db[_0xa5a2('0x31')][_0xa5a2('0x4e')](_0x589b52[_0xa5a2('0x4f')],{})[_0xa5a2('0x26')](function(_0x1f9735){var _0x355ff4=_0x589b52[_0xa5a2('0x50')][_0xa5a2('0x27')]({'plain':!![]});if(!_0x355ff4)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x355ff4['role']==='user'){var _0x1c391f=_0x1f9735[_0xa5a2('0x27')]({'plain':!![]});var _0x3e4ced=_0xa5a2('0x28');return db[_0xa5a2('0x51')][_0xa5a2('0x4d')]({'where':{'name':_0x3e4ced,'userProfileId':_0x355ff4[_0xa5a2('0x52')]},'raw':!![]})['then'](function(_0x5a7b36){if(_0x5a7b36&&_0x5a7b36[_0xa5a2('0x53')]===0x0){return db[_0xa5a2('0x29')][_0xa5a2('0x4e')]({'name':_0x1c391f['name'],'resourceId':_0x1c391f['id'],'type':_0x5a7b36['name'],'sectionId':_0x5a7b36['id']},{})[_0xa5a2('0x26')](function(){return _0x1f9735;});}else{return _0x1f9735;}})[_0xa5a2('0x49')](function(_0x3dfb97){logger[_0xa5a2('0x2b')](_0xa5a2('0x54'),_0x3dfb97);throw _0x3dfb97;});}return _0x1f9735;})[_0xa5a2('0x26')](respondWithResult(_0x44d1ea,0xc9))['catch'](handleError(_0x44d1ea,null));};exports[_0xa5a2('0x25')]=function(_0x55e363,_0x41fa0f){if(_0x55e363[_0xa5a2('0x4f')]['id']){delete _0x55e363[_0xa5a2('0x4f')]['id'];}return db[_0xa5a2('0x31')][_0xa5a2('0x4d')]({'where':{'id':_0x55e363['params']['id']}})[_0xa5a2('0x26')](handleEntityNotFound(_0x41fa0f,null))[_0xa5a2('0x26')](saveUpdates(_0x55e363['body'],null))[_0xa5a2('0x26')](respondWithResult(_0x41fa0f,null))[_0xa5a2('0x49')](handleError(_0x41fa0f,null));};exports['destroy']=function(_0x3a55aa,_0x1aa8ba){return db['Disposition']['find']({'where':{'id':_0x3a55aa[_0xa5a2('0x55')]['id']}})[_0xa5a2('0x26')](handleEntityNotFound(_0x1aa8ba,null))[_0xa5a2('0x26')](removeEntity(_0x1aa8ba,null))['catch'](handleError(_0x1aa8ba,null));};