91401657322e18e390c4a817d88ccb9c6e491541
[motion2.git] / server / api / interval / interval.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 _0x2fa9=['addIntervals','bulkCreate','findAll','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','apply','reject','save','update','then','destroy','get','UserProfileResource','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','sort','pick','filter','merge','where','VIRTUAL','options','count','includeAll','rows','catch','params','length','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Intervals','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addInterval','IntervalId','getIntervals','findOne','order'];(function(_0x7e2eb0,_0x17cd58){var _0xd92de4=function(_0x5d005b){while(--_0x5d005b){_0x7e2eb0['push'](_0x7e2eb0['shift']());}};_0xd92de4(++_0x17cd58);}(_0x2fa9,0x167));var _0x92fa=function(_0x57fe29,_0x5b996e){_0x57fe29=_0x57fe29-0x0;var _0x95373f=_0x2fa9[_0x57fe29];return _0x95373f;};'use strict';var pdf=require(_0x92fa('0x0'));var emlformat=require(_0x92fa('0x1'));var rimraf=require(_0x92fa('0x2'));var zipdir=require(_0x92fa('0x3'));var jsonpatch=require(_0x92fa('0x4'));var rp=require('request-promise');var moment=require(_0x92fa('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x92fa('0x6'));var util=require(_0x92fa('0x7'));var path=require('path');var sox=require(_0x92fa('0x8'));var csv=require(_0x92fa('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x92fa('0xa'));var crypto=require('crypto');var jsforce=require(_0x92fa('0xb'));var deskjs=require(_0x92fa('0xc'));var toCsv=require(_0x92fa('0x9'));var querystring=require(_0x92fa('0xd'));var Papa=require(_0x92fa('0xe'));var Redis=require(_0x92fa('0xf'));var authService=require(_0x92fa('0x10'));var qs=require(_0x92fa('0x11'));var as=require(_0x92fa('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x92fa('0x13'));var utils=require(_0x92fa('0x14'));var config=require(_0x92fa('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x92fa('0x16'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x25b763,_0x46163a){_0x46163a=_0x46163a||0xcc;return function(_0x3d5bc6){if(_0x3d5bc6){return _0x25b763[_0x92fa('0x17')](_0x46163a);}return _0x25b763[_0x92fa('0x18')](_0x46163a)[_0x92fa('0x19')]();};}function respondWithResult(_0x214bd3,_0x212238){_0x212238=_0x212238||0xc8;return function(_0x4aacd7){if(_0x4aacd7){return _0x214bd3[_0x92fa('0x18')](_0x212238)[_0x92fa('0x1a')](_0x4aacd7);}};}function respondWithFilteredResult(_0x2a64bc,_0x321270){return function(_0x12ee52){if(_0x12ee52){var _0xdfd2fb=_0x12ee52['count'],_0x1d171d=_0x321270[_0x92fa('0x1b')],_0x3e2c9e=_0x321270[_0x92fa('0x1b')]+_0x321270['limit'],_0x5d3cbc;if(_0x3e2c9e>=_0xdfd2fb){_0x3e2c9e=_0xdfd2fb;_0x5d3cbc=0xc8;}else{_0x5d3cbc=0xce;}_0x2a64bc[_0x92fa('0x18')](_0x5d3cbc);return _0x2a64bc[_0x92fa('0x1c')]('Content-Range',_0x1d171d+'-'+_0x3e2c9e+'/'+_0xdfd2fb)[_0x92fa('0x1a')](_0x12ee52);}return null;};}function patchUpdates(_0x4930a4){return function(_0x2999f4){try{jsonpatch[_0x92fa('0x1d')](_0x2999f4,_0x4930a4,!![]);}catch(_0x5bb791){return BPromise[_0x92fa('0x1e')](_0x5bb791);}return _0x2999f4[_0x92fa('0x1f')]();};}function saveUpdates(_0x2ba14e,_0x5c3aef){return function(_0x377a5e){if(_0x377a5e){return _0x377a5e[_0x92fa('0x20')](_0x2ba14e)[_0x92fa('0x21')](function(_0x1f29f4){return _0x1f29f4;});}return null;};}function removeEntity(_0x5b69f0,_0x3cb05d){return function(_0x36efd8){if(_0x36efd8){return _0x36efd8[_0x92fa('0x22')]()[_0x92fa('0x21')](function(){var _0x277bd6=_0x36efd8[_0x92fa('0x23')]({'plain':!![]});var _0x3f9e33='Intervals';return db[_0x92fa('0x24')][_0x92fa('0x22')]({'where':{'type':_0x3f9e33,'resourceId':_0x277bd6['id']}})[_0x92fa('0x21')](function(){return _0x36efd8;});})[_0x92fa('0x21')](function(){_0x5b69f0['status'](0xcc)[_0x92fa('0x19')]();});}};}function handleEntityNotFound(_0x15878f,_0x37b368){return function(_0x470daa){if(!_0x470daa){_0x15878f[_0x92fa('0x17')](0x194);}return _0x470daa;};}function handleError(_0x306380,_0x5ac00f){_0x5ac00f=_0x5ac00f||0x1f4;return function(_0x2c5cc8){logger['error'](_0x2c5cc8[_0x92fa('0x25')]);if(_0x2c5cc8[_0x92fa('0x26')]){delete _0x2c5cc8[_0x92fa('0x26')];}_0x306380['status'](_0x5ac00f)[_0x92fa('0x27')](_0x2c5cc8);};}exports[_0x92fa('0x28')]=function(_0x575c44,_0x85ac7a){var _0x6b15a0={},_0x7cb20e={},_0x226f5a={'count':0x0,'rows':[]};var _0x5da50f=_[_0x92fa('0x29')](db[_0x92fa('0x2a')][_0x92fa('0x2b')],function(_0x35f9fc){return{'name':_0x35f9fc[_0x92fa('0x2c')],'type':_0x35f9fc[_0x92fa('0x2d')]['key']};});_0x7cb20e[_0x92fa('0x2e')]=_[_0x92fa('0x29')](_0x5da50f,_0x92fa('0x26'));_0x7cb20e[_0x92fa('0x2f')]=_[_0x92fa('0x30')](_0x575c44[_0x92fa('0x2f')]);_0x7cb20e[_0x92fa('0x31')]=_[_0x92fa('0x32')](_0x7cb20e[_0x92fa('0x2e')],_0x7cb20e[_0x92fa('0x2f')]);_0x6b15a0[_0x92fa('0x33')]=_[_0x92fa('0x32')](_0x7cb20e[_0x92fa('0x2e')],qs[_0x92fa('0x34')](_0x575c44[_0x92fa('0x2f')][_0x92fa('0x34')]));_0x6b15a0['attributes']=_0x6b15a0[_0x92fa('0x33')]['length']?_0x6b15a0[_0x92fa('0x33')]:_0x7cb20e['model'];if(!_0x575c44[_0x92fa('0x2f')][_0x92fa('0x35')](_0x92fa('0x36'))){_0x6b15a0[_0x92fa('0x37')]=qs['limit'](_0x575c44[_0x92fa('0x2f')]['limit']);_0x6b15a0[_0x92fa('0x1b')]=qs['offset'](_0x575c44[_0x92fa('0x2f')][_0x92fa('0x1b')]);}_0x6b15a0['order']=qs[_0x92fa('0x38')](_0x575c44[_0x92fa('0x2f')][_0x92fa('0x38')]);_0x6b15a0['where']=qs[_0x92fa('0x31')](_[_0x92fa('0x39')](_0x575c44[_0x92fa('0x2f')],_0x7cb20e[_0x92fa('0x31')]),_0x5da50f);if(_0x575c44[_0x92fa('0x2f')][_0x92fa('0x3a')]){_0x6b15a0['where']=_[_0x92fa('0x3b')](_0x6b15a0[_0x92fa('0x3c')],{'$or':_[_0x92fa('0x29')](_0x5da50f,function(_0x24e7c6){if(_0x24e7c6[_0x92fa('0x2d')]!==_0x92fa('0x3d')){var _0x4f5520={};_0x4f5520[_0x24e7c6[_0x92fa('0x26')]]={'$like':'%'+_0x575c44['query'][_0x92fa('0x3a')]+'%'};return _0x4f5520;}})});}_0x6b15a0=_[_0x92fa('0x3b')]({},_0x6b15a0,_0x575c44[_0x92fa('0x3e')]);var _0x203193={'where':_0x6b15a0['where']};return db[_0x92fa('0x2a')][_0x92fa('0x3f')](_0x203193)[_0x92fa('0x21')](function(_0x172752){_0x226f5a['count']=_0x172752;if(_0x575c44[_0x92fa('0x2f')][_0x92fa('0x40')]){_0x6b15a0['include']=[{'all':!![]}];}return db[_0x92fa('0x2a')]['findAll'](_0x6b15a0);})[_0x92fa('0x21')](function(_0x3e8d1d){_0x226f5a[_0x92fa('0x41')]=_0x3e8d1d;return _0x226f5a;})['then'](respondWithFilteredResult(_0x85ac7a,_0x6b15a0))[_0x92fa('0x42')](handleError(_0x85ac7a,null));};exports['show']=function(_0x4660a0,_0x3d8763){var _0x2f0ad9={'raw':!![],'where':{'id':_0x4660a0[_0x92fa('0x43')]['id']}},_0xffa4d7={};_0xffa4d7[_0x92fa('0x2e')]=_['keys'](db[_0x92fa('0x2a')][_0x92fa('0x2b')]);_0xffa4d7[_0x92fa('0x2f')]=_[_0x92fa('0x30')](_0x4660a0[_0x92fa('0x2f')]);_0xffa4d7[_0x92fa('0x31')]=_[_0x92fa('0x32')](_0xffa4d7[_0x92fa('0x2e')],_0xffa4d7[_0x92fa('0x2f')]);_0x2f0ad9[_0x92fa('0x33')]=_['intersection'](_0xffa4d7[_0x92fa('0x2e')],qs[_0x92fa('0x34')](_0x4660a0[_0x92fa('0x2f')]['fields']));_0x2f0ad9['attributes']=_0x2f0ad9[_0x92fa('0x33')][_0x92fa('0x44')]?_0x2f0ad9[_0x92fa('0x33')]:_0xffa4d7[_0x92fa('0x2e')];if(_0x4660a0[_0x92fa('0x2f')]['includeAll']){_0x2f0ad9[_0x92fa('0x45')]=[{'all':!![]}];}_0x2f0ad9=_['merge']({},_0x2f0ad9,_0x4660a0[_0x92fa('0x3e')]);return db[_0x92fa('0x2a')][_0x92fa('0x46')](_0x2f0ad9)['then'](handleEntityNotFound(_0x3d8763,null))[_0x92fa('0x21')](respondWithResult(_0x3d8763,null))['catch'](handleError(_0x3d8763,null));};exports[_0x92fa('0x47')]=function(_0x31dc8e,_0x242a84){return db[_0x92fa('0x2a')]['create'](_0x31dc8e['body'],{})[_0x92fa('0x21')](function(_0x1755ce){var _0x2b8c91=_0x31dc8e[_0x92fa('0x48')][_0x92fa('0x23')]({'plain':!![]});if(!_0x2b8c91)throw new Error(_0x92fa('0x49'));if(_0x2b8c91[_0x92fa('0x4a')]===_0x92fa('0x48')){var _0x261078=_0x1755ce['get']({'plain':!![]});var _0x1d1fcd=_0x92fa('0x4b');return db[_0x92fa('0x4c')]['find']({'where':{'name':_0x1d1fcd,'userProfileId':_0x2b8c91[_0x92fa('0x4d')]},'raw':!![]})[_0x92fa('0x21')](function(_0x21f418){if(_0x21f418&&_0x21f418['autoAssociation']===0x0){return db[_0x92fa('0x24')][_0x92fa('0x47')]({'name':_0x261078[_0x92fa('0x26')],'resourceId':_0x261078['id'],'type':_0x21f418['name'],'sectionId':_0x21f418['id']},{})[_0x92fa('0x21')](function(){return _0x1755ce;});}else{return _0x1755ce;}})['catch'](function(_0x227acd){logger[_0x92fa('0x4e')](_0x92fa('0x4f'),_0x227acd);throw _0x227acd;});}return _0x1755ce;})[_0x92fa('0x21')](respondWithResult(_0x242a84,0xc9))[_0x92fa('0x42')](handleError(_0x242a84,null));};exports[_0x92fa('0x20')]=function(_0x37f1bf,_0x1a99d3){if(_0x37f1bf['body']['id']){delete _0x37f1bf[_0x92fa('0x50')]['id'];}return db[_0x92fa('0x2a')]['find']({'where':{'id':_0x37f1bf[_0x92fa('0x43')]['id']}})[_0x92fa('0x21')](handleEntityNotFound(_0x1a99d3,null))[_0x92fa('0x21')](saveUpdates(_0x37f1bf[_0x92fa('0x50')],null))[_0x92fa('0x21')](respondWithResult(_0x1a99d3,null))['catch'](handleError(_0x1a99d3,null));};exports[_0x92fa('0x22')]=function(_0x3c0632,_0xfb2775){return db['Interval']['find']({'where':{'id':_0x3c0632['params']['id']}})['then'](handleEntityNotFound(_0xfb2775,null))[_0x92fa('0x21')](removeEntity(_0xfb2775,null))[_0x92fa('0x42')](handleError(_0xfb2775,null));};exports[_0x92fa('0x51')]=function(_0x31ba5e,_0x6e1437,_0x5fbf1a){if(_0x31ba5e['body']['id']){delete _0x31ba5e[_0x92fa('0x50')]['id'];}return db['Interval'][_0x92fa('0x46')]({'where':{'id':_0x31ba5e[_0x92fa('0x43')]['id']}})[_0x92fa('0x21')](handleEntityNotFound(_0x6e1437,null))[_0x92fa('0x21')](function(_0x2fee62){if(_0x2fee62){_0x31ba5e[_0x92fa('0x50')][_0x92fa('0x52')]=_0x2fee62['id'];return db[_0x92fa('0x2a')][_0x92fa('0x47')](_0x31ba5e[_0x92fa('0x50')]);}})[_0x92fa('0x21')](respondWithResult(_0x6e1437,null))['catch'](handleError(_0x6e1437,null));};exports[_0x92fa('0x53')]=function(_0x2ccde5,_0x5c5d33,_0x677558){var _0x3b62a3={};var _0x1180a0={};var _0x1ee7fc;var _0x1c12de;return db['Interval'][_0x92fa('0x54')]({'where':{'id':_0x2ccde5[_0x92fa('0x43')]['id']}})['then'](handleEntityNotFound(_0x5c5d33,null))[_0x92fa('0x21')](function(_0x21087b){if(_0x21087b){_0x1ee7fc=_0x21087b;_0x1180a0['model']=_['keys'](db[_0x92fa('0x2a')][_0x92fa('0x2b')]);_0x1180a0[_0x92fa('0x2f')]=_['keys'](_0x2ccde5['query']);_0x1180a0[_0x92fa('0x31')]=_[_0x92fa('0x32')](_0x1180a0[_0x92fa('0x2e')],_0x1180a0['query']);_0x3b62a3['attributes']=_[_0x92fa('0x32')](_0x1180a0[_0x92fa('0x2e')],qs[_0x92fa('0x34')](_0x2ccde5[_0x92fa('0x2f')][_0x92fa('0x34')]));_0x3b62a3['attributes']=_0x3b62a3[_0x92fa('0x33')][_0x92fa('0x44')]?_0x3b62a3[_0x92fa('0x33')]:_0x1180a0[_0x92fa('0x2e')];_0x3b62a3[_0x92fa('0x55')]=qs[_0x92fa('0x38')](_0x2ccde5[_0x92fa('0x2f')][_0x92fa('0x38')]);_0x3b62a3[_0x92fa('0x3c')]=qs[_0x92fa('0x31')](_[_0x92fa('0x39')](_0x2ccde5['query'],_0x1180a0[_0x92fa('0x31')]));if(_0x2ccde5['query'][_0x92fa('0x3a')]){_0x3b62a3['where']=_[_0x92fa('0x3b')](_0x3b62a3['where'],{'$or':_['map'](_0x3b62a3[_0x92fa('0x33')],function(_0x536555){var _0x2be0c0={};_0x2be0c0[_0x536555]={'$like':'%'+_0x2ccde5[_0x92fa('0x2f')][_0x92fa('0x3a')]+'%'};return _0x2be0c0;})});}_0x3b62a3=_[_0x92fa('0x3b')]({},_0x3b62a3,_0x2ccde5[_0x92fa('0x3e')]);return _0x1ee7fc[_0x92fa('0x53')](_0x3b62a3);}})['then'](function(_0x456442){if(_0x456442){_0x1c12de=_0x456442['length'];if(!_0x2ccde5[_0x92fa('0x2f')][_0x92fa('0x35')](_0x92fa('0x36'))){_0x3b62a3[_0x92fa('0x37')]=qs['limit'](_0x2ccde5[_0x92fa('0x2f')]['limit']);_0x3b62a3[_0x92fa('0x1b')]=qs[_0x92fa('0x1b')](_0x2ccde5[_0x92fa('0x2f')]['offset']);}return _0x1ee7fc[_0x92fa('0x53')](_0x3b62a3);}})[_0x92fa('0x21')](function(_0x91c036){if(_0x91c036){return _0x91c036?{'count':_0x1c12de,'rows':_0x91c036}:null;}})['then'](respondWithResult(_0x5c5d33,null))[_0x92fa('0x42')](handleError(_0x5c5d33,null));};exports[_0x92fa('0x56')]=function(_0x5827a8,_0x34b06f,_0x357ca3){return db[_0x92fa('0x2a')][_0x92fa('0x54')]({'where':{'id':_0x5827a8['params']['id']}})['then'](handleEntityNotFound(_0x34b06f,null))[_0x92fa('0x21')](function(_0x3439ad){if(_0x3439ad){return db['sequelize']['transaction'](function(_0x3b33ae){return db['Interval'][_0x92fa('0x22')]({'where':{'IntervalId':_0x5827a8[_0x92fa('0x43')]['id']},'transaction':_0x3b33ae})['then'](function(_0x46b403){var _0x57f674=_[_0x92fa('0x29')](_0x5827a8[_0x92fa('0x50')],function(_0x276d75){delete _0x276d75['id'];_0x276d75[_0x92fa('0x52')]=_0x5827a8['params']['id'];return _0x276d75;});return db[_0x92fa('0x2a')][_0x92fa('0x57')](_0x57f674,{'transaction':_0x3b33ae});});})[_0x92fa('0x21')](function(){return db['Interval'][_0x92fa('0x58')]({'where':{'IntervalId':_0x5827a8[_0x92fa('0x43')]['id']}});});}})[_0x92fa('0x21')](respondWithResult(_0x34b06f,null))[_0x92fa('0x42')](handleError(_0x34b06f,null));};