Built motion from commit 449495f6.|2.6.27
[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 _0x26e2=['params','addInterval','IntervalId','getIntervals','findOne','sequelize','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','fs-extra','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','get','Intervals','then','error','stack','name','send','Interval','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','length','attributes','hasOwnProperty','order','sort','where','pick','merge','map','VIRTUAL','filter','includeAll','include','findAll','rows','catch','show','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x26e2,0x1ce));var _0x226e=function(_0xc0bfe6,_0x4c172b){_0xc0bfe6=_0xc0bfe6-0x0;var _0x25e44f=_0x26e2[_0xc0bfe6];return _0x25e44f;};'use strict';var emlformat=require(_0x226e('0x0'));var rimraf=require(_0x226e('0x1'));var zipdir=require(_0x226e('0x2'));var jsonpatch=require(_0x226e('0x3'));var rp=require(_0x226e('0x4'));var moment=require('moment');var BPromise=require(_0x226e('0x5'));var Mustache=require('mustache');var util=require(_0x226e('0x6'));var path=require(_0x226e('0x7'));var sox=require(_0x226e('0x8'));var csv=require(_0x226e('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x226e('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x226e('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x226e('0xc'));var toCsv=require('to-csv');var querystring=require(_0x226e('0xd'));var Papa=require(_0x226e('0xe'));var Redis=require(_0x226e('0xf'));var authService=require(_0x226e('0x10'));var qs=require(_0x226e('0x11'));var as=require(_0x226e('0x12'));var hardwareService=require(_0x226e('0x13'));var logger=require(_0x226e('0x14'))('api');var utils=require(_0x226e('0x15'));var config=require(_0x226e('0x16'));var licenseUtil=require(_0x226e('0x17'));var db=require(_0x226e('0x18'))['db'];var extensions=require(_0x226e('0x19'));function respondWithStatusCode(_0x30aaa0,_0x223d7a){_0x223d7a=_0x223d7a||0xcc;return function(_0x7f786c){if(_0x7f786c){return _0x30aaa0[_0x226e('0x1a')](_0x223d7a);}return _0x30aaa0[_0x226e('0x1b')](_0x223d7a)['end']();};}function respondWithResult(_0x359886,_0x30881e){_0x30881e=_0x30881e||0xc8;return function(_0x404ef2){if(_0x404ef2){return _0x359886[_0x226e('0x1b')](_0x30881e)[_0x226e('0x1c')](_0x404ef2);}};}function respondWithFilteredResult(_0x337dc8,_0x11c21c){return function(_0x5486c5){if(_0x5486c5){var _0x1ccfc4=typeof _0x11c21c[_0x226e('0x1d')]===_0x226e('0x1e')&&typeof _0x11c21c[_0x226e('0x1f')]==='undefined';var _0x110a47=_0x5486c5[_0x226e('0x20')];var _0x629a1e=_0x1ccfc4?0x0:_0x11c21c['offset'];var _0x586247=_0x1ccfc4?_0x5486c5[_0x226e('0x20')]:_0x11c21c['offset']+_0x11c21c['limit'];var _0x36864c;if(_0x586247>=_0x110a47){_0x586247=_0x110a47;_0x36864c=0xc8;}else{_0x36864c=0xce;}_0x337dc8[_0x226e('0x1b')](_0x36864c);return _0x337dc8[_0x226e('0x21')](_0x226e('0x22'),_0x629a1e+'-'+_0x586247+'/'+_0x110a47)['json'](_0x5486c5);}return null;};}function patchUpdates(_0x4620e6){return function(_0x6ad10f){try{jsonpatch['apply'](_0x6ad10f,_0x4620e6,!![]);}catch(_0x5ae10d){return BPromise[_0x226e('0x23')](_0x5ae10d);}return _0x6ad10f[_0x226e('0x24')]();};}function saveUpdates(_0x4c8389,_0x14abe4){return function(_0x11dc7d){if(_0x11dc7d){return _0x11dc7d[_0x226e('0x25')](_0x4c8389)['then'](function(_0x29a975){return _0x29a975;});}return null;};}function removeEntity(_0x46750c,_0x10d1bc){return function(_0x13c45e){if(_0x13c45e){return _0x13c45e[_0x226e('0x26')]()['then'](function(){var _0x2e5b52=_0x13c45e[_0x226e('0x27')]({'plain':!![]});var _0x296eed=_0x226e('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0x296eed,'resourceId':_0x2e5b52['id']}})[_0x226e('0x29')](function(){return _0x13c45e;});})[_0x226e('0x29')](function(){_0x46750c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1636bd,_0x34e1ef){return function(_0x34c9d5){if(!_0x34c9d5){_0x1636bd[_0x226e('0x1a')](0x194);}return _0x34c9d5;};}function handleError(_0x238bb4,_0x5a38e7){_0x5a38e7=_0x5a38e7||0x1f4;return function(_0x319894){logger[_0x226e('0x2a')](_0x319894[_0x226e('0x2b')]);if(_0x319894[_0x226e('0x2c')]){delete _0x319894[_0x226e('0x2c')];}_0x238bb4[_0x226e('0x1b')](_0x5a38e7)[_0x226e('0x2d')](_0x319894);};}exports['index']=function(_0xe099a0,_0x42f536){var _0xe998d1={},_0x4abaaa={},_0x5bd625={'count':0x0,'rows':[]};var _0x1574c0=_['map'](db[_0x226e('0x2e')][_0x226e('0x2f')],function(_0x437e05){return{'name':_0x437e05[_0x226e('0x30')],'type':_0x437e05[_0x226e('0x31')][_0x226e('0x32')]};});_0x4abaaa[_0x226e('0x33')]=_['map'](_0x1574c0,_0x226e('0x2c'));_0x4abaaa['query']=_[_0x226e('0x34')](_0xe099a0[_0x226e('0x35')]);_0x4abaaa[_0x226e('0x36')]=_[_0x226e('0x37')](_0x4abaaa['model'],_0x4abaaa[_0x226e('0x35')]);_0xe998d1['attributes']=_['intersection'](_0x4abaaa['model'],qs[_0x226e('0x38')](_0xe099a0[_0x226e('0x35')][_0x226e('0x38')]));_0xe998d1['attributes']=_0xe998d1['attributes'][_0x226e('0x39')]?_0xe998d1[_0x226e('0x3a')]:_0x4abaaa['model'];if(!_0xe099a0[_0x226e('0x35')][_0x226e('0x3b')]('nolimit')){_0xe998d1['limit']=qs[_0x226e('0x1f')](_0xe099a0['query']['limit']);_0xe998d1[_0x226e('0x1d')]=qs['offset'](_0xe099a0[_0x226e('0x35')][_0x226e('0x1d')]);}_0xe998d1[_0x226e('0x3c')]=qs['sort'](_0xe099a0[_0x226e('0x35')][_0x226e('0x3d')]);_0xe998d1[_0x226e('0x3e')]=qs[_0x226e('0x36')](_[_0x226e('0x3f')](_0xe099a0[_0x226e('0x35')],_0x4abaaa['filters']),_0x1574c0);if(_0xe099a0[_0x226e('0x35')]['filter']){_0xe998d1[_0x226e('0x3e')]=_[_0x226e('0x40')](_0xe998d1[_0x226e('0x3e')],{'$or':_[_0x226e('0x41')](_0x1574c0,function(_0x2a5d79){if(_0x2a5d79[_0x226e('0x31')]!==_0x226e('0x42')){var _0x5c0e90={};_0x5c0e90[_0x2a5d79[_0x226e('0x2c')]]={'$like':'%'+_0xe099a0[_0x226e('0x35')][_0x226e('0x43')]+'%'};return _0x5c0e90;}})});}_0xe998d1=_['merge']({},_0xe998d1,_0xe099a0['options']);var _0x2c2302={'where':_0xe998d1['where']};return db['Interval'][_0x226e('0x20')](_0x2c2302)[_0x226e('0x29')](function(_0x1b2baf){_0x5bd625['count']=_0x1b2baf;if(_0xe099a0[_0x226e('0x35')][_0x226e('0x44')]){_0xe998d1[_0x226e('0x45')]=[{'all':!![]}];}return db['Interval'][_0x226e('0x46')](_0xe998d1);})['then'](function(_0x4d3915){_0x5bd625[_0x226e('0x47')]=_0x4d3915;return _0x5bd625;})[_0x226e('0x29')](respondWithFilteredResult(_0x42f536,_0xe998d1))[_0x226e('0x48')](handleError(_0x42f536,null));};exports[_0x226e('0x49')]=function(_0x55ccd8,_0xd563fb){var _0x123c78={'raw':!![],'where':{'id':_0x55ccd8['params']['id']}},_0x31a858={};_0x31a858[_0x226e('0x33')]=_[_0x226e('0x34')](db['Interval'][_0x226e('0x2f')]);_0x31a858[_0x226e('0x35')]=_[_0x226e('0x34')](_0x55ccd8[_0x226e('0x35')]);_0x31a858[_0x226e('0x36')]=_['intersection'](_0x31a858['model'],_0x31a858[_0x226e('0x35')]);_0x123c78['attributes']=_['intersection'](_0x31a858[_0x226e('0x33')],qs['fields'](_0x55ccd8['query'][_0x226e('0x38')]));_0x123c78[_0x226e('0x3a')]=_0x123c78[_0x226e('0x3a')][_0x226e('0x39')]?_0x123c78['attributes']:_0x31a858[_0x226e('0x33')];if(_0x55ccd8[_0x226e('0x35')][_0x226e('0x44')]){_0x123c78['include']=[{'all':!![]}];}_0x123c78=_['merge']({},_0x123c78,_0x55ccd8[_0x226e('0x4a')]);return db[_0x226e('0x2e')][_0x226e('0x4b')](_0x123c78)[_0x226e('0x29')](handleEntityNotFound(_0xd563fb,null))[_0x226e('0x29')](respondWithResult(_0xd563fb,null))[_0x226e('0x48')](handleError(_0xd563fb,null));};exports['create']=function(_0x3bb1f9,_0x5f035a){return db[_0x226e('0x2e')][_0x226e('0x4c')](_0x3bb1f9[_0x226e('0x4d')],{})[_0x226e('0x29')](function(_0x3f1d77){var _0x166015=_0x3bb1f9[_0x226e('0x4e')][_0x226e('0x27')]({'plain':!![]});if(!_0x166015)throw new Error(_0x226e('0x4f'));if(_0x166015[_0x226e('0x50')]===_0x226e('0x4e')){var _0x378b6e=_0x3f1d77[_0x226e('0x27')]({'plain':!![]});var _0x210f59=_0x226e('0x28');return db[_0x226e('0x51')]['find']({'where':{'name':_0x210f59,'userProfileId':_0x166015[_0x226e('0x52')]},'raw':!![]})[_0x226e('0x29')](function(_0x3bf22f){if(_0x3bf22f&&_0x3bf22f['autoAssociation']===0x0){return db[_0x226e('0x53')][_0x226e('0x4c')]({'name':_0x378b6e[_0x226e('0x2c')],'resourceId':_0x378b6e['id'],'type':_0x3bf22f[_0x226e('0x2c')],'sectionId':_0x3bf22f['id']},{})['then'](function(){return _0x3f1d77;});}else{return _0x3f1d77;}})[_0x226e('0x48')](function(_0x157281){logger[_0x226e('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x157281);throw _0x157281;});}return _0x3f1d77;})[_0x226e('0x29')](respondWithResult(_0x5f035a,0xc9))[_0x226e('0x48')](handleError(_0x5f035a,null));};exports[_0x226e('0x25')]=function(_0x17173e,_0xf8c0e9){if(_0x17173e[_0x226e('0x4d')]['id']){delete _0x17173e['body']['id'];}return db[_0x226e('0x2e')][_0x226e('0x4b')]({'where':{'id':_0x17173e[_0x226e('0x54')]['id']}})['then'](handleEntityNotFound(_0xf8c0e9,null))[_0x226e('0x29')](saveUpdates(_0x17173e['body'],null))[_0x226e('0x29')](respondWithResult(_0xf8c0e9,null))['catch'](handleError(_0xf8c0e9,null));};exports[_0x226e('0x26')]=function(_0x450bc9,_0x3c1e6b){return db['Interval'][_0x226e('0x4b')]({'where':{'id':_0x450bc9[_0x226e('0x54')]['id']}})[_0x226e('0x29')](handleEntityNotFound(_0x3c1e6b,null))['then'](removeEntity(_0x3c1e6b,null))[_0x226e('0x48')](handleError(_0x3c1e6b,null));};exports[_0x226e('0x55')]=function(_0x5ab6ff,_0x49476a,_0x3dc1ad){if(_0x5ab6ff['body']['id']){delete _0x5ab6ff[_0x226e('0x4d')]['id'];}return db[_0x226e('0x2e')][_0x226e('0x4b')]({'where':{'id':_0x5ab6ff[_0x226e('0x54')]['id']}})[_0x226e('0x29')](handleEntityNotFound(_0x49476a,null))['then'](function(_0x48125e){if(_0x48125e){_0x5ab6ff[_0x226e('0x4d')][_0x226e('0x56')]=_0x48125e['id'];return db[_0x226e('0x2e')][_0x226e('0x4c')](_0x5ab6ff[_0x226e('0x4d')]);}})[_0x226e('0x29')](respondWithResult(_0x49476a,null))[_0x226e('0x48')](handleError(_0x49476a,null));};exports[_0x226e('0x57')]=function(_0x5604d4,_0x37e3c7,_0x54a747){var _0x3bfad5={};var _0x2b8e43={};var _0x120762;var _0x77c1ce;return db[_0x226e('0x2e')][_0x226e('0x58')]({'where':{'id':_0x5604d4[_0x226e('0x54')]['id']}})['then'](handleEntityNotFound(_0x37e3c7,null))['then'](function(_0x66b19b){if(_0x66b19b){_0x120762=_0x66b19b;_0x2b8e43[_0x226e('0x33')]=_[_0x226e('0x34')](db['Interval'][_0x226e('0x2f')]);_0x2b8e43[_0x226e('0x35')]=_[_0x226e('0x34')](_0x5604d4[_0x226e('0x35')]);_0x2b8e43[_0x226e('0x36')]=_[_0x226e('0x37')](_0x2b8e43[_0x226e('0x33')],_0x2b8e43[_0x226e('0x35')]);_0x3bfad5[_0x226e('0x3a')]=_[_0x226e('0x37')](_0x2b8e43[_0x226e('0x33')],qs[_0x226e('0x38')](_0x5604d4[_0x226e('0x35')][_0x226e('0x38')]));_0x3bfad5[_0x226e('0x3a')]=_0x3bfad5[_0x226e('0x3a')][_0x226e('0x39')]?_0x3bfad5[_0x226e('0x3a')]:_0x2b8e43[_0x226e('0x33')];_0x3bfad5[_0x226e('0x3c')]=qs[_0x226e('0x3d')](_0x5604d4['query']['sort']);_0x3bfad5[_0x226e('0x3e')]=qs[_0x226e('0x36')](_[_0x226e('0x3f')](_0x5604d4['query'],_0x2b8e43['filters']));if(_0x5604d4[_0x226e('0x35')][_0x226e('0x43')]){_0x3bfad5[_0x226e('0x3e')]=_['merge'](_0x3bfad5['where'],{'$or':_[_0x226e('0x41')](_0x3bfad5[_0x226e('0x3a')],function(_0x197750){var _0x4f6c70={};_0x4f6c70[_0x197750]={'$like':'%'+_0x5604d4['query'][_0x226e('0x43')]+'%'};return _0x4f6c70;})});}_0x3bfad5=_['merge']({},_0x3bfad5,_0x5604d4[_0x226e('0x4a')]);return _0x120762['getIntervals'](_0x3bfad5);}})[_0x226e('0x29')](function(_0x5378b8){if(_0x5378b8){_0x77c1ce=_0x5378b8[_0x226e('0x39')];if(!_0x5604d4[_0x226e('0x35')]['hasOwnProperty']('nolimit')){_0x3bfad5[_0x226e('0x1f')]=qs[_0x226e('0x1f')](_0x5604d4[_0x226e('0x35')][_0x226e('0x1f')]);_0x3bfad5[_0x226e('0x1d')]=qs['offset'](_0x5604d4[_0x226e('0x35')][_0x226e('0x1d')]);}return _0x120762['getIntervals'](_0x3bfad5);}})['then'](function(_0x17e711){if(_0x17e711){return _0x17e711?{'count':_0x77c1ce,'rows':_0x17e711}:null;}})[_0x226e('0x29')](respondWithResult(_0x37e3c7,null))[_0x226e('0x48')](handleError(_0x37e3c7,null));};exports['addIntervals']=function(_0x5c850,_0xb9d2e7,_0x305d41){return db[_0x226e('0x2e')][_0x226e('0x58')]({'where':{'id':_0x5c850[_0x226e('0x54')]['id']}})['then'](handleEntityNotFound(_0xb9d2e7,null))[_0x226e('0x29')](function(_0x5280bf){if(_0x5280bf){return db[_0x226e('0x59')]['transaction'](function(_0xad6f01){return db[_0x226e('0x2e')][_0x226e('0x26')]({'where':{'IntervalId':_0x5c850[_0x226e('0x54')]['id']},'transaction':_0xad6f01})['then'](function(_0xb3d735){var _0x62234d=_['map'](_0x5c850[_0x226e('0x4d')],function(_0x3e89b3){delete _0x3e89b3['id'];_0x3e89b3[_0x226e('0x56')]=_0x5c850[_0x226e('0x54')]['id'];return _0x3e89b3;});return db[_0x226e('0x2e')][_0x226e('0x5a')](_0x62234d,{'transaction':_0xad6f01});});})['then'](function(){return db[_0x226e('0x2e')]['findAll']({'where':{'IntervalId':_0x5c850[_0x226e('0x54')]['id']}});});}})[_0x226e('0x29')](respondWithResult(_0xb9d2e7,null))[_0x226e('0x48')](handleError(_0xb9d2e7,null));};