0338986fc17b16ac9efca402b66dcb623665dc7a
[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 _0x950a=['intersection','attributes','fields','query','length','hasOwnProperty','nolimit','sort','pick','where','merge','type','VIRTUAL','filter','options','includeAll','include','rows','catch','show','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','apply','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index','Disposition','fieldName','key','model','map','keys','filters'];(function(_0x3ad291,_0x4fe346){var _0x22bd17=function(_0x5ac08e){while(--_0x5ac08e){_0x3ad291['push'](_0x3ad291['shift']());}};_0x22bd17(++_0x4fe346);}(_0x950a,0x111));var _0xa950=function(_0x2e1ee7,_0x1cb9aa){_0x2e1ee7=_0x2e1ee7-0x0;var _0x2029e4=_0x950a[_0x2e1ee7];return _0x2029e4;};'use strict';var emlformat=require(_0xa950('0x0'));var rimraf=require(_0xa950('0x1'));var zipdir=require(_0xa950('0x2'));var jsonpatch=require(_0xa950('0x3'));var rp=require('request-promise');var moment=require(_0xa950('0x4'));var BPromise=require(_0xa950('0x5'));var Mustache=require(_0xa950('0x6'));var util=require(_0xa950('0x7'));var path=require('path');var sox=require(_0xa950('0x8'));var csv=require(_0xa950('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa950('0xa'));var _=require(_0xa950('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa950('0xc'));var deskjs=require(_0xa950('0xd'));var toCsv=require(_0xa950('0x9'));var querystring=require(_0xa950('0xe'));var Papa=require(_0xa950('0xf'));var Redis=require(_0xa950('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa950('0x11'));var logger=require('../../config/logger')(_0xa950('0x12'));var utils=require(_0xa950('0x13'));var config=require(_0xa950('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xa950('0x15'))['db'];function respondWithStatusCode(_0x4f9c04,_0x10e64a){_0x10e64a=_0x10e64a||0xcc;return function(_0x439097){if(_0x439097){return _0x4f9c04[_0xa950('0x16')](_0x10e64a);}return _0x4f9c04['status'](_0x10e64a)[_0xa950('0x17')]();};}function respondWithResult(_0x2aed6a,_0x1c7adb){_0x1c7adb=_0x1c7adb||0xc8;return function(_0x4ba74f){if(_0x4ba74f){return _0x2aed6a[_0xa950('0x18')](_0x1c7adb)[_0xa950('0x19')](_0x4ba74f);}};}function respondWithFilteredResult(_0x425201,_0x5d5f4c){return function(_0x31b25b){if(_0x31b25b){var _0x46fca7=typeof _0x5d5f4c[_0xa950('0x1a')]==='undefined'&&typeof _0x5d5f4c[_0xa950('0x1b')]===_0xa950('0x1c');var _0x162586=_0x31b25b[_0xa950('0x1d')];var _0x16aabc=_0x46fca7?0x0:_0x5d5f4c[_0xa950('0x1a')];var _0x2b0e44=_0x46fca7?_0x31b25b[_0xa950('0x1d')]:_0x5d5f4c[_0xa950('0x1a')]+_0x5d5f4c[_0xa950('0x1b')];var _0x28fedf;if(_0x2b0e44>=_0x162586){_0x2b0e44=_0x162586;_0x28fedf=0xc8;}else{_0x28fedf=0xce;}_0x425201[_0xa950('0x18')](_0x28fedf);return _0x425201[_0xa950('0x1e')]('Content-Range',_0x16aabc+'-'+_0x2b0e44+'/'+_0x162586)[_0xa950('0x19')](_0x31b25b);}return null;};}function patchUpdates(_0x1a10fe){return function(_0x50abe1){try{jsonpatch[_0xa950('0x1f')](_0x50abe1,_0x1a10fe,!![]);}catch(_0x41c405){return BPromise['reject'](_0x41c405);}return _0x50abe1[_0xa950('0x20')]();};}function saveUpdates(_0x5ad191,_0x2eda79){return function(_0x14ada5){if(_0x14ada5){return _0x14ada5[_0xa950('0x21')](_0x5ad191)[_0xa950('0x22')](function(_0x5617cd){return _0x5617cd;});}return null;};}function removeEntity(_0x11b8af,_0x3f4633){return function(_0x31c135){if(_0x31c135){return _0x31c135[_0xa950('0x23')]()[_0xa950('0x22')](function(){var _0x22e2c1=_0x31c135[_0xa950('0x24')]({'plain':!![]});var _0x23cb20=_0xa950('0x25');return db[_0xa950('0x26')][_0xa950('0x23')]({'where':{'type':_0x23cb20,'resourceId':_0x22e2c1['id']}})[_0xa950('0x22')](function(){return _0x31c135;});})[_0xa950('0x22')](function(){_0x11b8af['status'](0xcc)[_0xa950('0x17')]();});}};}function handleEntityNotFound(_0x288934,_0x3f37f8){return function(_0x1aa96a){if(!_0x1aa96a){_0x288934[_0xa950('0x16')](0x194);}return _0x1aa96a;};}function handleError(_0x186f35,_0x2891ba){_0x2891ba=_0x2891ba||0x1f4;return function(_0x52e133){logger[_0xa950('0x27')](_0x52e133[_0xa950('0x28')]);if(_0x52e133['name']){delete _0x52e133[_0xa950('0x29')];}_0x186f35[_0xa950('0x18')](_0x2891ba)[_0xa950('0x2a')](_0x52e133);};}exports[_0xa950('0x2b')]=function(_0x152f53,_0x1945ca){var _0x1d6e91={},_0x2d0c59={},_0x203703={'count':0x0,'rows':[]};var _0x3c6ea8=_['map'](db[_0xa950('0x2c')]['rawAttributes'],function(_0x565933){return{'name':_0x565933[_0xa950('0x2d')],'type':_0x565933['type'][_0xa950('0x2e')]};});_0x2d0c59[_0xa950('0x2f')]=_[_0xa950('0x30')](_0x3c6ea8,_0xa950('0x29'));_0x2d0c59['query']=_[_0xa950('0x31')](_0x152f53['query']);_0x2d0c59[_0xa950('0x32')]=_[_0xa950('0x33')](_0x2d0c59['model'],_0x2d0c59['query']);_0x1d6e91[_0xa950('0x34')]=_[_0xa950('0x33')](_0x2d0c59[_0xa950('0x2f')],qs[_0xa950('0x35')](_0x152f53[_0xa950('0x36')][_0xa950('0x35')]));_0x1d6e91['attributes']=_0x1d6e91['attributes'][_0xa950('0x37')]?_0x1d6e91['attributes']:_0x2d0c59[_0xa950('0x2f')];if(!_0x152f53[_0xa950('0x36')][_0xa950('0x38')](_0xa950('0x39'))){_0x1d6e91[_0xa950('0x1b')]=qs[_0xa950('0x1b')](_0x152f53[_0xa950('0x36')][_0xa950('0x1b')]);_0x1d6e91[_0xa950('0x1a')]=qs[_0xa950('0x1a')](_0x152f53['query'][_0xa950('0x1a')]);}_0x1d6e91['order']=qs[_0xa950('0x3a')](_0x152f53[_0xa950('0x36')]['sort']);_0x1d6e91['where']=qs[_0xa950('0x32')](_[_0xa950('0x3b')](_0x152f53['query'],_0x2d0c59[_0xa950('0x32')]),_0x3c6ea8);if(_0x152f53[_0xa950('0x36')]['filter']){_0x1d6e91[_0xa950('0x3c')]=_[_0xa950('0x3d')](_0x1d6e91[_0xa950('0x3c')],{'$or':_[_0xa950('0x30')](_0x3c6ea8,function(_0x926d8a){if(_0x926d8a[_0xa950('0x3e')]!==_0xa950('0x3f')){var _0x9b2a5b={};_0x9b2a5b[_0x926d8a['name']]={'$like':'%'+_0x152f53[_0xa950('0x36')][_0xa950('0x40')]+'%'};return _0x9b2a5b;}})});}_0x1d6e91=_['merge']({},_0x1d6e91,_0x152f53[_0xa950('0x41')]);var _0x115b35={'where':_0x1d6e91[_0xa950('0x3c')]};return db['Disposition'][_0xa950('0x1d')](_0x115b35)[_0xa950('0x22')](function(_0x8bdd37){_0x203703['count']=_0x8bdd37;if(_0x152f53['query'][_0xa950('0x42')]){_0x1d6e91[_0xa950('0x43')]=[{'all':!![]}];}return db[_0xa950('0x2c')]['findAll'](_0x1d6e91);})['then'](function(_0x51f5a5){_0x203703[_0xa950('0x44')]=_0x51f5a5;return _0x203703;})[_0xa950('0x22')](respondWithFilteredResult(_0x1945ca,_0x1d6e91))[_0xa950('0x45')](handleError(_0x1945ca,null));};exports[_0xa950('0x46')]=function(_0x4036ef,_0x5c25fd){var _0x40a1e8={'raw':!![],'where':{'id':_0x4036ef['params']['id']}},_0x208063={};_0x208063['model']=_[_0xa950('0x31')](db[_0xa950('0x2c')]['rawAttributes']);_0x208063['query']=_['keys'](_0x4036ef['query']);_0x208063[_0xa950('0x32')]=_[_0xa950('0x33')](_0x208063['model'],_0x208063['query']);_0x40a1e8[_0xa950('0x34')]=_['intersection'](_0x208063[_0xa950('0x2f')],qs[_0xa950('0x35')](_0x4036ef[_0xa950('0x36')][_0xa950('0x35')]));_0x40a1e8[_0xa950('0x34')]=_0x40a1e8[_0xa950('0x34')][_0xa950('0x37')]?_0x40a1e8[_0xa950('0x34')]:_0x208063['model'];if(_0x4036ef[_0xa950('0x36')]['includeAll']){_0x40a1e8[_0xa950('0x43')]=[{'all':!![]}];}_0x40a1e8=_[_0xa950('0x3d')]({},_0x40a1e8,_0x4036ef[_0xa950('0x41')]);return db[_0xa950('0x2c')][_0xa950('0x47')](_0x40a1e8)[_0xa950('0x22')](handleEntityNotFound(_0x5c25fd,null))[_0xa950('0x22')](respondWithResult(_0x5c25fd,null))[_0xa950('0x45')](handleError(_0x5c25fd,null));};exports[_0xa950('0x48')]=function(_0x4f777a,_0x3cf01c){return db[_0xa950('0x2c')][_0xa950('0x48')](_0x4f777a[_0xa950('0x49')],{})[_0xa950('0x22')](function(_0x5a2b2f){var _0x237152=_0x4f777a[_0xa950('0x4a')][_0xa950('0x24')]({'plain':!![]});if(!_0x237152)throw new Error(_0xa950('0x4b'));if(_0x237152[_0xa950('0x4c')]===_0xa950('0x4a')){var _0x2752e7=_0x5a2b2f['get']({'plain':!![]});var _0xc00de4=_0xa950('0x25');return db[_0xa950('0x4d')]['find']({'where':{'name':_0xc00de4,'userProfileId':_0x237152['userProfileId']},'raw':!![]})[_0xa950('0x22')](function(_0x26216c){if(_0x26216c&&_0x26216c[_0xa950('0x4e')]===0x0){return db[_0xa950('0x26')][_0xa950('0x48')]({'name':_0x2752e7[_0xa950('0x29')],'resourceId':_0x2752e7['id'],'type':_0x26216c[_0xa950('0x29')],'sectionId':_0x26216c['id']},{})[_0xa950('0x22')](function(){return _0x5a2b2f;});}else{return _0x5a2b2f;}})['catch'](function(_0x2d658d){logger[_0xa950('0x27')](_0xa950('0x4f'),_0x2d658d);throw _0x2d658d;});}return _0x5a2b2f;})[_0xa950('0x22')](respondWithResult(_0x3cf01c,0xc9))[_0xa950('0x45')](handleError(_0x3cf01c,null));};exports['update']=function(_0x200183,_0x5cd88b){if(_0x200183[_0xa950('0x49')]['id']){delete _0x200183[_0xa950('0x49')]['id'];}return db[_0xa950('0x2c')][_0xa950('0x47')]({'where':{'id':_0x200183[_0xa950('0x50')]['id']}})[_0xa950('0x22')](handleEntityNotFound(_0x5cd88b,null))['then'](saveUpdates(_0x200183['body'],null))['then'](respondWithResult(_0x5cd88b,null))[_0xa950('0x45')](handleError(_0x5cd88b,null));};exports[_0xa950('0x23')]=function(_0x1303a9,_0x109b9b){return db[_0xa950('0x2c')][_0xa950('0x47')]({'where':{'id':_0x1303a9[_0xa950('0x50')]['id']}})[_0xa950('0x22')](handleEntityNotFound(_0x109b9b,null))['then'](removeEntity(_0x109b9b,null))[_0xa950('0x45')](handleError(_0x109b9b,null));};