b896195e59936bd117ac62acdced3dd6715ffdb1
[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 _0xa6dc=['includeAll','include','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','eml-format','fast-json-patch','request-promise','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','apply','reject','save','then','destroy','Dispositions','UserProfileResource','error','stack','name','index','map','rawAttributes','key','model','keys','query','filters','intersection','attributes','fields','length','order','sort','pick','filter','where','merge','type','VIRTUAL','options','Disposition','findAll','rows','catch','show','params'];(function(_0x58f245,_0x3e4f31){var _0x1f0cfb=function(_0x515942){while(--_0x515942){_0x58f245['push'](_0x58f245['shift']());}};_0x1f0cfb(++_0x3e4f31);}(_0xa6dc,0x145));var _0xca6d=function(_0x801e,_0x2806fd){_0x801e=_0x801e-0x0;var _0x53d65e=_0xa6dc[_0x801e];return _0x53d65e;};'use strict';var emlformat=require(_0xca6d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xca6d('0x1'));var rp=require(_0xca6d('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xca6d('0x3'));var path=require('path');var sox=require(_0xca6d('0x4'));var csv=require(_0xca6d('0x5'));var ejs=require(_0xca6d('0x6'));var fs=require('fs');var fs_extra=require(_0xca6d('0x7'));var _=require(_0xca6d('0x8'));var squel=require(_0xca6d('0x9'));var crypto=require(_0xca6d('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xca6d('0xb'));var toCsv=require(_0xca6d('0x5'));var querystring=require(_0xca6d('0xc'));var Papa=require(_0xca6d('0xd'));var Redis=require(_0xca6d('0xe'));var authService=require(_0xca6d('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xca6d('0x10'));var logger=require('../../config/logger')(_0xca6d('0x11'));var utils=require(_0xca6d('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xca6d('0x13'));var db=require(_0xca6d('0x14'))['db'];function respondWithStatusCode(_0x2e0920,_0x351e02){_0x351e02=_0x351e02||0xcc;return function(_0x10a802){if(_0x10a802){return _0x2e0920[_0xca6d('0x15')](_0x351e02);}return _0x2e0920[_0xca6d('0x16')](_0x351e02)[_0xca6d('0x17')]();};}function respondWithResult(_0x48eaba,_0x43fd42){_0x43fd42=_0x43fd42||0xc8;return function(_0x174669){if(_0x174669){return _0x48eaba[_0xca6d('0x16')](_0x43fd42)[_0xca6d('0x18')](_0x174669);}};}function respondWithFilteredResult(_0x1d6ce0,_0x2f36e2){return function(_0x2d993a){if(_0x2d993a){var _0x4691c9=_0x2d993a[_0xca6d('0x19')],_0x2f997b=_0x2f36e2[_0xca6d('0x1a')],_0xfa5fba=_0x2f36e2[_0xca6d('0x1a')]+_0x2f36e2[_0xca6d('0x1b')],_0x5289d6;if(_0xfa5fba>=_0x4691c9){_0xfa5fba=_0x4691c9;_0x5289d6=0xc8;}else{_0x5289d6=0xce;}_0x1d6ce0[_0xca6d('0x16')](_0x5289d6);return _0x1d6ce0['set']('Content-Range',_0x2f997b+'-'+_0xfa5fba+'/'+_0x4691c9)[_0xca6d('0x18')](_0x2d993a);}return null;};}function patchUpdates(_0x35a5a1){return function(_0x2f22b0){try{jsonpatch[_0xca6d('0x1c')](_0x2f22b0,_0x35a5a1,!![]);}catch(_0x8932af){return BPromise[_0xca6d('0x1d')](_0x8932af);}return _0x2f22b0[_0xca6d('0x1e')]();};}function saveUpdates(_0x617df9,_0xa4ddd0){return function(_0x102b59){if(_0x102b59){return _0x102b59['update'](_0x617df9)[_0xca6d('0x1f')](function(_0x750d3b){return _0x750d3b;});}return null;};}function removeEntity(_0x1c50cd,_0xe63c74){return function(_0xdb550d){if(_0xdb550d){return _0xdb550d[_0xca6d('0x20')]()[_0xca6d('0x1f')](function(){var _0x47f0a3=_0xdb550d['get']({'plain':!![]});var _0x1cd098=_0xca6d('0x21');return db[_0xca6d('0x22')][_0xca6d('0x20')]({'where':{'type':_0x1cd098,'resourceId':_0x47f0a3['id']}})['then'](function(){return _0xdb550d;});})[_0xca6d('0x1f')](function(){_0x1c50cd[_0xca6d('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x45b54a,_0x1422d0){return function(_0x1ba9fc){if(!_0x1ba9fc){_0x45b54a['sendStatus'](0x194);}return _0x1ba9fc;};}function handleError(_0x325f0e,_0x368acb){_0x368acb=_0x368acb||0x1f4;return function(_0x2fa86f){logger[_0xca6d('0x23')](_0x2fa86f[_0xca6d('0x24')]);if(_0x2fa86f[_0xca6d('0x25')]){delete _0x2fa86f[_0xca6d('0x25')];}_0x325f0e[_0xca6d('0x16')](_0x368acb)['send'](_0x2fa86f);};}exports[_0xca6d('0x26')]=function(_0x33a982,_0x264b7a){var _0x31d885={},_0x5ee59f={},_0x66c088={'count':0x0,'rows':[]};var _0x2c081a=_[_0xca6d('0x27')](db['Disposition'][_0xca6d('0x28')],function(_0x547e15){return{'name':_0x547e15['fieldName'],'type':_0x547e15['type'][_0xca6d('0x29')]};});_0x5ee59f[_0xca6d('0x2a')]=_[_0xca6d('0x27')](_0x2c081a,_0xca6d('0x25'));_0x5ee59f['query']=_[_0xca6d('0x2b')](_0x33a982[_0xca6d('0x2c')]);_0x5ee59f[_0xca6d('0x2d')]=_[_0xca6d('0x2e')](_0x5ee59f['model'],_0x5ee59f[_0xca6d('0x2c')]);_0x31d885[_0xca6d('0x2f')]=_[_0xca6d('0x2e')](_0x5ee59f[_0xca6d('0x2a')],qs['fields'](_0x33a982['query'][_0xca6d('0x30')]));_0x31d885['attributes']=_0x31d885['attributes'][_0xca6d('0x31')]?_0x31d885[_0xca6d('0x2f')]:_0x5ee59f[_0xca6d('0x2a')];if(!_0x33a982[_0xca6d('0x2c')]['hasOwnProperty']('nolimit')){_0x31d885[_0xca6d('0x1b')]=qs[_0xca6d('0x1b')](_0x33a982[_0xca6d('0x2c')][_0xca6d('0x1b')]);_0x31d885[_0xca6d('0x1a')]=qs[_0xca6d('0x1a')](_0x33a982[_0xca6d('0x2c')][_0xca6d('0x1a')]);}_0x31d885[_0xca6d('0x32')]=qs[_0xca6d('0x33')](_0x33a982[_0xca6d('0x2c')][_0xca6d('0x33')]);_0x31d885['where']=qs['filters'](_[_0xca6d('0x34')](_0x33a982[_0xca6d('0x2c')],_0x5ee59f[_0xca6d('0x2d')]),_0x2c081a);if(_0x33a982[_0xca6d('0x2c')][_0xca6d('0x35')]){_0x31d885[_0xca6d('0x36')]=_[_0xca6d('0x37')](_0x31d885[_0xca6d('0x36')],{'$or':_[_0xca6d('0x27')](_0x2c081a,function(_0x4e39ed){if(_0x4e39ed[_0xca6d('0x38')]!==_0xca6d('0x39')){var _0x429593={};_0x429593[_0x4e39ed[_0xca6d('0x25')]]={'$like':'%'+_0x33a982[_0xca6d('0x2c')][_0xca6d('0x35')]+'%'};return _0x429593;}})});}_0x31d885=_[_0xca6d('0x37')]({},_0x31d885,_0x33a982[_0xca6d('0x3a')]);var _0x2b210b={'where':_0x31d885['where']};return db[_0xca6d('0x3b')]['count'](_0x2b210b)[_0xca6d('0x1f')](function(_0x36ed7f){_0x66c088[_0xca6d('0x19')]=_0x36ed7f;if(_0x33a982[_0xca6d('0x2c')]['includeAll']){_0x31d885['include']=[{'all':!![]}];}return db[_0xca6d('0x3b')][_0xca6d('0x3c')](_0x31d885);})[_0xca6d('0x1f')](function(_0x2fcee8){_0x66c088[_0xca6d('0x3d')]=_0x2fcee8;return _0x66c088;})[_0xca6d('0x1f')](respondWithFilteredResult(_0x264b7a,_0x31d885))[_0xca6d('0x3e')](handleError(_0x264b7a,null));};exports[_0xca6d('0x3f')]=function(_0xf1447e,_0x2a80d0){var _0x491d73={'raw':!![],'where':{'id':_0xf1447e[_0xca6d('0x40')]['id']}},_0x583aa7={};_0x583aa7[_0xca6d('0x2a')]=_[_0xca6d('0x2b')](db[_0xca6d('0x3b')][_0xca6d('0x28')]);_0x583aa7['query']=_['keys'](_0xf1447e[_0xca6d('0x2c')]);_0x583aa7[_0xca6d('0x2d')]=_[_0xca6d('0x2e')](_0x583aa7['model'],_0x583aa7[_0xca6d('0x2c')]);_0x491d73[_0xca6d('0x2f')]=_[_0xca6d('0x2e')](_0x583aa7[_0xca6d('0x2a')],qs[_0xca6d('0x30')](_0xf1447e[_0xca6d('0x2c')][_0xca6d('0x30')]));_0x491d73['attributes']=_0x491d73[_0xca6d('0x2f')][_0xca6d('0x31')]?_0x491d73[_0xca6d('0x2f')]:_0x583aa7[_0xca6d('0x2a')];if(_0xf1447e[_0xca6d('0x2c')][_0xca6d('0x41')]){_0x491d73[_0xca6d('0x42')]=[{'all':!![]}];}_0x491d73=_['merge']({},_0x491d73,_0xf1447e[_0xca6d('0x3a')]);return db[_0xca6d('0x3b')][_0xca6d('0x43')](_0x491d73)[_0xca6d('0x1f')](handleEntityNotFound(_0x2a80d0,null))[_0xca6d('0x1f')](respondWithResult(_0x2a80d0,null))[_0xca6d('0x3e')](handleError(_0x2a80d0,null));};exports[_0xca6d('0x44')]=function(_0x13b4d1,_0x4a94eb){return db['Disposition'][_0xca6d('0x44')](_0x13b4d1['body'],{})['then'](function(_0x471f5c){var _0x35695f=_0x13b4d1[_0xca6d('0x45')][_0xca6d('0x46')]({'plain':!![]});if(!_0x35695f)throw new Error(_0xca6d('0x47'));if(_0x35695f[_0xca6d('0x48')]===_0xca6d('0x45')){var _0x405e71=_0x471f5c[_0xca6d('0x46')]({'plain':!![]});var _0x1e83b9='Dispositions';return db[_0xca6d('0x49')][_0xca6d('0x43')]({'where':{'name':_0x1e83b9,'userProfileId':_0x35695f['userProfileId']},'raw':!![]})[_0xca6d('0x1f')](function(_0x222838){if(_0x222838&&_0x222838[_0xca6d('0x4a')]===0x0){return db[_0xca6d('0x22')]['create']({'name':_0x405e71[_0xca6d('0x25')],'resourceId':_0x405e71['id'],'type':_0x222838[_0xca6d('0x25')],'sectionId':_0x222838['id']},{})[_0xca6d('0x1f')](function(){return _0x471f5c;});}else{return _0x471f5c;}})[_0xca6d('0x3e')](function(_0x4a03cc){logger['error'](_0xca6d('0x4b'),_0x4a03cc);throw _0x4a03cc;});}return _0x471f5c;})[_0xca6d('0x1f')](respondWithResult(_0x4a94eb,0xc9))[_0xca6d('0x3e')](handleError(_0x4a94eb,null));};exports[_0xca6d('0x4c')]=function(_0x540750,_0x5b36c9){if(_0x540750[_0xca6d('0x4d')]['id']){delete _0x540750['body']['id'];}return db[_0xca6d('0x3b')]['find']({'where':{'id':_0x540750[_0xca6d('0x40')]['id']}})['then'](handleEntityNotFound(_0x5b36c9,null))['then'](saveUpdates(_0x540750['body'],null))[_0xca6d('0x1f')](respondWithResult(_0x5b36c9,null))[_0xca6d('0x3e')](handleError(_0x5b36c9,null));};exports[_0xca6d('0x20')]=function(_0x1faf16,_0x56102c){return db['Disposition'][_0xca6d('0x43')]({'where':{'id':_0x1faf16[_0xca6d('0x40')]['id']}})[_0xca6d('0x1f')](handleEntityNotFound(_0x56102c,null))[_0xca6d('0x1f')](removeEntity(_0x56102c,null))[_0xca6d('0x3e')](handleError(_0x56102c,null));};