d5fae1c2113a1f9edafed58db2efe9443a601ddb
[motion2.git] / server / api / pause / pause.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 _0x6eb6=['ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','get','Pauses','UserProfileResource','sendStatus','error','stack','name','render','merge','body','message','interaction','account','index','map','Pause','rawAttributes','fieldName','key','query','keys','attributes','intersection','fields','model','hasOwnProperty','order','sort','where','filters','pick','filter','type','VIRTUAL','options','includeAll','include','findAll','catch','show','params','length','create','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring'];(function(_0x6b1c2f,_0x7fcfd5){var _0x558d75=function(_0x4dee6e){while(--_0x4dee6e){_0x6b1c2f['push'](_0x6b1c2f['shift']());}};_0x558d75(++_0x7fcfd5);}(_0x6eb6,0xea));var _0x66eb=function(_0xd15f30,_0x2587e0){_0xd15f30=_0xd15f30-0x0;var _0x4df2a8=_0x6eb6[_0xd15f30];return _0x4df2a8;};'use strict';var emlformat=require(_0x66eb('0x0'));var rimraf=require(_0x66eb('0x1'));var zipdir=require(_0x66eb('0x2'));var jsonpatch=require(_0x66eb('0x3'));var rp=require(_0x66eb('0x4'));var moment=require('moment');var BPromise=require(_0x66eb('0x5'));var Mustache=require(_0x66eb('0x6'));var util=require(_0x66eb('0x7'));var path=require(_0x66eb('0x8'));var sox=require(_0x66eb('0x9'));var csv=require(_0x66eb('0xa'));var ejs=require(_0x66eb('0xb'));var fs=require('fs');var fs_extra=require(_0x66eb('0xc'));var _=require('lodash');var squel=require(_0x66eb('0xd'));var crypto=require(_0x66eb('0xe'));var jsforce=require(_0x66eb('0xf'));var deskjs=require(_0x66eb('0x10'));var toCsv=require(_0x66eb('0xa'));var querystring=require(_0x66eb('0x11'));var Papa=require('papaparse');var Redis=require(_0x66eb('0x12'));var authService=require(_0x66eb('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x66eb('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x66eb('0x15'));var utils=require(_0x66eb('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xdbd910,_0x4ad4b4){_0x4ad4b4=_0x4ad4b4||0xcc;return function(_0x1cdeb8){if(_0x1cdeb8){return _0xdbd910['sendStatus'](_0x4ad4b4);}return _0xdbd910[_0x66eb('0x17')](_0x4ad4b4)['end']();};}function respondWithResult(_0x278004,_0x4cddd2){_0x4cddd2=_0x4cddd2||0xc8;return function(_0x25f9d0){if(_0x25f9d0){return _0x278004[_0x66eb('0x17')](_0x4cddd2)[_0x66eb('0x18')](_0x25f9d0);}};}function respondWithFilteredResult(_0x4c9f02,_0x41560a){return function(_0x4bbb69){if(_0x4bbb69){var _0x37bf0c=typeof _0x41560a[_0x66eb('0x19')]===_0x66eb('0x1a')&&typeof _0x41560a[_0x66eb('0x1b')]===_0x66eb('0x1a');var _0x45c369=_0x4bbb69[_0x66eb('0x1c')];var _0x53c0c1=_0x37bf0c?0x0:_0x41560a['offset'];var _0x3951f9=_0x37bf0c?_0x4bbb69[_0x66eb('0x1c')]:_0x41560a[_0x66eb('0x19')]+_0x41560a[_0x66eb('0x1b')];var _0xedd8aa;if(_0x3951f9>=_0x45c369){_0x3951f9=_0x45c369;_0xedd8aa=0xc8;}else{_0xedd8aa=0xce;}_0x4c9f02[_0x66eb('0x17')](_0xedd8aa);return _0x4c9f02['set'](_0x66eb('0x1d'),_0x53c0c1+'-'+_0x3951f9+'/'+_0x45c369)[_0x66eb('0x18')](_0x4bbb69);}return null;};}function patchUpdates(_0x3df22b){return function(_0x4ad360){try{jsonpatch[_0x66eb('0x1e')](_0x4ad360,_0x3df22b,!![]);}catch(_0x1afad9){return BPromise[_0x66eb('0x1f')](_0x1afad9);}return _0x4ad360['save']();};}function saveUpdates(_0x34eae5,_0x18c5a7){return function(_0x59c3d9){if(_0x59c3d9){return _0x59c3d9[_0x66eb('0x20')](_0x34eae5)[_0x66eb('0x21')](function(_0x480786){return _0x480786;});}return null;};}function removeEntity(_0x8df388,_0x20232c){return function(_0x3ac871){if(_0x3ac871){return _0x3ac871[_0x66eb('0x22')]()[_0x66eb('0x21')](function(){var _0x5ca4bb=_0x3ac871[_0x66eb('0x23')]({'plain':!![]});var _0x3594bf=_0x66eb('0x24');return db[_0x66eb('0x25')][_0x66eb('0x22')]({'where':{'type':_0x3594bf,'resourceId':_0x5ca4bb['id']}})[_0x66eb('0x21')](function(){return _0x3ac871;});})[_0x66eb('0x21')](function(){_0x8df388[_0x66eb('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x419948,_0x2a658c){return function(_0x2ad409){if(!_0x2ad409){_0x419948[_0x66eb('0x26')](0x194);}return _0x2ad409;};}function handleError(_0x2b3832,_0x39d0b8){_0x39d0b8=_0x39d0b8||0x1f4;return function(_0x409d06){logger[_0x66eb('0x27')](_0x409d06[_0x66eb('0x28')]);if(_0x409d06['name']){delete _0x409d06[_0x66eb('0x29')];}_0x2b3832[_0x66eb('0x17')](_0x39d0b8)['send'](_0x409d06);};}function getMustacheRender(_0x22cd82,_0x33d3e6){return Mustache[_0x66eb('0x2a')](_0x22cd82,_[_0x66eb('0x2b')](_0x33d3e6[_0x66eb('0x2c')],{'contact':_0x33d3e6['contact'],'message':_0x33d3e6[_0x66eb('0x2d')],'agent':_0x33d3e6['agent'],'interaction':_0x33d3e6[_0x66eb('0x2e')],'account':_0x33d3e6[_0x66eb('0x2f')]}))||'';}exports[_0x66eb('0x30')]=function(_0x278123,_0x480ad8){var _0x1f52eb={},_0x16c90f={},_0xaf3ddc={'count':0x0,'rows':[]};var _0x1d35e4=_[_0x66eb('0x31')](db[_0x66eb('0x32')][_0x66eb('0x33')],function(_0x229878){return{'name':_0x229878[_0x66eb('0x34')],'type':_0x229878['type'][_0x66eb('0x35')]};});_0x16c90f['model']=_[_0x66eb('0x31')](_0x1d35e4,'name');_0x16c90f[_0x66eb('0x36')]=_[_0x66eb('0x37')](_0x278123[_0x66eb('0x36')]);_0x16c90f['filters']=_['intersection'](_0x16c90f['model'],_0x16c90f[_0x66eb('0x36')]);_0x1f52eb[_0x66eb('0x38')]=_[_0x66eb('0x39')](_0x16c90f['model'],qs[_0x66eb('0x3a')](_0x278123[_0x66eb('0x36')]['fields']));_0x1f52eb[_0x66eb('0x38')]=_0x1f52eb[_0x66eb('0x38')]['length']?_0x1f52eb[_0x66eb('0x38')]:_0x16c90f[_0x66eb('0x3b')];if(!_0x278123[_0x66eb('0x36')][_0x66eb('0x3c')]('nolimit')){_0x1f52eb[_0x66eb('0x1b')]=qs['limit'](_0x278123[_0x66eb('0x36')][_0x66eb('0x1b')]);_0x1f52eb[_0x66eb('0x19')]=qs[_0x66eb('0x19')](_0x278123[_0x66eb('0x36')]['offset']);}_0x1f52eb[_0x66eb('0x3d')]=qs[_0x66eb('0x3e')](_0x278123[_0x66eb('0x36')]['sort']);_0x1f52eb[_0x66eb('0x3f')]=qs[_0x66eb('0x40')](_[_0x66eb('0x41')](_0x278123[_0x66eb('0x36')],_0x16c90f[_0x66eb('0x40')]),_0x1d35e4);if(_0x278123[_0x66eb('0x36')][_0x66eb('0x42')]){_0x1f52eb[_0x66eb('0x3f')]=_['merge'](_0x1f52eb['where'],{'$or':_[_0x66eb('0x31')](_0x1d35e4,function(_0x38745b){if(_0x38745b[_0x66eb('0x43')]!==_0x66eb('0x44')){var _0x592709={};_0x592709[_0x38745b['name']]={'$like':'%'+_0x278123['query'][_0x66eb('0x42')]+'%'};return _0x592709;}})});}_0x1f52eb=_[_0x66eb('0x2b')]({},_0x1f52eb,_0x278123[_0x66eb('0x45')]);var _0x57f4c7={'where':_0x1f52eb['where']};return db[_0x66eb('0x32')][_0x66eb('0x1c')](_0x57f4c7)[_0x66eb('0x21')](function(_0x308575){_0xaf3ddc[_0x66eb('0x1c')]=_0x308575;if(_0x278123[_0x66eb('0x36')][_0x66eb('0x46')]){_0x1f52eb[_0x66eb('0x47')]=[{'all':!![]}];}return db[_0x66eb('0x32')][_0x66eb('0x48')](_0x1f52eb);})[_0x66eb('0x21')](function(_0xf1c045){_0xaf3ddc['rows']=_0xf1c045;return _0xaf3ddc;})[_0x66eb('0x21')](respondWithFilteredResult(_0x480ad8,_0x1f52eb))[_0x66eb('0x49')](handleError(_0x480ad8,null));};exports[_0x66eb('0x4a')]=function(_0x259d9e,_0x5c3184){var _0x33193c={'raw':!![],'where':{'id':_0x259d9e[_0x66eb('0x4b')]['id']}},_0x241ab3={};_0x241ab3[_0x66eb('0x3b')]=_[_0x66eb('0x37')](db[_0x66eb('0x32')][_0x66eb('0x33')]);_0x241ab3['query']=_['keys'](_0x259d9e[_0x66eb('0x36')]);_0x241ab3[_0x66eb('0x40')]=_[_0x66eb('0x39')](_0x241ab3[_0x66eb('0x3b')],_0x241ab3[_0x66eb('0x36')]);_0x33193c[_0x66eb('0x38')]=_['intersection'](_0x241ab3['model'],qs['fields'](_0x259d9e[_0x66eb('0x36')][_0x66eb('0x3a')]));_0x33193c[_0x66eb('0x38')]=_0x33193c[_0x66eb('0x38')][_0x66eb('0x4c')]?_0x33193c[_0x66eb('0x38')]:_0x241ab3[_0x66eb('0x3b')];if(_0x259d9e['query']['includeAll']){_0x33193c['include']=[{'all':!![]}];}_0x33193c=_[_0x66eb('0x2b')]({},_0x33193c,_0x259d9e[_0x66eb('0x45')]);return db['Pause']['find'](_0x33193c)['then'](handleEntityNotFound(_0x5c3184,null))[_0x66eb('0x21')](respondWithResult(_0x5c3184,null))[_0x66eb('0x49')](handleError(_0x5c3184,null));};exports[_0x66eb('0x4d')]=function(_0x4d32d8,_0x3b9135){return db['Pause'][_0x66eb('0x4d')](_0x4d32d8[_0x66eb('0x2c')],{})[_0x66eb('0x21')](function(_0x42979d){var _0x280968=_0x4d32d8[_0x66eb('0x4e')]['get']({'plain':!![]});if(!_0x280968)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x280968['role']===_0x66eb('0x4e')){var _0x18aa21=_0x42979d[_0x66eb('0x23')]({'plain':!![]});var _0x3ee079=_0x66eb('0x24');return db[_0x66eb('0x4f')]['find']({'where':{'name':_0x3ee079,'userProfileId':_0x280968[_0x66eb('0x50')]},'raw':!![]})['then'](function(_0xa20196){if(_0xa20196&&_0xa20196[_0x66eb('0x51')]===0x0){return db['UserProfileResource']['create']({'name':_0x18aa21[_0x66eb('0x29')],'resourceId':_0x18aa21['id'],'type':_0xa20196[_0x66eb('0x29')],'sectionId':_0xa20196['id']},{})[_0x66eb('0x21')](function(){return _0x42979d;});}else{return _0x42979d;}})['catch'](function(_0x68ea09){logger[_0x66eb('0x27')](_0x66eb('0x52'),_0x68ea09);throw _0x68ea09;});}return _0x42979d;})[_0x66eb('0x21')](respondWithResult(_0x3b9135,0xc9))[_0x66eb('0x49')](handleError(_0x3b9135,null));};exports[_0x66eb('0x20')]=function(_0x3376f8,_0x511930){if(_0x3376f8[_0x66eb('0x2c')]['id']){delete _0x3376f8[_0x66eb('0x2c')]['id'];}return db['Pause'][_0x66eb('0x53')]({'where':{'id':_0x3376f8[_0x66eb('0x4b')]['id']}})[_0x66eb('0x21')](handleEntityNotFound(_0x511930,null))[_0x66eb('0x21')](saveUpdates(_0x3376f8[_0x66eb('0x2c')],null))['then'](respondWithResult(_0x511930,null))[_0x66eb('0x49')](handleError(_0x511930,null));};exports['destroy']=function(_0x192ea6,_0x1553eb){return db[_0x66eb('0x32')][_0x66eb('0x53')]({'where':{'id':_0x192ea6[_0x66eb('0x4b')]['id']}})[_0x66eb('0x21')](handleEntityNotFound(_0x1553eb,null))['then'](removeEntity(_0x1553eb,null))['catch'](handleError(_0x1553eb,null));};