Built motion from commit c1aa34a0.|2.6.28
[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 _0x9467=['IntervalId','getIntervals','addIntervals','findOne','sequelize','transaction','bulkCreate','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','then','destroy','get','UserProfileResource','error','name','index','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Interval','includeAll','include','findAll','show','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Intervals','UserProfileSection','userProfileId','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body'];(function(_0x4da319,_0x3e7cfe){var _0x144e4e=function(_0x2716ae){while(--_0x2716ae){_0x4da319['push'](_0x4da319['shift']());}};_0x144e4e(++_0x3e7cfe);}(_0x9467,0xb7));var _0x7946=function(_0x8bd603,_0xf0161b){_0x8bd603=_0x8bd603-0x0;var _0x3bea9d=_0x9467[_0x8bd603];return _0x3bea9d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7946('0x0'));var zipdir=require(_0x7946('0x1'));var jsonpatch=require(_0x7946('0x2'));var rp=require(_0x7946('0x3'));var moment=require(_0x7946('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x7946('0x5'));var sox=require(_0x7946('0x6'));var csv=require(_0x7946('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7946('0x8'));var _=require(_0x7946('0x9'));var squel=require(_0x7946('0xa'));var crypto=require(_0x7946('0xb'));var jsforce=require(_0x7946('0xc'));var deskjs=require(_0x7946('0xd'));var toCsv=require(_0x7946('0x7'));var querystring=require('querystring');var Papa=require(_0x7946('0xe'));var Redis=require(_0x7946('0xf'));var authService=require(_0x7946('0x10'));var qs=require(_0x7946('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7946('0x12'));var logger=require(_0x7946('0x13'))(_0x7946('0x14'));var utils=require('../../config/utils');var config=require(_0x7946('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x7946('0x16'))['db'];var extensions=require(_0x7946('0x17'));function respondWithStatusCode(_0x518775,_0x4da187){_0x4da187=_0x4da187||0xcc;return function(_0x112ccd){if(_0x112ccd){return _0x518775[_0x7946('0x18')](_0x4da187);}return _0x518775['status'](_0x4da187)[_0x7946('0x19')]();};}function respondWithResult(_0x410c6e,_0x1e827f){_0x1e827f=_0x1e827f||0xc8;return function(_0x520c39){if(_0x520c39){return _0x410c6e[_0x7946('0x1a')](_0x1e827f)[_0x7946('0x1b')](_0x520c39);}};}function respondWithFilteredResult(_0x56be6b,_0x1266cb){return function(_0x540d27){if(_0x540d27){var _0x42433b=typeof _0x1266cb['offset']===_0x7946('0x1c')&&typeof _0x1266cb[_0x7946('0x1d')]===_0x7946('0x1c');var _0x531fd9=_0x540d27['count'];var _0x499bee=_0x42433b?0x0:_0x1266cb[_0x7946('0x1e')];var _0x445084=_0x42433b?_0x540d27[_0x7946('0x1f')]:_0x1266cb[_0x7946('0x1e')]+_0x1266cb[_0x7946('0x1d')];var _0x5d8c53;if(_0x445084>=_0x531fd9){_0x445084=_0x531fd9;_0x5d8c53=0xc8;}else{_0x5d8c53=0xce;}_0x56be6b[_0x7946('0x1a')](_0x5d8c53);return _0x56be6b[_0x7946('0x20')](_0x7946('0x21'),_0x499bee+'-'+_0x445084+'/'+_0x531fd9)['json'](_0x540d27);}return null;};}function patchUpdates(_0x4a4528){return function(_0x448fb9){try{jsonpatch['apply'](_0x448fb9,_0x4a4528,!![]);}catch(_0x42cee9){return BPromise['reject'](_0x42cee9);}return _0x448fb9['save']();};}function saveUpdates(_0x2637da,_0x5f2632){return function(_0x592f9b){if(_0x592f9b){return _0x592f9b['update'](_0x2637da)[_0x7946('0x22')](function(_0x346c48){return _0x346c48;});}return null;};}function removeEntity(_0x10dec9,_0x4e0a07){return function(_0x2104e1){if(_0x2104e1){return _0x2104e1[_0x7946('0x23')]()[_0x7946('0x22')](function(){var _0x107499=_0x2104e1[_0x7946('0x24')]({'plain':!![]});var _0x2e2433='Intervals';return db[_0x7946('0x25')][_0x7946('0x23')]({'where':{'type':_0x2e2433,'resourceId':_0x107499['id']}})[_0x7946('0x22')](function(){return _0x2104e1;});})[_0x7946('0x22')](function(){_0x10dec9[_0x7946('0x1a')](0xcc)[_0x7946('0x19')]();});}};}function handleEntityNotFound(_0x12ef0d,_0x29963c){return function(_0x438730){if(!_0x438730){_0x12ef0d['sendStatus'](0x194);}return _0x438730;};}function handleError(_0x4586b2,_0x43ffab){_0x43ffab=_0x43ffab||0x1f4;return function(_0x289ded){logger[_0x7946('0x26')](_0x289ded['stack']);if(_0x289ded[_0x7946('0x27')]){delete _0x289ded[_0x7946('0x27')];}_0x4586b2[_0x7946('0x1a')](_0x43ffab)['send'](_0x289ded);};}exports[_0x7946('0x28')]=function(_0x5ec4bc,_0x44dc69){var _0xb7e5c0={},_0x2bfb53={},_0x2c9e3a={'count':0x0,'rows':[]};var _0x2e01bd=_['map'](db['Interval'][_0x7946('0x29')],function(_0x205c70){return{'name':_0x205c70[_0x7946('0x2a')],'type':_0x205c70[_0x7946('0x2b')][_0x7946('0x2c')]};});_0x2bfb53[_0x7946('0x2d')]=_[_0x7946('0x2e')](_0x2e01bd,_0x7946('0x27'));_0x2bfb53['query']=_[_0x7946('0x2f')](_0x5ec4bc[_0x7946('0x30')]);_0x2bfb53[_0x7946('0x31')]=_[_0x7946('0x32')](_0x2bfb53[_0x7946('0x2d')],_0x2bfb53[_0x7946('0x30')]);_0xb7e5c0['attributes']=_[_0x7946('0x32')](_0x2bfb53[_0x7946('0x2d')],qs[_0x7946('0x33')](_0x5ec4bc['query'][_0x7946('0x33')]));_0xb7e5c0[_0x7946('0x34')]=_0xb7e5c0['attributes'][_0x7946('0x35')]?_0xb7e5c0[_0x7946('0x34')]:_0x2bfb53[_0x7946('0x2d')];if(!_0x5ec4bc[_0x7946('0x30')][_0x7946('0x36')](_0x7946('0x37'))){_0xb7e5c0['limit']=qs['limit'](_0x5ec4bc[_0x7946('0x30')][_0x7946('0x1d')]);_0xb7e5c0[_0x7946('0x1e')]=qs[_0x7946('0x1e')](_0x5ec4bc[_0x7946('0x30')]['offset']);}_0xb7e5c0[_0x7946('0x38')]=qs['sort'](_0x5ec4bc[_0x7946('0x30')][_0x7946('0x39')]);_0xb7e5c0[_0x7946('0x3a')]=qs[_0x7946('0x31')](_[_0x7946('0x3b')](_0x5ec4bc[_0x7946('0x30')],_0x2bfb53[_0x7946('0x31')]),_0x2e01bd);if(_0x5ec4bc['query'][_0x7946('0x3c')]){_0xb7e5c0[_0x7946('0x3a')]=_[_0x7946('0x3d')](_0xb7e5c0[_0x7946('0x3a')],{'$or':_['map'](_0x2e01bd,function(_0x535bd2){if(_0x535bd2[_0x7946('0x2b')]!==_0x7946('0x3e')){var _0x243b0b={};_0x243b0b[_0x535bd2[_0x7946('0x27')]]={'$like':'%'+_0x5ec4bc[_0x7946('0x30')][_0x7946('0x3c')]+'%'};return _0x243b0b;}})});}_0xb7e5c0=_[_0x7946('0x3d')]({},_0xb7e5c0,_0x5ec4bc[_0x7946('0x3f')]);var _0x5d31aa={'where':_0xb7e5c0[_0x7946('0x3a')]};return db[_0x7946('0x40')][_0x7946('0x1f')](_0x5d31aa)[_0x7946('0x22')](function(_0x28ade8){_0x2c9e3a['count']=_0x28ade8;if(_0x5ec4bc[_0x7946('0x30')][_0x7946('0x41')]){_0xb7e5c0[_0x7946('0x42')]=[{'all':!![]}];}return db[_0x7946('0x40')][_0x7946('0x43')](_0xb7e5c0);})[_0x7946('0x22')](function(_0x336c51){_0x2c9e3a['rows']=_0x336c51;return _0x2c9e3a;})['then'](respondWithFilteredResult(_0x44dc69,_0xb7e5c0))['catch'](handleError(_0x44dc69,null));};exports[_0x7946('0x44')]=function(_0x1ffca2,_0x580a44){var _0x11dbeb={'raw':!![],'where':{'id':_0x1ffca2[_0x7946('0x45')]['id']}},_0xf4aa74={};_0xf4aa74[_0x7946('0x2d')]=_[_0x7946('0x2f')](db[_0x7946('0x40')][_0x7946('0x29')]);_0xf4aa74[_0x7946('0x30')]=_[_0x7946('0x2f')](_0x1ffca2[_0x7946('0x30')]);_0xf4aa74['filters']=_['intersection'](_0xf4aa74[_0x7946('0x2d')],_0xf4aa74[_0x7946('0x30')]);_0x11dbeb[_0x7946('0x34')]=_[_0x7946('0x32')](_0xf4aa74[_0x7946('0x2d')],qs[_0x7946('0x33')](_0x1ffca2['query']['fields']));_0x11dbeb[_0x7946('0x34')]=_0x11dbeb[_0x7946('0x34')][_0x7946('0x35')]?_0x11dbeb['attributes']:_0xf4aa74[_0x7946('0x2d')];if(_0x1ffca2['query']['includeAll']){_0x11dbeb[_0x7946('0x42')]=[{'all':!![]}];}_0x11dbeb=_[_0x7946('0x3d')]({},_0x11dbeb,_0x1ffca2['options']);return db[_0x7946('0x40')][_0x7946('0x46')](_0x11dbeb)[_0x7946('0x22')](handleEntityNotFound(_0x580a44,null))[_0x7946('0x22')](respondWithResult(_0x580a44,null))['catch'](handleError(_0x580a44,null));};exports['create']=function(_0x287526,_0x5eed7c){return db['Interval'][_0x7946('0x47')](_0x287526['body'],{})[_0x7946('0x22')](function(_0x15be66){var _0xa7a491=_0x287526['user']['get']({'plain':!![]});if(!_0xa7a491)throw new Error(_0x7946('0x48'));if(_0xa7a491['role']===_0x7946('0x49')){var _0x55fc44=_0x15be66[_0x7946('0x24')]({'plain':!![]});var _0x1bd3b5=_0x7946('0x4a');return db[_0x7946('0x4b')][_0x7946('0x46')]({'where':{'name':_0x1bd3b5,'userProfileId':_0xa7a491[_0x7946('0x4c')]},'raw':!![]})[_0x7946('0x22')](function(_0x9e9711){if(_0x9e9711&&_0x9e9711['autoAssociation']===0x0){return db[_0x7946('0x25')][_0x7946('0x47')]({'name':_0x55fc44[_0x7946('0x27')],'resourceId':_0x55fc44['id'],'type':_0x9e9711['name'],'sectionId':_0x9e9711['id']},{})[_0x7946('0x22')](function(){return _0x15be66;});}else{return _0x15be66;}})[_0x7946('0x4d')](function(_0x401266){logger['error'](_0x7946('0x4e'),_0x401266);throw _0x401266;});}return _0x15be66;})[_0x7946('0x22')](respondWithResult(_0x5eed7c,0xc9))['catch'](handleError(_0x5eed7c,null));};exports[_0x7946('0x4f')]=function(_0x5c8287,_0xaec39e){if(_0x5c8287[_0x7946('0x50')]['id']){delete _0x5c8287[_0x7946('0x50')]['id'];}return db['Interval'][_0x7946('0x46')]({'where':{'id':_0x5c8287['params']['id']}})[_0x7946('0x22')](handleEntityNotFound(_0xaec39e,null))[_0x7946('0x22')](saveUpdates(_0x5c8287['body'],null))[_0x7946('0x22')](respondWithResult(_0xaec39e,null))[_0x7946('0x4d')](handleError(_0xaec39e,null));};exports[_0x7946('0x23')]=function(_0x158732,_0x138903){return db['Interval'][_0x7946('0x46')]({'where':{'id':_0x158732[_0x7946('0x45')]['id']}})[_0x7946('0x22')](handleEntityNotFound(_0x138903,null))[_0x7946('0x22')](removeEntity(_0x138903,null))[_0x7946('0x4d')](handleError(_0x138903,null));};exports['addInterval']=function(_0x28b64a,_0x2854d6,_0x756726){if(_0x28b64a[_0x7946('0x50')]['id']){delete _0x28b64a[_0x7946('0x50')]['id'];}return db[_0x7946('0x40')]['find']({'where':{'id':_0x28b64a[_0x7946('0x45')]['id']}})[_0x7946('0x22')](handleEntityNotFound(_0x2854d6,null))['then'](function(_0x3085fe){if(_0x3085fe){_0x28b64a['body'][_0x7946('0x51')]=_0x3085fe['id'];return db[_0x7946('0x40')][_0x7946('0x47')](_0x28b64a[_0x7946('0x50')]);}})[_0x7946('0x22')](respondWithResult(_0x2854d6,null))[_0x7946('0x4d')](handleError(_0x2854d6,null));};exports[_0x7946('0x52')]=function(_0x328311,_0x194dd4,_0xeb6316){var _0x8accf6={};var _0x1ddef1={};var _0x45c9e6;var _0x5d1d78;return db[_0x7946('0x40')]['findOne']({'where':{'id':_0x328311[_0x7946('0x45')]['id']}})['then'](handleEntityNotFound(_0x194dd4,null))['then'](function(_0x476bb4){if(_0x476bb4){_0x45c9e6=_0x476bb4;_0x1ddef1[_0x7946('0x2d')]=_[_0x7946('0x2f')](db[_0x7946('0x40')][_0x7946('0x29')]);_0x1ddef1[_0x7946('0x30')]=_['keys'](_0x328311[_0x7946('0x30')]);_0x1ddef1[_0x7946('0x31')]=_[_0x7946('0x32')](_0x1ddef1[_0x7946('0x2d')],_0x1ddef1[_0x7946('0x30')]);_0x8accf6[_0x7946('0x34')]=_['intersection'](_0x1ddef1['model'],qs['fields'](_0x328311[_0x7946('0x30')][_0x7946('0x33')]));_0x8accf6[_0x7946('0x34')]=_0x8accf6[_0x7946('0x34')][_0x7946('0x35')]?_0x8accf6[_0x7946('0x34')]:_0x1ddef1['model'];_0x8accf6[_0x7946('0x38')]=qs['sort'](_0x328311[_0x7946('0x30')]['sort']);_0x8accf6[_0x7946('0x3a')]=qs[_0x7946('0x31')](_[_0x7946('0x3b')](_0x328311[_0x7946('0x30')],_0x1ddef1[_0x7946('0x31')]));if(_0x328311[_0x7946('0x30')]['filter']){_0x8accf6[_0x7946('0x3a')]=_[_0x7946('0x3d')](_0x8accf6[_0x7946('0x3a')],{'$or':_['map'](_0x8accf6[_0x7946('0x34')],function(_0x5da525){var _0x11cac4={};_0x11cac4[_0x5da525]={'$like':'%'+_0x328311[_0x7946('0x30')][_0x7946('0x3c')]+'%'};return _0x11cac4;})});}_0x8accf6=_['merge']({},_0x8accf6,_0x328311[_0x7946('0x3f')]);return _0x45c9e6[_0x7946('0x52')](_0x8accf6);}})[_0x7946('0x22')](function(_0x29a9fa){if(_0x29a9fa){_0x5d1d78=_0x29a9fa['length'];if(!_0x328311['query'][_0x7946('0x36')]('nolimit')){_0x8accf6[_0x7946('0x1d')]=qs[_0x7946('0x1d')](_0x328311[_0x7946('0x30')][_0x7946('0x1d')]);_0x8accf6['offset']=qs[_0x7946('0x1e')](_0x328311[_0x7946('0x30')][_0x7946('0x1e')]);}return _0x45c9e6[_0x7946('0x52')](_0x8accf6);}})['then'](function(_0x1380f4){if(_0x1380f4){return _0x1380f4?{'count':_0x5d1d78,'rows':_0x1380f4}:null;}})[_0x7946('0x22')](respondWithResult(_0x194dd4,null))[_0x7946('0x4d')](handleError(_0x194dd4,null));};exports[_0x7946('0x53')]=function(_0x514cbb,_0x2b687c,_0x160105){return db[_0x7946('0x40')][_0x7946('0x54')]({'where':{'id':_0x514cbb[_0x7946('0x45')]['id']}})['then'](handleEntityNotFound(_0x2b687c,null))[_0x7946('0x22')](function(_0x241e4f){if(_0x241e4f){return db[_0x7946('0x55')][_0x7946('0x56')](function(_0x424c67){return db[_0x7946('0x40')]['destroy']({'where':{'IntervalId':_0x514cbb[_0x7946('0x45')]['id']},'transaction':_0x424c67})['then'](function(_0x1e2139){var _0x484abc=_[_0x7946('0x2e')](_0x514cbb[_0x7946('0x50')],function(_0x1de83b){delete _0x1de83b['id'];_0x1de83b[_0x7946('0x51')]=_0x514cbb[_0x7946('0x45')]['id'];return _0x1de83b;});return db[_0x7946('0x40')][_0x7946('0x57')](_0x484abc,{'transaction':_0x424c67});});})['then'](function(){return db[_0x7946('0x40')][_0x7946('0x43')]({'where':{'IntervalId':_0x514cbb[_0x7946('0x45')]['id']}});});}})['then'](respondWithResult(_0x2b687c,null))[_0x7946('0x4d')](handleError(_0x2b687c,null));};