Built motion from commit (unavailable).|2.5.3
[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 _0xd606=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','count','offset','limit','set','reject','save','update','then','destroy','UserProfileResource','stack','name','send','map','Interval','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','fields','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','IntervalId','getIntervals','findOne','filter','length','nolimit','sequelize','html-pdf','eml-format','zip-dir','bluebird','mustache','util','sox','to-csv','squel','crypto','jsforce','desk.js','papaparse'];(function(_0x12bf1b,_0xb008bf){var _0x31cd5c=function(_0x35b61c){while(--_0x35b61c){_0x12bf1b['push'](_0x12bf1b['shift']());}};_0x31cd5c(++_0xb008bf);}(_0xd606,0x1a1));var _0x6d60=function(_0xbade11,_0x194a6e){_0xbade11=_0xbade11-0x0;var _0x4bc38a=_0xd606[_0xbade11];return _0x4bc38a;};'use strict';var pdf=require(_0x6d60('0x0'));var emlformat=require(_0x6d60('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x6d60('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6d60('0x3'));var Mustache=require(_0x6d60('0x4'));var util=require(_0x6d60('0x5'));var path=require('path');var sox=require(_0x6d60('0x6'));var csv=require(_0x6d60('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x6d60('0x8'));var crypto=require(_0x6d60('0x9'));var jsforce=require(_0x6d60('0xa'));var deskjs=require(_0x6d60('0xb'));var toCsv=require(_0x6d60('0x7'));var querystring=require('querystring');var Papa=require(_0x6d60('0xc'));var Redis=require(_0x6d60('0xd'));var authService=require(_0x6d60('0xe'));var qs=require(_0x6d60('0xf'));var as=require(_0x6d60('0x10'));var hardwareService=require(_0x6d60('0x11'));var logger=require(_0x6d60('0x12'))(_0x6d60('0x13'));var utils=require(_0x6d60('0x14'));var config=require(_0x6d60('0x15'));var db=require(_0x6d60('0x16'))['db'];var extensions=require(_0x6d60('0x17'));function respondWithStatusCode(_0x22b531,_0x2ca8bd){_0x2ca8bd=_0x2ca8bd||0xcc;return function(_0xa0acca){if(_0xa0acca){return _0x22b531[_0x6d60('0x18')](_0x2ca8bd);}return _0x22b531['status'](_0x2ca8bd)['end']();};}function respondWithResult(_0x1e1099,_0x3a60d9){_0x3a60d9=_0x3a60d9||0xc8;return function(_0x1b420d){if(_0x1b420d){return _0x1e1099[_0x6d60('0x19')](_0x3a60d9)[_0x6d60('0x1a')](_0x1b420d);}};}function respondWithFilteredResult(_0x484705,_0x3cd088){return function(_0x15840b){if(_0x15840b){var _0x3178cb=_0x15840b[_0x6d60('0x1b')],_0x590e36=_0x3cd088[_0x6d60('0x1c')],_0x591aaa=_0x3cd088['offset']+_0x3cd088[_0x6d60('0x1d')],_0x55a54a;if(_0x591aaa>=_0x3178cb){_0x591aaa=_0x3178cb;_0x55a54a=0xc8;}else{_0x55a54a=0xce;}_0x484705[_0x6d60('0x19')](_0x55a54a);return _0x484705[_0x6d60('0x1e')]('Content-Range',_0x590e36+'-'+_0x591aaa+'/'+_0x3178cb)[_0x6d60('0x1a')](_0x15840b);}return null;};}function patchUpdates(_0x1125a6){return function(_0x5ea304){try{jsonpatch['apply'](_0x5ea304,_0x1125a6,!![]);}catch(_0x43b087){return BPromise[_0x6d60('0x1f')](_0x43b087);}return _0x5ea304[_0x6d60('0x20')]();};}function saveUpdates(_0x11b1a7,_0xfd02af){return function(_0x579b31){if(_0x579b31){return _0x579b31[_0x6d60('0x21')](_0x11b1a7)[_0x6d60('0x22')](function(_0x1e6f00){return _0x1e6f00;});}return null;};}function removeEntity(_0x5437d4,_0xb46a94){return function(_0x3079f9){if(_0x3079f9){return _0x3079f9[_0x6d60('0x23')]()[_0x6d60('0x22')](function(){var _0x25fd75=_0x3079f9['get']({'plain':!![]});var _0x181616='Intervals';return db[_0x6d60('0x24')][_0x6d60('0x23')]({'where':{'type':_0x181616,'resourceId':_0x25fd75['id']}})[_0x6d60('0x22')](function(){return _0x3079f9;});})[_0x6d60('0x22')](function(){_0x5437d4[_0x6d60('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x48cc05,_0x120081){return function(_0x584fb7){if(!_0x584fb7){_0x48cc05[_0x6d60('0x18')](0x194);}return _0x584fb7;};}function handleError(_0x37c2c6,_0xc86359){_0xc86359=_0xc86359||0x1f4;return function(_0x43f120){logger['error'](_0x43f120[_0x6d60('0x25')]);if(_0x43f120['name']){delete _0x43f120[_0x6d60('0x26')];}_0x37c2c6[_0x6d60('0x19')](_0xc86359)[_0x6d60('0x27')](_0x43f120);};}exports['index']=function(_0x198863,_0x667106){var _0x4c1131={},_0x366d9e={},_0x3623a5={'count':0x0,'rows':[]};var _0x32ad2c=_[_0x6d60('0x28')](db[_0x6d60('0x29')][_0x6d60('0x2a')],function(_0x349fac){return{'name':_0x349fac[_0x6d60('0x2b')],'type':_0x349fac[_0x6d60('0x2c')][_0x6d60('0x2d')]};});_0x366d9e[_0x6d60('0x2e')]=_[_0x6d60('0x28')](_0x32ad2c,'name');_0x366d9e[_0x6d60('0x2f')]=_[_0x6d60('0x30')](_0x198863[_0x6d60('0x2f')]);_0x366d9e[_0x6d60('0x31')]=_['intersection'](_0x366d9e[_0x6d60('0x2e')],_0x366d9e['query']);_0x4c1131['attributes']=_[_0x6d60('0x32')](_0x366d9e[_0x6d60('0x2e')],qs['fields'](_0x198863[_0x6d60('0x2f')]['fields']));_0x4c1131[_0x6d60('0x33')]=_0x4c1131[_0x6d60('0x33')]['length']?_0x4c1131[_0x6d60('0x33')]:_0x366d9e['model'];if(!_0x198863[_0x6d60('0x2f')][_0x6d60('0x34')]('nolimit')){_0x4c1131['limit']=qs[_0x6d60('0x1d')](_0x198863['query'][_0x6d60('0x1d')]);_0x4c1131[_0x6d60('0x1c')]=qs[_0x6d60('0x1c')](_0x198863[_0x6d60('0x2f')]['offset']);}_0x4c1131[_0x6d60('0x35')]=qs[_0x6d60('0x36')](_0x198863[_0x6d60('0x2f')][_0x6d60('0x36')]);_0x4c1131[_0x6d60('0x37')]=qs['filters'](_[_0x6d60('0x38')](_0x198863['query'],_0x366d9e[_0x6d60('0x31')]),_0x32ad2c);if(_0x198863['query']['filter']){_0x4c1131[_0x6d60('0x37')]=_[_0x6d60('0x39')](_0x4c1131[_0x6d60('0x37')],{'$or':_[_0x6d60('0x28')](_0x32ad2c,function(_0x424468){if(_0x424468[_0x6d60('0x2c')]!==_0x6d60('0x3a')){var _0x1d89b1={};_0x1d89b1[_0x424468[_0x6d60('0x26')]]={'$like':'%'+_0x198863[_0x6d60('0x2f')]['filter']+'%'};return _0x1d89b1;}})});}_0x4c1131=_[_0x6d60('0x39')]({},_0x4c1131,_0x198863[_0x6d60('0x3b')]);var _0x4218df={'where':_0x4c1131[_0x6d60('0x37')]};return db['Interval'][_0x6d60('0x1b')](_0x4218df)[_0x6d60('0x22')](function(_0x1e6b1c){_0x3623a5['count']=_0x1e6b1c;if(_0x198863['query'][_0x6d60('0x3c')]){_0x4c1131[_0x6d60('0x3d')]=[{'all':!![]}];}return db[_0x6d60('0x29')][_0x6d60('0x3e')](_0x4c1131);})['then'](function(_0x612c77){_0x3623a5['rows']=_0x612c77;return _0x3623a5;})['then'](respondWithFilteredResult(_0x667106,_0x4c1131))[_0x6d60('0x3f')](handleError(_0x667106,null));};exports[_0x6d60('0x40')]=function(_0x459856,_0x517843){var _0x4688b7={'raw':!![],'where':{'id':_0x459856['params']['id']}},_0x4559a5={};_0x4559a5[_0x6d60('0x2e')]=_['keys'](db[_0x6d60('0x29')][_0x6d60('0x2a')]);_0x4559a5[_0x6d60('0x2f')]=_[_0x6d60('0x30')](_0x459856[_0x6d60('0x2f')]);_0x4559a5[_0x6d60('0x31')]=_[_0x6d60('0x32')](_0x4559a5[_0x6d60('0x2e')],_0x4559a5[_0x6d60('0x2f')]);_0x4688b7['attributes']=_[_0x6d60('0x32')](_0x4559a5[_0x6d60('0x2e')],qs['fields'](_0x459856['query'][_0x6d60('0x41')]));_0x4688b7[_0x6d60('0x33')]=_0x4688b7[_0x6d60('0x33')]['length']?_0x4688b7[_0x6d60('0x33')]:_0x4559a5['model'];if(_0x459856['query']['includeAll']){_0x4688b7['include']=[{'all':!![]}];}_0x4688b7=_[_0x6d60('0x39')]({},_0x4688b7,_0x459856[_0x6d60('0x3b')]);return db[_0x6d60('0x29')][_0x6d60('0x42')](_0x4688b7)['then'](handleEntityNotFound(_0x517843,null))[_0x6d60('0x22')](respondWithResult(_0x517843,null))[_0x6d60('0x3f')](handleError(_0x517843,null));};exports[_0x6d60('0x43')]=function(_0x25733a,_0x124cf2){return db[_0x6d60('0x29')][_0x6d60('0x43')](_0x25733a[_0x6d60('0x44')],{})['then'](function(_0x451907){var _0x2af08a=_0x25733a[_0x6d60('0x45')][_0x6d60('0x46')]({'plain':!![]});if(!_0x2af08a)throw new Error(_0x6d60('0x47'));if(_0x2af08a[_0x6d60('0x48')]==='user'){var _0x1fb58e=_0x451907[_0x6d60('0x46')]({'plain':!![]});var _0x4cc661='Intervals';return db[_0x6d60('0x49')][_0x6d60('0x42')]({'where':{'name':_0x4cc661,'userProfileId':_0x2af08a[_0x6d60('0x4a')]},'raw':!![]})[_0x6d60('0x22')](function(_0x37fedd){if(_0x37fedd&&_0x37fedd[_0x6d60('0x4b')]===0x0){return db[_0x6d60('0x24')][_0x6d60('0x43')]({'name':_0x1fb58e[_0x6d60('0x26')],'resourceId':_0x1fb58e['id'],'type':_0x37fedd[_0x6d60('0x26')],'sectionId':_0x37fedd['id']},{})['then'](function(){return _0x451907;});}else{return _0x451907;}})[_0x6d60('0x3f')](function(_0x4e9571){logger[_0x6d60('0x4c')](_0x6d60('0x4d'),_0x4e9571);throw _0x4e9571;});}return _0x451907;})['then'](respondWithResult(_0x124cf2,0xc9))['catch'](handleError(_0x124cf2,null));};exports[_0x6d60('0x21')]=function(_0x5452c3,_0x309bb9){if(_0x5452c3[_0x6d60('0x44')]['id']){delete _0x5452c3['body']['id'];}return db[_0x6d60('0x29')][_0x6d60('0x42')]({'where':{'id':_0x5452c3[_0x6d60('0x4e')]['id']}})[_0x6d60('0x22')](handleEntityNotFound(_0x309bb9,null))['then'](saveUpdates(_0x5452c3[_0x6d60('0x44')],null))[_0x6d60('0x22')](respondWithResult(_0x309bb9,null))[_0x6d60('0x3f')](handleError(_0x309bb9,null));};exports[_0x6d60('0x23')]=function(_0x2a571b,_0x40a231){return db[_0x6d60('0x29')]['find']({'where':{'id':_0x2a571b[_0x6d60('0x4e')]['id']}})[_0x6d60('0x22')](handleEntityNotFound(_0x40a231,null))[_0x6d60('0x22')](removeEntity(_0x40a231,null))[_0x6d60('0x3f')](handleError(_0x40a231,null));};exports['addInterval']=function(_0x318492,_0xab3b0c,_0x3f038b){if(_0x318492[_0x6d60('0x44')]['id']){delete _0x318492[_0x6d60('0x44')]['id'];}return db[_0x6d60('0x29')]['find']({'where':{'id':_0x318492[_0x6d60('0x4e')]['id']}})[_0x6d60('0x22')](handleEntityNotFound(_0xab3b0c,null))[_0x6d60('0x22')](function(_0x4d1fd7){if(_0x4d1fd7){_0x318492['body'][_0x6d60('0x4f')]=_0x4d1fd7['id'];return db[_0x6d60('0x29')]['create'](_0x318492[_0x6d60('0x44')]);}})[_0x6d60('0x22')](respondWithResult(_0xab3b0c,null))[_0x6d60('0x3f')](handleError(_0xab3b0c,null));};exports[_0x6d60('0x50')]=function(_0x1cf5e7,_0x2dac34,_0x10b516){var _0x19423a={};var _0x4cdff1={};var _0x4f687b;var _0x314e08;return db[_0x6d60('0x29')][_0x6d60('0x51')]({'where':{'id':_0x1cf5e7[_0x6d60('0x4e')]['id']}})[_0x6d60('0x22')](handleEntityNotFound(_0x2dac34,null))[_0x6d60('0x22')](function(_0x161906){if(_0x161906){_0x4f687b=_0x161906;_0x4cdff1[_0x6d60('0x2e')]=_['keys'](db['Interval'][_0x6d60('0x2a')]);_0x4cdff1[_0x6d60('0x2f')]=_[_0x6d60('0x30')](_0x1cf5e7[_0x6d60('0x2f')]);_0x4cdff1['filters']=_[_0x6d60('0x32')](_0x4cdff1['model'],_0x4cdff1[_0x6d60('0x2f')]);_0x19423a[_0x6d60('0x33')]=_[_0x6d60('0x32')](_0x4cdff1['model'],qs['fields'](_0x1cf5e7[_0x6d60('0x2f')][_0x6d60('0x41')]));_0x19423a['attributes']=_0x19423a[_0x6d60('0x33')]['length']?_0x19423a[_0x6d60('0x33')]:_0x4cdff1[_0x6d60('0x2e')];_0x19423a[_0x6d60('0x35')]=qs[_0x6d60('0x36')](_0x1cf5e7[_0x6d60('0x2f')][_0x6d60('0x36')]);_0x19423a[_0x6d60('0x37')]=qs['filters'](_['pick'](_0x1cf5e7['query'],_0x4cdff1[_0x6d60('0x31')]));if(_0x1cf5e7[_0x6d60('0x2f')][_0x6d60('0x52')]){_0x19423a[_0x6d60('0x37')]=_['merge'](_0x19423a['where'],{'$or':_[_0x6d60('0x28')](_0x19423a[_0x6d60('0x33')],function(_0x5530a8){var _0x1e85be={};_0x1e85be[_0x5530a8]={'$like':'%'+_0x1cf5e7[_0x6d60('0x2f')][_0x6d60('0x52')]+'%'};return _0x1e85be;})});}_0x19423a=_[_0x6d60('0x39')]({},_0x19423a,_0x1cf5e7['options']);return _0x4f687b[_0x6d60('0x50')](_0x19423a);}})[_0x6d60('0x22')](function(_0x4d95fe){if(_0x4d95fe){_0x314e08=_0x4d95fe[_0x6d60('0x53')];if(!_0x1cf5e7[_0x6d60('0x2f')]['hasOwnProperty'](_0x6d60('0x54'))){_0x19423a[_0x6d60('0x1d')]=qs[_0x6d60('0x1d')](_0x1cf5e7[_0x6d60('0x2f')][_0x6d60('0x1d')]);_0x19423a[_0x6d60('0x1c')]=qs[_0x6d60('0x1c')](_0x1cf5e7[_0x6d60('0x2f')][_0x6d60('0x1c')]);}return _0x4f687b[_0x6d60('0x50')](_0x19423a);}})[_0x6d60('0x22')](function(_0x57d8bf){if(_0x57d8bf){return _0x57d8bf?{'count':_0x314e08,'rows':_0x57d8bf}:null;}})[_0x6d60('0x22')](respondWithResult(_0x2dac34,null))[_0x6d60('0x3f')](handleError(_0x2dac34,null));};exports['addIntervals']=function(_0x379ea5,_0x345ca4,_0x2beeda){return db[_0x6d60('0x29')]['findOne']({'where':{'id':_0x379ea5['params']['id']}})[_0x6d60('0x22')](handleEntityNotFound(_0x345ca4,null))[_0x6d60('0x22')](function(_0x415523){if(_0x415523){return db[_0x6d60('0x55')]['transaction'](function(_0x513d00){return db[_0x6d60('0x29')]['destroy']({'where':{'IntervalId':_0x379ea5[_0x6d60('0x4e')]['id']},'transaction':_0x513d00})[_0x6d60('0x22')](function(_0x452245){var _0x2bf4ed=_[_0x6d60('0x28')](_0x379ea5['body'],function(_0x5fc238){delete _0x5fc238['id'];_0x5fc238['IntervalId']=_0x379ea5[_0x6d60('0x4e')]['id'];return _0x5fc238;});return db[_0x6d60('0x29')]['bulkCreate'](_0x2bf4ed,{'transaction':_0x513d00});});})['then'](function(){return db[_0x6d60('0x29')][_0x6d60('0x3e')]({'where':{'IntervalId':_0x379ea5['params']['id']}});});}})['then'](respondWithResult(_0x345ca4,null))[_0x6d60('0x3f')](handleError(_0x345ca4,null));};