39f40457133931d1eb860b5dd6fc0223a9494beb
[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 _0x0048=['../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','Dispositions','error','stack','name','send','map','Disposition','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','order','pick','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','params','find','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','fs-extra','lodash','squel','jsforce','desk.js','to-csv','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util'];(function(_0x433a86,_0x175b5c){var _0x23000c=function(_0x4b1fa0){while(--_0x4b1fa0){_0x433a86['push'](_0x433a86['shift']());}};_0x23000c(++_0x175b5c);}(_0x0048,0x129));var _0x8004=function(_0x18be7e,_0x32fd6c){_0x18be7e=_0x18be7e-0x0;var _0x44139b=_0x0048[_0x18be7e];return _0x44139b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8004('0x0'));var zipdir=require(_0x8004('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8004('0x2'));var moment=require(_0x8004('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8004('0x4'));var util=require(_0x8004('0x5'));var path=require(_0x8004('0x6'));var sox=require(_0x8004('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8004('0x8'));var _=require(_0x8004('0x9'));var squel=require(_0x8004('0xa'));var crypto=require('crypto');var jsforce=require(_0x8004('0xb'));var deskjs=require(_0x8004('0xc'));var toCsv=require(_0x8004('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8004('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8004('0xf'));var logger=require(_0x8004('0x10'))('api');var utils=require('../../config/utils');var config=require(_0x8004('0x11'));var licenseUtil=require(_0x8004('0x12'));var db=require(_0x8004('0x13'))['db'];function respondWithStatusCode(_0xd3afc7,_0x1a2e57){_0x1a2e57=_0x1a2e57||0xcc;return function(_0x368720){if(_0x368720){return _0xd3afc7[_0x8004('0x14')](_0x1a2e57);}return _0xd3afc7['status'](_0x1a2e57)[_0x8004('0x15')]();};}function respondWithResult(_0x3bb941,_0x2fc21a){_0x2fc21a=_0x2fc21a||0xc8;return function(_0xeaeac3){if(_0xeaeac3){return _0x3bb941[_0x8004('0x16')](_0x2fc21a)[_0x8004('0x17')](_0xeaeac3);}};}function respondWithFilteredResult(_0x2b63fc,_0x65f71e){return function(_0x20f2f0){if(_0x20f2f0){var _0x3cebc4=typeof _0x65f71e[_0x8004('0x18')]===_0x8004('0x19')&&typeof _0x65f71e[_0x8004('0x1a')]===_0x8004('0x19');var _0x205ff9=_0x20f2f0[_0x8004('0x1b')];var _0x116ce3=_0x3cebc4?0x0:_0x65f71e[_0x8004('0x18')];var _0x75f97d=_0x3cebc4?_0x20f2f0['count']:_0x65f71e[_0x8004('0x18')]+_0x65f71e[_0x8004('0x1a')];var _0x502eed;if(_0x75f97d>=_0x205ff9){_0x75f97d=_0x205ff9;_0x502eed=0xc8;}else{_0x502eed=0xce;}_0x2b63fc[_0x8004('0x16')](_0x502eed);return _0x2b63fc[_0x8004('0x1c')](_0x8004('0x1d'),_0x116ce3+'-'+_0x75f97d+'/'+_0x205ff9)[_0x8004('0x17')](_0x20f2f0);}return null;};}function patchUpdates(_0x24cbc6){return function(_0x1c5c21){try{jsonpatch[_0x8004('0x1e')](_0x1c5c21,_0x24cbc6,!![]);}catch(_0x1ffeef){return BPromise[_0x8004('0x1f')](_0x1ffeef);}return _0x1c5c21[_0x8004('0x20')]();};}function saveUpdates(_0x5a4608,_0x57370e){return function(_0x5b12e9){if(_0x5b12e9){return _0x5b12e9[_0x8004('0x21')](_0x5a4608)[_0x8004('0x22')](function(_0x5ed335){return _0x5ed335;});}return null;};}function removeEntity(_0x4325f9,_0x1a4410){return function(_0x81b386){if(_0x81b386){return _0x81b386[_0x8004('0x23')]()[_0x8004('0x22')](function(){var _0x2d3313=_0x81b386['get']({'plain':!![]});var _0x108089=_0x8004('0x24');return db['UserProfileResource'][_0x8004('0x23')]({'where':{'type':_0x108089,'resourceId':_0x2d3313['id']}})[_0x8004('0x22')](function(){return _0x81b386;});})[_0x8004('0x22')](function(){_0x4325f9[_0x8004('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5271d3,_0x431515){return function(_0x3b8e6){if(!_0x3b8e6){_0x5271d3['sendStatus'](0x194);}return _0x3b8e6;};}function handleError(_0x278b8c,_0x22824e){_0x22824e=_0x22824e||0x1f4;return function(_0x3be2f9){logger[_0x8004('0x25')](_0x3be2f9[_0x8004('0x26')]);if(_0x3be2f9['name']){delete _0x3be2f9[_0x8004('0x27')];}_0x278b8c['status'](_0x22824e)[_0x8004('0x28')](_0x3be2f9);};}exports['index']=function(_0x5ab359,_0x4dbf54){var _0x3996ba={},_0x3dff63={},_0x53c21a={'count':0x0,'rows':[]};var _0xc47b5=_[_0x8004('0x29')](db[_0x8004('0x2a')][_0x8004('0x2b')],function(_0x26877e){return{'name':_0x26877e[_0x8004('0x2c')],'type':_0x26877e[_0x8004('0x2d')][_0x8004('0x2e')]};});_0x3dff63['model']=_['map'](_0xc47b5,'name');_0x3dff63['query']=_[_0x8004('0x2f')](_0x5ab359[_0x8004('0x30')]);_0x3dff63[_0x8004('0x31')]=_[_0x8004('0x32')](_0x3dff63['model'],_0x3dff63[_0x8004('0x30')]);_0x3996ba['attributes']=_[_0x8004('0x32')](_0x3dff63[_0x8004('0x33')],qs[_0x8004('0x34')](_0x5ab359['query'][_0x8004('0x34')]));_0x3996ba[_0x8004('0x35')]=_0x3996ba[_0x8004('0x35')][_0x8004('0x36')]?_0x3996ba[_0x8004('0x35')]:_0x3dff63[_0x8004('0x33')];if(!_0x5ab359[_0x8004('0x30')][_0x8004('0x37')]('nolimit')){_0x3996ba[_0x8004('0x1a')]=qs[_0x8004('0x1a')](_0x5ab359[_0x8004('0x30')][_0x8004('0x1a')]);_0x3996ba['offset']=qs[_0x8004('0x18')](_0x5ab359[_0x8004('0x30')]['offset']);}_0x3996ba[_0x8004('0x38')]=qs['sort'](_0x5ab359[_0x8004('0x30')]['sort']);_0x3996ba['where']=qs[_0x8004('0x31')](_[_0x8004('0x39')](_0x5ab359[_0x8004('0x30')],_0x3dff63[_0x8004('0x31')]),_0xc47b5);if(_0x5ab359[_0x8004('0x30')]['filter']){_0x3996ba[_0x8004('0x3a')]=_[_0x8004('0x3b')](_0x3996ba[_0x8004('0x3a')],{'$or':_[_0x8004('0x29')](_0xc47b5,function(_0x5ca6ca){if(_0x5ca6ca[_0x8004('0x2d')]!==_0x8004('0x3c')){var _0x49fce8={};_0x49fce8[_0x5ca6ca[_0x8004('0x27')]]={'$like':'%'+_0x5ab359[_0x8004('0x30')][_0x8004('0x3d')]+'%'};return _0x49fce8;}})});}_0x3996ba=_['merge']({},_0x3996ba,_0x5ab359[_0x8004('0x3e')]);var _0x511885={'where':_0x3996ba[_0x8004('0x3a')]};return db[_0x8004('0x2a')][_0x8004('0x1b')](_0x511885)['then'](function(_0x586a3b){_0x53c21a['count']=_0x586a3b;if(_0x5ab359['query'][_0x8004('0x3f')]){_0x3996ba[_0x8004('0x40')]=[{'all':!![]}];}return db['Disposition'][_0x8004('0x41')](_0x3996ba);})[_0x8004('0x22')](function(_0x52c7c4){_0x53c21a[_0x8004('0x42')]=_0x52c7c4;return _0x53c21a;})[_0x8004('0x22')](respondWithFilteredResult(_0x4dbf54,_0x3996ba))[_0x8004('0x43')](handleError(_0x4dbf54,null));};exports['show']=function(_0x462988,_0x59b1df){var _0x3fb197={'raw':!![],'where':{'id':_0x462988[_0x8004('0x44')]['id']}},_0x58671f={};_0x58671f[_0x8004('0x33')]=_['keys'](db[_0x8004('0x2a')][_0x8004('0x2b')]);_0x58671f[_0x8004('0x30')]=_['keys'](_0x462988['query']);_0x58671f[_0x8004('0x31')]=_[_0x8004('0x32')](_0x58671f[_0x8004('0x33')],_0x58671f[_0x8004('0x30')]);_0x3fb197['attributes']=_[_0x8004('0x32')](_0x58671f[_0x8004('0x33')],qs[_0x8004('0x34')](_0x462988[_0x8004('0x30')][_0x8004('0x34')]));_0x3fb197['attributes']=_0x3fb197['attributes'][_0x8004('0x36')]?_0x3fb197[_0x8004('0x35')]:_0x58671f[_0x8004('0x33')];if(_0x462988[_0x8004('0x30')][_0x8004('0x3f')]){_0x3fb197[_0x8004('0x40')]=[{'all':!![]}];}_0x3fb197=_[_0x8004('0x3b')]({},_0x3fb197,_0x462988[_0x8004('0x3e')]);return db[_0x8004('0x2a')][_0x8004('0x45')](_0x3fb197)[_0x8004('0x22')](handleEntityNotFound(_0x59b1df,null))[_0x8004('0x22')](respondWithResult(_0x59b1df,null))[_0x8004('0x43')](handleError(_0x59b1df,null));};exports['create']=function(_0x164f9d,_0x11dbbe){return db[_0x8004('0x2a')][_0x8004('0x46')](_0x164f9d['body'],{})['then'](function(_0x472634){var _0x1d65c1=_0x164f9d['user'][_0x8004('0x47')]({'plain':!![]});if(!_0x1d65c1)throw new Error(_0x8004('0x48'));if(_0x1d65c1['role']==='user'){var _0x5eb601=_0x472634[_0x8004('0x47')]({'plain':!![]});var _0x141d85=_0x8004('0x24');return db[_0x8004('0x49')][_0x8004('0x45')]({'where':{'name':_0x141d85,'userProfileId':_0x1d65c1[_0x8004('0x4a')]},'raw':!![]})[_0x8004('0x22')](function(_0x5d7bf8){if(_0x5d7bf8&&_0x5d7bf8[_0x8004('0x4b')]===0x0){return db[_0x8004('0x4c')][_0x8004('0x46')]({'name':_0x5eb601[_0x8004('0x27')],'resourceId':_0x5eb601['id'],'type':_0x5d7bf8['name'],'sectionId':_0x5d7bf8['id']},{})[_0x8004('0x22')](function(){return _0x472634;});}else{return _0x472634;}})['catch'](function(_0x4be5a6){logger[_0x8004('0x25')](_0x8004('0x4d'),_0x4be5a6);throw _0x4be5a6;});}return _0x472634;})[_0x8004('0x22')](respondWithResult(_0x11dbbe,0xc9))[_0x8004('0x43')](handleError(_0x11dbbe,null));};exports['update']=function(_0x32673d,_0x581875){if(_0x32673d[_0x8004('0x4e')]['id']){delete _0x32673d[_0x8004('0x4e')]['id'];}return db[_0x8004('0x2a')][_0x8004('0x45')]({'where':{'id':_0x32673d[_0x8004('0x44')]['id']}})[_0x8004('0x22')](handleEntityNotFound(_0x581875,null))[_0x8004('0x22')](saveUpdates(_0x32673d[_0x8004('0x4e')],null))['then'](respondWithResult(_0x581875,null))[_0x8004('0x43')](handleError(_0x581875,null));};exports[_0x8004('0x23')]=function(_0x48cdf5,_0x4f369d){return db[_0x8004('0x2a')][_0x8004('0x45')]({'where':{'id':_0x48cdf5[_0x8004('0x44')]['id']}})[_0x8004('0x22')](handleEntityNotFound(_0x4f369d,null))[_0x8004('0x22')](removeEntity(_0x4f369d,null))[_0x8004('0x43')](handleError(_0x4f369d,null));};