18104669b58bbf844a3be9fe07e2497fbbb5d45e
[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 _0x4371=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','sendStatus','end','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','Pauses','UserProfileResource','status','error','stack','name','index','Pause','rawAttributes','fieldName','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','includeAll','include','rows','catch','show','params','length','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','find','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','squel','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x227da1,_0x57c68a){var _0x352abb=function(_0x22c7b1){while(--_0x22c7b1){_0x227da1['push'](_0x227da1['shift']());}};_0x352abb(++_0x57c68a);}(_0x4371,0x8a));var _0x1437=function(_0x1ae4a9,_0x4c0ed9){_0x1ae4a9=_0x1ae4a9-0x0;var _0x54d0b0=_0x4371[_0x1ae4a9];return _0x54d0b0;};'use strict';var pdf=require(_0x1437('0x0'));var emlformat=require(_0x1437('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x1437('0x2'));var jsonpatch=require(_0x1437('0x3'));var rp=require(_0x1437('0x4'));var moment=require(_0x1437('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x1437('0x6'));var sox=require(_0x1437('0x7'));var csv=require(_0x1437('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x1437('0x9'));var crypto=require('crypto');var jsforce=require(_0x1437('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x1437('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x1437('0xb'));var authService=require(_0x1437('0xc'));var qs=require(_0x1437('0xd'));var as=require(_0x1437('0xe'));var hardwareService=require(_0x1437('0xf'));var logger=require(_0x1437('0x10'))('api');var utils=require('../../config/utils');var config=require(_0x1437('0x11'));var licenseUtil=require(_0x1437('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x547d01,_0x294e07){_0x294e07=_0x294e07||0xcc;return function(_0x23c6b6){if(_0x23c6b6){return _0x547d01[_0x1437('0x13')](_0x294e07);}return _0x547d01['status'](_0x294e07)[_0x1437('0x14')]();};}function respondWithResult(_0x6d2142,_0x1ada06){_0x1ada06=_0x1ada06||0xc8;return function(_0x457e88){if(_0x457e88){return _0x6d2142['status'](_0x1ada06)['json'](_0x457e88);}};}function respondWithFilteredResult(_0x3834fd,_0x33da0b){return function(_0x3a72ba){if(_0x3a72ba){var _0x260d7c=_0x3a72ba[_0x1437('0x15')],_0x362de5=_0x33da0b[_0x1437('0x16')],_0x46961b=_0x33da0b[_0x1437('0x16')]+_0x33da0b[_0x1437('0x17')],_0x51fc60;if(_0x46961b>=_0x260d7c){_0x46961b=_0x260d7c;_0x51fc60=0xc8;}else{_0x51fc60=0xce;}_0x3834fd['status'](_0x51fc60);return _0x3834fd[_0x1437('0x18')](_0x1437('0x19'),_0x362de5+'-'+_0x46961b+'/'+_0x260d7c)['json'](_0x3a72ba);}return null;};}function patchUpdates(_0x2a86a6){return function(_0x1e8061){try{jsonpatch[_0x1437('0x1a')](_0x1e8061,_0x2a86a6,!![]);}catch(_0x1131bb){return BPromise[_0x1437('0x1b')](_0x1131bb);}return _0x1e8061[_0x1437('0x1c')]();};}function saveUpdates(_0x2c9a4d,_0x575608){return function(_0x54f26b){if(_0x54f26b){return _0x54f26b['update'](_0x2c9a4d)[_0x1437('0x1d')](function(_0x1940ef){return _0x1940ef;});}return null;};}function removeEntity(_0x3be276,_0x36a429){return function(_0x16dc14){if(_0x16dc14){return _0x16dc14[_0x1437('0x1e')]()[_0x1437('0x1d')](function(){var _0x2d7a75=_0x16dc14['get']({'plain':!![]});var _0x2cfc72=_0x1437('0x1f');return db[_0x1437('0x20')][_0x1437('0x1e')]({'where':{'type':_0x2cfc72,'resourceId':_0x2d7a75['id']}})[_0x1437('0x1d')](function(){return _0x16dc14;});})[_0x1437('0x1d')](function(){_0x3be276[_0x1437('0x21')](0xcc)[_0x1437('0x14')]();});}};}function handleEntityNotFound(_0x43b1af,_0x33f627){return function(_0xdcfdcf){if(!_0xdcfdcf){_0x43b1af[_0x1437('0x13')](0x194);}return _0xdcfdcf;};}function handleError(_0x432667,_0x2d1ff7){_0x2d1ff7=_0x2d1ff7||0x1f4;return function(_0x1ae1fa){logger[_0x1437('0x22')](_0x1ae1fa[_0x1437('0x23')]);if(_0x1ae1fa[_0x1437('0x24')]){delete _0x1ae1fa['name'];}_0x432667[_0x1437('0x21')](_0x2d1ff7)['send'](_0x1ae1fa);};}exports[_0x1437('0x25')]=function(_0x2686c8,_0x1e6019){var _0x4f19e6={},_0x7d2a4d={},_0x18c56f={'count':0x0,'rows':[]};var _0x5718b1=_['map'](db[_0x1437('0x26')][_0x1437('0x27')],function(_0x47ac91){return{'name':_0x47ac91[_0x1437('0x28')],'type':_0x47ac91['type']['key']};});_0x7d2a4d['model']=_['map'](_0x5718b1,'name');_0x7d2a4d[_0x1437('0x29')]=_[_0x1437('0x2a')](_0x2686c8['query']);_0x7d2a4d[_0x1437('0x2b')]=_[_0x1437('0x2c')](_0x7d2a4d[_0x1437('0x2d')],_0x7d2a4d[_0x1437('0x29')]);_0x4f19e6[_0x1437('0x2e')]=_[_0x1437('0x2c')](_0x7d2a4d[_0x1437('0x2d')],qs[_0x1437('0x2f')](_0x2686c8['query'][_0x1437('0x2f')]));_0x4f19e6[_0x1437('0x2e')]=_0x4f19e6['attributes']['length']?_0x4f19e6[_0x1437('0x2e')]:_0x7d2a4d[_0x1437('0x2d')];if(!_0x2686c8[_0x1437('0x29')][_0x1437('0x30')](_0x1437('0x31'))){_0x4f19e6[_0x1437('0x17')]=qs[_0x1437('0x17')](_0x2686c8[_0x1437('0x29')][_0x1437('0x17')]);_0x4f19e6['offset']=qs['offset'](_0x2686c8['query'][_0x1437('0x16')]);}_0x4f19e6[_0x1437('0x32')]=qs[_0x1437('0x33')](_0x2686c8[_0x1437('0x29')][_0x1437('0x33')]);_0x4f19e6[_0x1437('0x34')]=qs[_0x1437('0x2b')](_[_0x1437('0x35')](_0x2686c8[_0x1437('0x29')],_0x7d2a4d['filters']),_0x5718b1);if(_0x2686c8[_0x1437('0x29')][_0x1437('0x36')]){_0x4f19e6['where']=_[_0x1437('0x37')](_0x4f19e6[_0x1437('0x34')],{'$or':_[_0x1437('0x38')](_0x5718b1,function(_0x18052e){if(_0x18052e[_0x1437('0x39')]!==_0x1437('0x3a')){var _0x27249a={};_0x27249a[_0x18052e[_0x1437('0x24')]]={'$like':'%'+_0x2686c8[_0x1437('0x29')]['filter']+'%'};return _0x27249a;}})});}_0x4f19e6=_[_0x1437('0x37')]({},_0x4f19e6,_0x2686c8['options']);var _0x555a29={'where':_0x4f19e6[_0x1437('0x34')]};return db[_0x1437('0x26')][_0x1437('0x15')](_0x555a29)['then'](function(_0x11a9f7){_0x18c56f[_0x1437('0x15')]=_0x11a9f7;if(_0x2686c8[_0x1437('0x29')][_0x1437('0x3b')]){_0x4f19e6[_0x1437('0x3c')]=[{'all':!![]}];}return db['Pause']['findAll'](_0x4f19e6);})[_0x1437('0x1d')](function(_0x29d927){_0x18c56f[_0x1437('0x3d')]=_0x29d927;return _0x18c56f;})[_0x1437('0x1d')](respondWithFilteredResult(_0x1e6019,_0x4f19e6))[_0x1437('0x3e')](handleError(_0x1e6019,null));};exports[_0x1437('0x3f')]=function(_0xb75762,_0x517f71){var _0x4f3cf9={'raw':!![],'where':{'id':_0xb75762[_0x1437('0x40')]['id']}},_0x3bb6d9={};_0x3bb6d9[_0x1437('0x2d')]=_['keys'](db[_0x1437('0x26')][_0x1437('0x27')]);_0x3bb6d9['query']=_['keys'](_0xb75762['query']);_0x3bb6d9[_0x1437('0x2b')]=_[_0x1437('0x2c')](_0x3bb6d9[_0x1437('0x2d')],_0x3bb6d9[_0x1437('0x29')]);_0x4f3cf9[_0x1437('0x2e')]=_['intersection'](_0x3bb6d9['model'],qs['fields'](_0xb75762[_0x1437('0x29')][_0x1437('0x2f')]));_0x4f3cf9['attributes']=_0x4f3cf9[_0x1437('0x2e')][_0x1437('0x41')]?_0x4f3cf9[_0x1437('0x2e')]:_0x3bb6d9[_0x1437('0x2d')];if(_0xb75762[_0x1437('0x29')]['includeAll']){_0x4f3cf9['include']=[{'all':!![]}];}_0x4f3cf9=_[_0x1437('0x37')]({},_0x4f3cf9,_0xb75762['options']);return db['Pause']['find'](_0x4f3cf9)[_0x1437('0x1d')](handleEntityNotFound(_0x517f71,null))['then'](respondWithResult(_0x517f71,null))['catch'](handleError(_0x517f71,null));};exports[_0x1437('0x42')]=function(_0x2b339c,_0x2576e3){return db['Pause'][_0x1437('0x42')](_0x2b339c['body'],{})[_0x1437('0x1d')](function(_0x50247d){var _0x41c281=_0x2b339c['user'][_0x1437('0x43')]({'plain':!![]});if(!_0x41c281)throw new Error(_0x1437('0x44'));if(_0x41c281['role']===_0x1437('0x45')){var _0x55d78b=_0x50247d[_0x1437('0x43')]({'plain':!![]});var _0x4c9b2c=_0x1437('0x1f');return db['UserProfileSection']['find']({'where':{'name':_0x4c9b2c,'userProfileId':_0x41c281[_0x1437('0x46')]},'raw':!![]})[_0x1437('0x1d')](function(_0x1f8a5d){if(_0x1f8a5d&&_0x1f8a5d[_0x1437('0x47')]===0x0){return db[_0x1437('0x20')][_0x1437('0x42')]({'name':_0x55d78b[_0x1437('0x24')],'resourceId':_0x55d78b['id'],'type':_0x1f8a5d[_0x1437('0x24')],'sectionId':_0x1f8a5d['id']},{})['then'](function(){return _0x50247d;});}else{return _0x50247d;}})['catch'](function(_0x3afb1e){logger[_0x1437('0x22')](_0x1437('0x48'),_0x3afb1e);throw _0x3afb1e;});}return _0x50247d;})[_0x1437('0x1d')](respondWithResult(_0x2576e3,0xc9))['catch'](handleError(_0x2576e3,null));};exports[_0x1437('0x49')]=function(_0xfbb072,_0x363195){if(_0xfbb072['body']['id']){delete _0xfbb072[_0x1437('0x4a')]['id'];}return db[_0x1437('0x26')][_0x1437('0x4b')]({'where':{'id':_0xfbb072[_0x1437('0x40')]['id']}})[_0x1437('0x1d')](handleEntityNotFound(_0x363195,null))[_0x1437('0x1d')](saveUpdates(_0xfbb072[_0x1437('0x4a')],null))[_0x1437('0x1d')](respondWithResult(_0x363195,null))[_0x1437('0x3e')](handleError(_0x363195,null));};exports[_0x1437('0x1e')]=function(_0x2bec98,_0x35e23c){return db[_0x1437('0x26')][_0x1437('0x4b')]({'where':{'id':_0x2bec98[_0x1437('0x40')]['id']}})[_0x1437('0x1d')](handleEntityNotFound(_0x35e23c,null))[_0x1437('0x1d')](removeEntity(_0x35e23c,null))[_0x1437('0x3e')](handleError(_0x35e23c,null));};