9d6f28ca0b7f5aac5b2e88901b40a3ea84b54c54
[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 _0xe852=['map','Disposition','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','show','params','rawAttributes','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','Dispositions','UserProfileResource','error','stack','name','send','index'];(function(_0x28ee1a,_0x3d5504){var _0xdd4444=function(_0x23f12a){while(--_0x23f12a){_0x28ee1a['push'](_0x28ee1a['shift']());}};_0xdd4444(++_0x3d5504);}(_0xe852,0x7f));var _0x2e85=function(_0x5608a3,_0x5b33c5){_0x5608a3=_0x5608a3-0x0;var _0x1ed50a=_0xe852[_0x5608a3];return _0x1ed50a;};'use strict';var pdf=require(_0x2e85('0x0'));var emlformat=require(_0x2e85('0x1'));var rimraf=require(_0x2e85('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2e85('0x3'));var rp=require(_0x2e85('0x4'));var moment=require(_0x2e85('0x5'));var BPromise=require(_0x2e85('0x6'));var Mustache=require(_0x2e85('0x7'));var util=require(_0x2e85('0x8'));var path=require(_0x2e85('0x9'));var sox=require(_0x2e85('0xa'));var csv=require(_0x2e85('0xb'));var ejs=require(_0x2e85('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x2e85('0xd'));var crypto=require(_0x2e85('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x2e85('0xf'));var toCsv=require(_0x2e85('0xb'));var querystring=require(_0x2e85('0x10'));var Papa=require(_0x2e85('0x11'));var Redis=require(_0x2e85('0x12'));var authService=require(_0x2e85('0x13'));var qs=require(_0x2e85('0x14'));var as=require(_0x2e85('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2e85('0x16'))(_0x2e85('0x17'));var utils=require(_0x2e85('0x18'));var config=require(_0x2e85('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x2e85('0x1a'))['db'];function respondWithStatusCode(_0x258bfd,_0x171988){_0x171988=_0x171988||0xcc;return function(_0x3b68f9){if(_0x3b68f9){return _0x258bfd[_0x2e85('0x1b')](_0x171988);}return _0x258bfd[_0x2e85('0x1c')](_0x171988)[_0x2e85('0x1d')]();};}function respondWithResult(_0x19d431,_0xd17ff5){_0xd17ff5=_0xd17ff5||0xc8;return function(_0x1b08af){if(_0x1b08af){return _0x19d431[_0x2e85('0x1c')](_0xd17ff5)[_0x2e85('0x1e')](_0x1b08af);}};}function respondWithFilteredResult(_0x4fa88c,_0x21c71a){return function(_0x2cd149){if(_0x2cd149){var _0x20e9bb=_0x2cd149[_0x2e85('0x1f')],_0x242c48=_0x21c71a[_0x2e85('0x20')],_0x54a725=_0x21c71a[_0x2e85('0x20')]+_0x21c71a[_0x2e85('0x21')],_0x18b4ca;if(_0x54a725>=_0x20e9bb){_0x54a725=_0x20e9bb;_0x18b4ca=0xc8;}else{_0x18b4ca=0xce;}_0x4fa88c['status'](_0x18b4ca);return _0x4fa88c[_0x2e85('0x22')](_0x2e85('0x23'),_0x242c48+'-'+_0x54a725+'/'+_0x20e9bb)['json'](_0x2cd149);}return null;};}function patchUpdates(_0x77ade4){return function(_0x572045){try{jsonpatch[_0x2e85('0x24')](_0x572045,_0x77ade4,!![]);}catch(_0x52b0e8){return BPromise['reject'](_0x52b0e8);}return _0x572045[_0x2e85('0x25')]();};}function saveUpdates(_0x4f42e2,_0x1bf627){return function(_0x5f4f18){if(_0x5f4f18){return _0x5f4f18[_0x2e85('0x26')](_0x4f42e2)[_0x2e85('0x27')](function(_0xa284bb){return _0xa284bb;});}return null;};}function removeEntity(_0xf4ca66,_0x3bed14){return function(_0x265010){if(_0x265010){return _0x265010[_0x2e85('0x28')]()[_0x2e85('0x27')](function(){var _0x229db4=_0x265010[_0x2e85('0x29')]({'plain':!![]});var _0x44cfa3=_0x2e85('0x2a');return db[_0x2e85('0x2b')]['destroy']({'where':{'type':_0x44cfa3,'resourceId':_0x229db4['id']}})['then'](function(){return _0x265010;});})[_0x2e85('0x27')](function(){_0xf4ca66['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x301009,_0x21a072){return function(_0x3212c0){if(!_0x3212c0){_0x301009[_0x2e85('0x1b')](0x194);}return _0x3212c0;};}function handleError(_0x23326f,_0x398c85){_0x398c85=_0x398c85||0x1f4;return function(_0x257e41){logger[_0x2e85('0x2c')](_0x257e41[_0x2e85('0x2d')]);if(_0x257e41[_0x2e85('0x2e')]){delete _0x257e41[_0x2e85('0x2e')];}_0x23326f['status'](_0x398c85)[_0x2e85('0x2f')](_0x257e41);};}exports[_0x2e85('0x30')]=function(_0xedd58b,_0x1c48d1){var _0x152b65={},_0x34079a={},_0x9b8ac0={'count':0x0,'rows':[]};var _0x4f381f=_[_0x2e85('0x31')](db[_0x2e85('0x32')]['rawAttributes'],function(_0x1b0661){return{'name':_0x1b0661[_0x2e85('0x33')],'type':_0x1b0661[_0x2e85('0x34')][_0x2e85('0x35')]};});_0x34079a[_0x2e85('0x36')]=_[_0x2e85('0x31')](_0x4f381f,_0x2e85('0x2e'));_0x34079a[_0x2e85('0x37')]=_[_0x2e85('0x38')](_0xedd58b[_0x2e85('0x37')]);_0x34079a[_0x2e85('0x39')]=_['intersection'](_0x34079a[_0x2e85('0x36')],_0x34079a['query']);_0x152b65[_0x2e85('0x3a')]=_[_0x2e85('0x3b')](_0x34079a[_0x2e85('0x36')],qs[_0x2e85('0x3c')](_0xedd58b['query'][_0x2e85('0x3c')]));_0x152b65[_0x2e85('0x3a')]=_0x152b65[_0x2e85('0x3a')][_0x2e85('0x3d')]?_0x152b65[_0x2e85('0x3a')]:_0x34079a[_0x2e85('0x36')];if(!_0xedd58b['query'][_0x2e85('0x3e')](_0x2e85('0x3f'))){_0x152b65[_0x2e85('0x21')]=qs[_0x2e85('0x21')](_0xedd58b[_0x2e85('0x37')][_0x2e85('0x21')]);_0x152b65['offset']=qs[_0x2e85('0x20')](_0xedd58b['query'][_0x2e85('0x20')]);}_0x152b65[_0x2e85('0x40')]=qs[_0x2e85('0x41')](_0xedd58b['query'][_0x2e85('0x41')]);_0x152b65[_0x2e85('0x42')]=qs[_0x2e85('0x39')](_[_0x2e85('0x43')](_0xedd58b[_0x2e85('0x37')],_0x34079a[_0x2e85('0x39')]),_0x4f381f);if(_0xedd58b['query']['filter']){_0x152b65[_0x2e85('0x42')]=_[_0x2e85('0x44')](_0x152b65['where'],{'$or':_['map'](_0x4f381f,function(_0x22f196){if(_0x22f196[_0x2e85('0x34')]!==_0x2e85('0x45')){var _0x741c80={};_0x741c80[_0x22f196[_0x2e85('0x2e')]]={'$like':'%'+_0xedd58b[_0x2e85('0x37')][_0x2e85('0x46')]+'%'};return _0x741c80;}})});}_0x152b65=_['merge']({},_0x152b65,_0xedd58b[_0x2e85('0x47')]);var _0x4c8d7b={'where':_0x152b65[_0x2e85('0x42')]};return db['Disposition']['count'](_0x4c8d7b)[_0x2e85('0x27')](function(_0x13dda6){_0x9b8ac0[_0x2e85('0x1f')]=_0x13dda6;if(_0xedd58b['query'][_0x2e85('0x48')]){_0x152b65['include']=[{'all':!![]}];}return db[_0x2e85('0x32')][_0x2e85('0x49')](_0x152b65);})[_0x2e85('0x27')](function(_0x329377){_0x9b8ac0[_0x2e85('0x4a')]=_0x329377;return _0x9b8ac0;})[_0x2e85('0x27')](respondWithFilteredResult(_0x1c48d1,_0x152b65))['catch'](handleError(_0x1c48d1,null));};exports[_0x2e85('0x4b')]=function(_0x223d59,_0x26ad73){var _0x35b0dd={'raw':!![],'where':{'id':_0x223d59[_0x2e85('0x4c')]['id']}},_0x176ea6={};_0x176ea6[_0x2e85('0x36')]=_[_0x2e85('0x38')](db[_0x2e85('0x32')][_0x2e85('0x4d')]);_0x176ea6['query']=_[_0x2e85('0x38')](_0x223d59[_0x2e85('0x37')]);_0x176ea6[_0x2e85('0x39')]=_[_0x2e85('0x3b')](_0x176ea6['model'],_0x176ea6['query']);_0x35b0dd[_0x2e85('0x3a')]=_[_0x2e85('0x3b')](_0x176ea6['model'],qs[_0x2e85('0x3c')](_0x223d59['query']['fields']));_0x35b0dd[_0x2e85('0x3a')]=_0x35b0dd[_0x2e85('0x3a')][_0x2e85('0x3d')]?_0x35b0dd[_0x2e85('0x3a')]:_0x176ea6[_0x2e85('0x36')];if(_0x223d59[_0x2e85('0x37')][_0x2e85('0x48')]){_0x35b0dd[_0x2e85('0x4e')]=[{'all':!![]}];}_0x35b0dd=_[_0x2e85('0x44')]({},_0x35b0dd,_0x223d59[_0x2e85('0x47')]);return db[_0x2e85('0x32')][_0x2e85('0x4f')](_0x35b0dd)[_0x2e85('0x27')](handleEntityNotFound(_0x26ad73,null))[_0x2e85('0x27')](respondWithResult(_0x26ad73,null))[_0x2e85('0x50')](handleError(_0x26ad73,null));};exports[_0x2e85('0x51')]=function(_0x1ceeb8,_0xdb98a4){return db[_0x2e85('0x32')][_0x2e85('0x51')](_0x1ceeb8[_0x2e85('0x52')],{})[_0x2e85('0x27')](function(_0x547b5b){var _0x7688ee=_0x1ceeb8[_0x2e85('0x53')][_0x2e85('0x29')]({'plain':!![]});if(!_0x7688ee)throw new Error(_0x2e85('0x54'));if(_0x7688ee[_0x2e85('0x55')]==='user'){var _0x2f18f4=_0x547b5b['get']({'plain':!![]});var _0x4d313c=_0x2e85('0x2a');return db['UserProfileSection'][_0x2e85('0x4f')]({'where':{'name':_0x4d313c,'userProfileId':_0x7688ee[_0x2e85('0x56')]},'raw':!![]})[_0x2e85('0x27')](function(_0x1cf169){if(_0x1cf169&&_0x1cf169[_0x2e85('0x57')]===0x0){return db[_0x2e85('0x2b')]['create']({'name':_0x2f18f4['name'],'resourceId':_0x2f18f4['id'],'type':_0x1cf169[_0x2e85('0x2e')],'sectionId':_0x1cf169['id']},{})[_0x2e85('0x27')](function(){return _0x547b5b;});}else{return _0x547b5b;}})[_0x2e85('0x50')](function(_0x383909){logger[_0x2e85('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x383909);throw _0x383909;});}return _0x547b5b;})[_0x2e85('0x27')](respondWithResult(_0xdb98a4,0xc9))[_0x2e85('0x50')](handleError(_0xdb98a4,null));};exports[_0x2e85('0x26')]=function(_0x5075c0,_0x4387de){if(_0x5075c0[_0x2e85('0x52')]['id']){delete _0x5075c0[_0x2e85('0x52')]['id'];}return db['Disposition'][_0x2e85('0x4f')]({'where':{'id':_0x5075c0[_0x2e85('0x4c')]['id']}})[_0x2e85('0x27')](handleEntityNotFound(_0x4387de,null))['then'](saveUpdates(_0x5075c0[_0x2e85('0x52')],null))[_0x2e85('0x27')](respondWithResult(_0x4387de,null))[_0x2e85('0x50')](handleError(_0x4387de,null));};exports[_0x2e85('0x28')]=function(_0x3f2fa8,_0x1c1d3a){return db[_0x2e85('0x32')][_0x2e85('0x4f')]({'where':{'id':_0x3f2fa8['params']['id']}})[_0x2e85('0x27')](handleEntityNotFound(_0x1c1d3a,null))[_0x2e85('0x27')](removeEntity(_0x1c1d3a,null))['catch'](handleError(_0x1c1d3a,null));};