b18c41f2af4ef777f8d22ab43852cec9a8f4b366
[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 _0x9e2e=['body','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','count','offset','limit','set','apply','reject','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','Disposition','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','includeAll','findAll','rows','catch','params','rawAttributes','include','merge','options','create','user','role','Dispositions','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x1505e5,_0x5cc291){var _0x5b1dcd=function(_0x18bfe5){while(--_0x18bfe5){_0x1505e5['push'](_0x1505e5['shift']());}};_0x5b1dcd(++_0x5cc291);}(_0x9e2e,0x1db));var _0xe9e2=function(_0x2c17aa,_0x34c6de){_0x2c17aa=_0x2c17aa-0x0;var _0x15e203=_0x9e2e[_0x2c17aa];return _0x15e203;};'use strict';var pdf=require(_0xe9e2('0x0'));var emlformat=require(_0xe9e2('0x1'));var rimraf=require(_0xe9e2('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xe9e2('0x3'));var moment=require(_0xe9e2('0x4'));var BPromise=require(_0xe9e2('0x5'));var Mustache=require(_0xe9e2('0x6'));var util=require(_0xe9e2('0x7'));var path=require(_0xe9e2('0x8'));var sox=require(_0xe9e2('0x9'));var csv=require(_0xe9e2('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xe9e2('0xb'));var crypto=require('crypto');var jsforce=require(_0xe9e2('0xc'));var deskjs=require(_0xe9e2('0xd'));var toCsv=require(_0xe9e2('0xa'));var querystring=require(_0xe9e2('0xe'));var Papa=require('papaparse');var Redis=require(_0xe9e2('0xf'));var authService=require(_0xe9e2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe9e2('0x11'));var hardwareService=require(_0xe9e2('0x12'));var logger=require(_0xe9e2('0x13'))('api');var utils=require(_0xe9e2('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xe9e2('0x15'));var db=require(_0xe9e2('0x16'))['db'];function respondWithStatusCode(_0x2cdd07,_0x6cd206){_0x6cd206=_0x6cd206||0xcc;return function(_0x30da3d){if(_0x30da3d){return _0x2cdd07['sendStatus'](_0x6cd206);}return _0x2cdd07[_0xe9e2('0x17')](_0x6cd206)[_0xe9e2('0x18')]();};}function respondWithResult(_0x34f87c,_0x24f60b){_0x24f60b=_0x24f60b||0xc8;return function(_0x21c89b){if(_0x21c89b){return _0x34f87c['status'](_0x24f60b)[_0xe9e2('0x19')](_0x21c89b);}};}function respondWithFilteredResult(_0xfae283,_0x42a5c8){return function(_0x14eb2b){if(_0x14eb2b){var _0x355bde=_0x14eb2b[_0xe9e2('0x1a')],_0x5c11d8=_0x42a5c8[_0xe9e2('0x1b')],_0x430180=_0x42a5c8[_0xe9e2('0x1b')]+_0x42a5c8[_0xe9e2('0x1c')],_0x299d4b;if(_0x430180>=_0x355bde){_0x430180=_0x355bde;_0x299d4b=0xc8;}else{_0x299d4b=0xce;}_0xfae283[_0xe9e2('0x17')](_0x299d4b);return _0xfae283[_0xe9e2('0x1d')]('Content-Range',_0x5c11d8+'-'+_0x430180+'/'+_0x355bde)['json'](_0x14eb2b);}return null;};}function patchUpdates(_0x5a17e0){return function(_0x14186f){try{jsonpatch[_0xe9e2('0x1e')](_0x14186f,_0x5a17e0,!![]);}catch(_0xaa1f63){return BPromise[_0xe9e2('0x1f')](_0xaa1f63);}return _0x14186f['save']();};}function saveUpdates(_0x52aec2,_0x146720){return function(_0x4b79d6){if(_0x4b79d6){return _0x4b79d6[_0xe9e2('0x20')](_0x52aec2)[_0xe9e2('0x21')](function(_0x51aecd){return _0x51aecd;});}return null;};}function removeEntity(_0xb37bbb,_0x33707b){return function(_0x4508e5){if(_0x4508e5){return _0x4508e5[_0xe9e2('0x22')]()[_0xe9e2('0x21')](function(){var _0x381f6f=_0x4508e5[_0xe9e2('0x23')]({'plain':!![]});var _0x4d785e='Dispositions';return db[_0xe9e2('0x24')]['destroy']({'where':{'type':_0x4d785e,'resourceId':_0x381f6f['id']}})[_0xe9e2('0x21')](function(){return _0x4508e5;});})['then'](function(){_0xb37bbb[_0xe9e2('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2d0a30,_0x5015bc){return function(_0x5c800e){if(!_0x5c800e){_0x2d0a30['sendStatus'](0x194);}return _0x5c800e;};}function handleError(_0x457907,_0x37fe75){_0x37fe75=_0x37fe75||0x1f4;return function(_0x2486a2){logger[_0xe9e2('0x25')](_0x2486a2[_0xe9e2('0x26')]);if(_0x2486a2[_0xe9e2('0x27')]){delete _0x2486a2[_0xe9e2('0x27')];}_0x457907[_0xe9e2('0x17')](_0x37fe75)[_0xe9e2('0x28')](_0x2486a2);};}exports[_0xe9e2('0x29')]=function(_0x1ea834,_0x5c9a70){var _0x5e254b={},_0x299356={},_0x2a2dd4={'count':0x0,'rows':[]};var _0x44299e=_[_0xe9e2('0x2a')](db[_0xe9e2('0x2b')]['rawAttributes'],function(_0xbdc22d){return{'name':_0xbdc22d[_0xe9e2('0x2c')],'type':_0xbdc22d[_0xe9e2('0x2d')]['key']};});_0x299356[_0xe9e2('0x2e')]=_[_0xe9e2('0x2a')](_0x44299e,_0xe9e2('0x27'));_0x299356[_0xe9e2('0x2f')]=_[_0xe9e2('0x30')](_0x1ea834[_0xe9e2('0x2f')]);_0x299356[_0xe9e2('0x31')]=_[_0xe9e2('0x32')](_0x299356[_0xe9e2('0x2e')],_0x299356[_0xe9e2('0x2f')]);_0x5e254b['attributes']=_[_0xe9e2('0x32')](_0x299356[_0xe9e2('0x2e')],qs['fields'](_0x1ea834['query'][_0xe9e2('0x33')]));_0x5e254b['attributes']=_0x5e254b[_0xe9e2('0x34')][_0xe9e2('0x35')]?_0x5e254b[_0xe9e2('0x34')]:_0x299356[_0xe9e2('0x2e')];if(!_0x1ea834[_0xe9e2('0x2f')][_0xe9e2('0x36')](_0xe9e2('0x37'))){_0x5e254b[_0xe9e2('0x1c')]=qs[_0xe9e2('0x1c')](_0x1ea834[_0xe9e2('0x2f')][_0xe9e2('0x1c')]);_0x5e254b[_0xe9e2('0x1b')]=qs['offset'](_0x1ea834[_0xe9e2('0x2f')][_0xe9e2('0x1b')]);}_0x5e254b['order']=qs[_0xe9e2('0x38')](_0x1ea834['query'][_0xe9e2('0x38')]);_0x5e254b[_0xe9e2('0x39')]=qs[_0xe9e2('0x31')](_[_0xe9e2('0x3a')](_0x1ea834[_0xe9e2('0x2f')],_0x299356['filters']),_0x44299e);if(_0x1ea834[_0xe9e2('0x2f')][_0xe9e2('0x3b')]){_0x5e254b['where']=_['merge'](_0x5e254b['where'],{'$or':_[_0xe9e2('0x2a')](_0x44299e,function(_0x520778){if(_0x520778[_0xe9e2('0x2d')]!==_0xe9e2('0x3c')){var _0x28deb9={};_0x28deb9[_0x520778[_0xe9e2('0x27')]]={'$like':'%'+_0x1ea834['query'][_0xe9e2('0x3b')]+'%'};return _0x28deb9;}})});}_0x5e254b=_['merge']({},_0x5e254b,_0x1ea834['options']);var _0x3b91e8={'where':_0x5e254b[_0xe9e2('0x39')]};return db[_0xe9e2('0x2b')][_0xe9e2('0x1a')](_0x3b91e8)['then'](function(_0x4d4c93){_0x2a2dd4['count']=_0x4d4c93;if(_0x1ea834[_0xe9e2('0x2f')][_0xe9e2('0x3d')]){_0x5e254b['include']=[{'all':!![]}];}return db['Disposition'][_0xe9e2('0x3e')](_0x5e254b);})[_0xe9e2('0x21')](function(_0x3d3f6f){_0x2a2dd4[_0xe9e2('0x3f')]=_0x3d3f6f;return _0x2a2dd4;})[_0xe9e2('0x21')](respondWithFilteredResult(_0x5c9a70,_0x5e254b))[_0xe9e2('0x40')](handleError(_0x5c9a70,null));};exports['show']=function(_0xc8275d,_0x66fef3){var _0x9ac648={'raw':!![],'where':{'id':_0xc8275d[_0xe9e2('0x41')]['id']}},_0x22c3c4={};_0x22c3c4[_0xe9e2('0x2e')]=_[_0xe9e2('0x30')](db['Disposition'][_0xe9e2('0x42')]);_0x22c3c4[_0xe9e2('0x2f')]=_[_0xe9e2('0x30')](_0xc8275d['query']);_0x22c3c4[_0xe9e2('0x31')]=_[_0xe9e2('0x32')](_0x22c3c4['model'],_0x22c3c4[_0xe9e2('0x2f')]);_0x9ac648[_0xe9e2('0x34')]=_[_0xe9e2('0x32')](_0x22c3c4[_0xe9e2('0x2e')],qs['fields'](_0xc8275d[_0xe9e2('0x2f')][_0xe9e2('0x33')]));_0x9ac648[_0xe9e2('0x34')]=_0x9ac648[_0xe9e2('0x34')][_0xe9e2('0x35')]?_0x9ac648['attributes']:_0x22c3c4[_0xe9e2('0x2e')];if(_0xc8275d[_0xe9e2('0x2f')][_0xe9e2('0x3d')]){_0x9ac648[_0xe9e2('0x43')]=[{'all':!![]}];}_0x9ac648=_[_0xe9e2('0x44')]({},_0x9ac648,_0xc8275d[_0xe9e2('0x45')]);return db[_0xe9e2('0x2b')]['find'](_0x9ac648)[_0xe9e2('0x21')](handleEntityNotFound(_0x66fef3,null))[_0xe9e2('0x21')](respondWithResult(_0x66fef3,null))[_0xe9e2('0x40')](handleError(_0x66fef3,null));};exports[_0xe9e2('0x46')]=function(_0x257ce3,_0x48506e){return db['Disposition'][_0xe9e2('0x46')](_0x257ce3['body'],{})[_0xe9e2('0x21')](function(_0x4272e6){var _0x1e2b5c=_0x257ce3[_0xe9e2('0x47')][_0xe9e2('0x23')]({'plain':!![]});if(!_0x1e2b5c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1e2b5c[_0xe9e2('0x48')]===_0xe9e2('0x47')){var _0x41c5b4=_0x4272e6[_0xe9e2('0x23')]({'plain':!![]});var _0x4ce722=_0xe9e2('0x49');return db[_0xe9e2('0x4a')][_0xe9e2('0x4b')]({'where':{'name':_0x4ce722,'userProfileId':_0x1e2b5c['userProfileId']},'raw':!![]})['then'](function(_0x2a6d2b){if(_0x2a6d2b&&_0x2a6d2b[_0xe9e2('0x4c')]===0x0){return db[_0xe9e2('0x24')]['create']({'name':_0x41c5b4[_0xe9e2('0x27')],'resourceId':_0x41c5b4['id'],'type':_0x2a6d2b['name'],'sectionId':_0x2a6d2b['id']},{})[_0xe9e2('0x21')](function(){return _0x4272e6;});}else{return _0x4272e6;}})[_0xe9e2('0x40')](function(_0x40cd5b){logger[_0xe9e2('0x25')](_0xe9e2('0x4d'),_0x40cd5b);throw _0x40cd5b;});}return _0x4272e6;})[_0xe9e2('0x21')](respondWithResult(_0x48506e,0xc9))[_0xe9e2('0x40')](handleError(_0x48506e,null));};exports[_0xe9e2('0x20')]=function(_0x31586f,_0x16512f){if(_0x31586f[_0xe9e2('0x4e')]['id']){delete _0x31586f[_0xe9e2('0x4e')]['id'];}return db[_0xe9e2('0x2b')]['find']({'where':{'id':_0x31586f[_0xe9e2('0x41')]['id']}})[_0xe9e2('0x21')](handleEntityNotFound(_0x16512f,null))[_0xe9e2('0x21')](saveUpdates(_0x31586f[_0xe9e2('0x4e')],null))['then'](respondWithResult(_0x16512f,null))[_0xe9e2('0x40')](handleError(_0x16512f,null));};exports[_0xe9e2('0x22')]=function(_0x4b968d,_0xe550e0){return db[_0xe9e2('0x2b')][_0xe9e2('0x4b')]({'where':{'id':_0x4b968d[_0xe9e2('0x41')]['id']}})[_0xe9e2('0x21')](handleEntityNotFound(_0xe550e0,null))[_0xe9e2('0x21')](removeEntity(_0xe550e0,null))[_0xe9e2('0x40')](handleError(_0xe550e0,null));};