53912bc3a0d049bf15e372c7dc2099178c09b6fc
[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 _0xa3f9=['show','fields','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','util','path','sox','to-csv','ejs','fs-extra','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','Dispositions','UserProfileResource','sendStatus','error','stack','name','send','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Disposition','includeAll','include','findAll','rows','catch'];(function(_0x495e9f,_0x1b1d80){var _0xb249d2=function(_0x3db4e4){while(--_0x3db4e4){_0x495e9f['push'](_0x495e9f['shift']());}};_0xb249d2(++_0x1b1d80);}(_0xa3f9,0x140));var _0x9a3f=function(_0x2b9ebe,_0x44aa6b){_0x2b9ebe=_0x2b9ebe-0x0;var _0x558677=_0xa3f9[_0x2b9ebe];return _0x558677;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9a3f('0x0'));var zipdir=require(_0x9a3f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9a3f('0x2'));var path=require(_0x9a3f('0x3'));var sox=require(_0x9a3f('0x4'));var csv=require(_0x9a3f('0x5'));var ejs=require(_0x9a3f('0x6'));var fs=require('fs');var fs_extra=require(_0x9a3f('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x9a3f('0x5'));var querystring=require(_0x9a3f('0x8'));var Papa=require(_0x9a3f('0x9'));var Redis=require(_0x9a3f('0xa'));var authService=require(_0x9a3f('0xb'));var qs=require(_0x9a3f('0xc'));var as=require(_0x9a3f('0xd'));var hardwareService=require(_0x9a3f('0xe'));var logger=require(_0x9a3f('0xf'))(_0x9a3f('0x10'));var utils=require(_0x9a3f('0x11'));var config=require(_0x9a3f('0x12'));var licenseUtil=require(_0x9a3f('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1968bd,_0x4edc9f){_0x4edc9f=_0x4edc9f||0xcc;return function(_0x425b38){if(_0x425b38){return _0x1968bd['sendStatus'](_0x4edc9f);}return _0x1968bd[_0x9a3f('0x14')](_0x4edc9f)['end']();};}function respondWithResult(_0x22e23a,_0x2cdb11){_0x2cdb11=_0x2cdb11||0xc8;return function(_0x4c567a){if(_0x4c567a){return _0x22e23a[_0x9a3f('0x14')](_0x2cdb11)[_0x9a3f('0x15')](_0x4c567a);}};}function respondWithFilteredResult(_0x5ea34f,_0x1ea6aa){return function(_0x350199){if(_0x350199){var _0x4d91d9=typeof _0x1ea6aa['offset']==='undefined'&&typeof _0x1ea6aa['limit']==='undefined';var _0x1fc10f=_0x350199[_0x9a3f('0x16')];var _0x19c855=_0x4d91d9?0x0:_0x1ea6aa['offset'];var _0x386665=_0x4d91d9?_0x350199[_0x9a3f('0x16')]:_0x1ea6aa[_0x9a3f('0x17')]+_0x1ea6aa[_0x9a3f('0x18')];var _0x639b28;if(_0x386665>=_0x1fc10f){_0x386665=_0x1fc10f;_0x639b28=0xc8;}else{_0x639b28=0xce;}_0x5ea34f[_0x9a3f('0x14')](_0x639b28);return _0x5ea34f[_0x9a3f('0x19')](_0x9a3f('0x1a'),_0x19c855+'-'+_0x386665+'/'+_0x1fc10f)['json'](_0x350199);}return null;};}function patchUpdates(_0x48e5ac){return function(_0x305b38){try{jsonpatch[_0x9a3f('0x1b')](_0x305b38,_0x48e5ac,!![]);}catch(_0xf94738){return BPromise['reject'](_0xf94738);}return _0x305b38[_0x9a3f('0x1c')]();};}function saveUpdates(_0x56e2f9,_0x4ad8bb){return function(_0x3cc4f7){if(_0x3cc4f7){return _0x3cc4f7[_0x9a3f('0x1d')](_0x56e2f9)[_0x9a3f('0x1e')](function(_0x228bc4){return _0x228bc4;});}return null;};}function removeEntity(_0x2533a0,_0x5b76e4){return function(_0x5db002){if(_0x5db002){return _0x5db002[_0x9a3f('0x1f')]()['then'](function(){var _0xf41be5=_0x5db002['get']({'plain':!![]});var _0x34e6ac=_0x9a3f('0x20');return db[_0x9a3f('0x21')][_0x9a3f('0x1f')]({'where':{'type':_0x34e6ac,'resourceId':_0xf41be5['id']}})['then'](function(){return _0x5db002;});})['then'](function(){_0x2533a0[_0x9a3f('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e84a9,_0x4f8952){return function(_0x42bb44){if(!_0x42bb44){_0x5e84a9[_0x9a3f('0x22')](0x194);}return _0x42bb44;};}function handleError(_0x5780b9,_0x57eabf){_0x57eabf=_0x57eabf||0x1f4;return function(_0x289358){logger[_0x9a3f('0x23')](_0x289358[_0x9a3f('0x24')]);if(_0x289358[_0x9a3f('0x25')]){delete _0x289358[_0x9a3f('0x25')];}_0x5780b9[_0x9a3f('0x14')](_0x57eabf)[_0x9a3f('0x26')](_0x289358);};}exports['index']=function(_0x1bac9b,_0x19d29a){var _0x504892={},_0x23d2ba={},_0x1f7467={'count':0x0,'rows':[]};var _0x287c58=_[_0x9a3f('0x27')](db['Disposition'][_0x9a3f('0x28')],function(_0x585ae5){return{'name':_0x585ae5['fieldName'],'type':_0x585ae5[_0x9a3f('0x29')][_0x9a3f('0x2a')]};});_0x23d2ba[_0x9a3f('0x2b')]=_[_0x9a3f('0x27')](_0x287c58,_0x9a3f('0x25'));_0x23d2ba[_0x9a3f('0x2c')]=_[_0x9a3f('0x2d')](_0x1bac9b[_0x9a3f('0x2c')]);_0x23d2ba[_0x9a3f('0x2e')]=_[_0x9a3f('0x2f')](_0x23d2ba[_0x9a3f('0x2b')],_0x23d2ba['query']);_0x504892['attributes']=_[_0x9a3f('0x2f')](_0x23d2ba['model'],qs['fields'](_0x1bac9b[_0x9a3f('0x2c')]['fields']));_0x504892['attributes']=_0x504892[_0x9a3f('0x30')][_0x9a3f('0x31')]?_0x504892[_0x9a3f('0x30')]:_0x23d2ba[_0x9a3f('0x2b')];if(!_0x1bac9b[_0x9a3f('0x2c')]['hasOwnProperty'](_0x9a3f('0x32'))){_0x504892[_0x9a3f('0x18')]=qs[_0x9a3f('0x18')](_0x1bac9b['query'][_0x9a3f('0x18')]);_0x504892[_0x9a3f('0x17')]=qs[_0x9a3f('0x17')](_0x1bac9b[_0x9a3f('0x2c')][_0x9a3f('0x17')]);}_0x504892[_0x9a3f('0x33')]=qs[_0x9a3f('0x34')](_0x1bac9b[_0x9a3f('0x2c')][_0x9a3f('0x34')]);_0x504892[_0x9a3f('0x35')]=qs[_0x9a3f('0x2e')](_[_0x9a3f('0x36')](_0x1bac9b[_0x9a3f('0x2c')],_0x23d2ba['filters']),_0x287c58);if(_0x1bac9b[_0x9a3f('0x2c')][_0x9a3f('0x37')]){_0x504892[_0x9a3f('0x35')]=_[_0x9a3f('0x38')](_0x504892['where'],{'$or':_[_0x9a3f('0x27')](_0x287c58,function(_0x26ea8d){if(_0x26ea8d[_0x9a3f('0x29')]!==_0x9a3f('0x39')){var _0x404439={};_0x404439[_0x26ea8d[_0x9a3f('0x25')]]={'$like':'%'+_0x1bac9b[_0x9a3f('0x2c')][_0x9a3f('0x37')]+'%'};return _0x404439;}})});}_0x504892=_[_0x9a3f('0x38')]({},_0x504892,_0x1bac9b[_0x9a3f('0x3a')]);var _0x40bf09={'where':_0x504892[_0x9a3f('0x35')]};return db[_0x9a3f('0x3b')][_0x9a3f('0x16')](_0x40bf09)[_0x9a3f('0x1e')](function(_0x22af79){_0x1f7467['count']=_0x22af79;if(_0x1bac9b[_0x9a3f('0x2c')][_0x9a3f('0x3c')]){_0x504892[_0x9a3f('0x3d')]=[{'all':!![]}];}return db[_0x9a3f('0x3b')][_0x9a3f('0x3e')](_0x504892);})[_0x9a3f('0x1e')](function(_0x1293e1){_0x1f7467[_0x9a3f('0x3f')]=_0x1293e1;return _0x1f7467;})[_0x9a3f('0x1e')](respondWithFilteredResult(_0x19d29a,_0x504892))[_0x9a3f('0x40')](handleError(_0x19d29a,null));};exports[_0x9a3f('0x41')]=function(_0x2fdd81,_0x2a6d49){var _0x1b24f8={'raw':!![],'where':{'id':_0x2fdd81['params']['id']}},_0x111360={};_0x111360[_0x9a3f('0x2b')]=_[_0x9a3f('0x2d')](db['Disposition'][_0x9a3f('0x28')]);_0x111360[_0x9a3f('0x2c')]=_[_0x9a3f('0x2d')](_0x2fdd81['query']);_0x111360[_0x9a3f('0x2e')]=_[_0x9a3f('0x2f')](_0x111360['model'],_0x111360[_0x9a3f('0x2c')]);_0x1b24f8[_0x9a3f('0x30')]=_[_0x9a3f('0x2f')](_0x111360[_0x9a3f('0x2b')],qs[_0x9a3f('0x42')](_0x2fdd81[_0x9a3f('0x2c')][_0x9a3f('0x42')]));_0x1b24f8[_0x9a3f('0x30')]=_0x1b24f8[_0x9a3f('0x30')][_0x9a3f('0x31')]?_0x1b24f8[_0x9a3f('0x30')]:_0x111360[_0x9a3f('0x2b')];if(_0x2fdd81[_0x9a3f('0x2c')][_0x9a3f('0x3c')]){_0x1b24f8[_0x9a3f('0x3d')]=[{'all':!![]}];}_0x1b24f8=_[_0x9a3f('0x38')]({},_0x1b24f8,_0x2fdd81[_0x9a3f('0x3a')]);return db[_0x9a3f('0x3b')][_0x9a3f('0x43')](_0x1b24f8)[_0x9a3f('0x1e')](handleEntityNotFound(_0x2a6d49,null))[_0x9a3f('0x1e')](respondWithResult(_0x2a6d49,null))[_0x9a3f('0x40')](handleError(_0x2a6d49,null));};exports[_0x9a3f('0x44')]=function(_0x6aadba,_0x4d7ebd){return db[_0x9a3f('0x3b')]['create'](_0x6aadba[_0x9a3f('0x45')],{})[_0x9a3f('0x1e')](function(_0x3eec90){var _0x5ea179=_0x6aadba[_0x9a3f('0x46')][_0x9a3f('0x47')]({'plain':!![]});if(!_0x5ea179)throw new Error(_0x9a3f('0x48'));if(_0x5ea179[_0x9a3f('0x49')]===_0x9a3f('0x46')){var _0x490358=_0x3eec90[_0x9a3f('0x47')]({'plain':!![]});var _0x5c44a7='Dispositions';return db[_0x9a3f('0x4a')]['find']({'where':{'name':_0x5c44a7,'userProfileId':_0x5ea179['userProfileId']},'raw':!![]})[_0x9a3f('0x1e')](function(_0x97a78d){if(_0x97a78d&&_0x97a78d[_0x9a3f('0x4b')]===0x0){return db[_0x9a3f('0x21')][_0x9a3f('0x44')]({'name':_0x490358[_0x9a3f('0x25')],'resourceId':_0x490358['id'],'type':_0x97a78d[_0x9a3f('0x25')],'sectionId':_0x97a78d['id']},{})[_0x9a3f('0x1e')](function(){return _0x3eec90;});}else{return _0x3eec90;}})[_0x9a3f('0x40')](function(_0x385211){logger[_0x9a3f('0x23')](_0x9a3f('0x4c'),_0x385211);throw _0x385211;});}return _0x3eec90;})[_0x9a3f('0x1e')](respondWithResult(_0x4d7ebd,0xc9))[_0x9a3f('0x40')](handleError(_0x4d7ebd,null));};exports[_0x9a3f('0x1d')]=function(_0x558a46,_0x4ae2c3){if(_0x558a46[_0x9a3f('0x45')]['id']){delete _0x558a46['body']['id'];}return db[_0x9a3f('0x3b')]['find']({'where':{'id':_0x558a46['params']['id']}})[_0x9a3f('0x1e')](handleEntityNotFound(_0x4ae2c3,null))[_0x9a3f('0x1e')](saveUpdates(_0x558a46[_0x9a3f('0x45')],null))[_0x9a3f('0x1e')](respondWithResult(_0x4ae2c3,null))[_0x9a3f('0x40')](handleError(_0x4ae2c3,null));};exports['destroy']=function(_0x152989,_0x4cf3a7){return db[_0x9a3f('0x3b')][_0x9a3f('0x43')]({'where':{'id':_0x152989['params']['id']}})['then'](handleEntityNotFound(_0x4cf3a7,null))[_0x9a3f('0x1e')](removeEntity(_0x4cf3a7,null))['catch'](handleError(_0x4cf3a7,null));};