Built motion from commit 67e5df37.|2.0.66
[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 _0x1e82=['../../mysqldb','../../components/extensions/rewrite','status','end','json','offset','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','keys','rawAttributes','query','dateEnd','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','dateStart','add','day','merge','filter','map','options','Interval','count','includeAll','findAll','rows','catch','show','params','include','find','create','body','addInterval','IntervalId','findOne','length','getIntervals','addIntervals','sequelize','transaction','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment'];(function(_0x3be359,_0x15fd95){var _0x3d94a1=function(_0x5d7107){while(--_0x5d7107){_0x3be359['push'](_0x3be359['shift']());}};_0x3d94a1(++_0x15fd95);}(_0x1e82,0x8b));var _0x21e8=function(_0x5d2835,_0x8e5cdf){_0x5d2835=_0x5d2835-0x0;var _0x3108fe=_0x1e82[_0x5d2835];return _0x3108fe;};'use strict';var jsonpatch=require(_0x21e8('0x0'));var rp=require(_0x21e8('0x1'));var moment=require(_0x21e8('0x2'));var BPromise=require(_0x21e8('0x3'));var Mustache=require(_0x21e8('0x4'));var util=require(_0x21e8('0x5'));var path=require('path');var sox=require(_0x21e8('0x6'));var csv=require(_0x21e8('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x21e8('0x8'));var squel=require('squel');var crypto=require(_0x21e8('0x9'));var jsforce=require(_0x21e8('0xa'));var deskjs=require(_0x21e8('0xb'));var toCsv=require(_0x21e8('0x7'));var querystring=require('querystring');var Papa=require(_0x21e8('0xc'));var qs=require(_0x21e8('0xd'));var logger=require(_0x21e8('0xe'))('api');var utils=require(_0x21e8('0xf'));var config=require(_0x21e8('0x10'));var db=require(_0x21e8('0x11'))['db'];var extensions=require(_0x21e8('0x12'));function respondWithStatusCode(_0x5c6d17,_0x4d561a){_0x4d561a=_0x4d561a||0xcc;return function(_0x265ea1){if(_0x265ea1){return _0x5c6d17['sendStatus'](_0x4d561a);}return _0x5c6d17[_0x21e8('0x13')](_0x4d561a)[_0x21e8('0x14')]();};}function respondWithResult(_0x5eb5b7,_0x2bff04){_0x2bff04=_0x2bff04||0xc8;return function(_0x4f0134){if(_0x4f0134){return _0x5eb5b7[_0x21e8('0x13')](_0x2bff04)[_0x21e8('0x15')](_0x4f0134);}};}function respondWithFilteredResult(_0x16a877,_0x4eb523){return function(_0x217605){if(_0x217605){var _0x4adde2=_0x217605['count'],_0x271ee6=_0x4eb523['offset'],_0x3c6bf2=_0x4eb523[_0x21e8('0x16')]+_0x4eb523[_0x21e8('0x17')],_0x158da6;if(_0x3c6bf2>=_0x4adde2){_0x3c6bf2=_0x4adde2;_0x158da6=0xc8;}else{_0x158da6=0xce;}_0x16a877[_0x21e8('0x13')](_0x158da6);return _0x16a877[_0x21e8('0x18')](_0x21e8('0x19'),_0x271ee6+'-'+_0x3c6bf2+'/'+_0x4adde2)[_0x21e8('0x15')](_0x217605);}return null;};}function patchUpdates(_0x29d932){return function(_0x2f66f1){try{jsonpatch[_0x21e8('0x1a')](_0x2f66f1,_0x29d932,!![]);}catch(_0x552c6f){return BPromise[_0x21e8('0x1b')](_0x552c6f);}return _0x2f66f1['save']();};}function saveUpdates(_0x504522,_0x32ec05){return function(_0x19f7fb){if(_0x19f7fb){return _0x19f7fb[_0x21e8('0x1c')](_0x504522)[_0x21e8('0x1d')](function(_0x5ca78c){return _0x5ca78c;});}return null;};}function removeEntity(_0x45243f,_0x1be10b){return function(_0x25b678){if(_0x25b678){return _0x25b678[_0x21e8('0x1e')]()[_0x21e8('0x1d')](function(){_0x45243f[_0x21e8('0x13')](0xcc)[_0x21e8('0x14')]();});}};}function handleEntityNotFound(_0x31501c,_0x4bcb4c){return function(_0xc9673c){if(!_0xc9673c){_0x31501c[_0x21e8('0x1f')](0x194);}return _0xc9673c;};}function handleError(_0x48b116,_0x1df978){_0x1df978=_0x1df978||0x1f4;return function(_0x402f0f){logger[_0x21e8('0x20')](_0x402f0f[_0x21e8('0x21')]);if(_0x402f0f[_0x21e8('0x22')]){delete _0x402f0f[_0x21e8('0x22')];}_0x48b116[_0x21e8('0x13')](_0x1df978)[_0x21e8('0x23')](_0x402f0f);};}exports['index']=function(_0x155d04,_0x5964ab){var _0x232351={},_0x364dad={},_0x29bc23={'count':0x0,'rows':[]};_0x364dad['model']=_[_0x21e8('0x24')](db['Interval'][_0x21e8('0x25')]);var _0x1876da={'dateStart':_0x155d04[_0x21e8('0x26')]['dateStart'],'dateEnd':_0x155d04[_0x21e8('0x26')][_0x21e8('0x27')]};delete _0x155d04[_0x21e8('0x26')]['dateStart'];delete _0x155d04[_0x21e8('0x26')][_0x21e8('0x27')];_0x364dad[_0x21e8('0x26')]=_[_0x21e8('0x24')](_0x155d04[_0x21e8('0x26')]);_0x364dad[_0x21e8('0x28')]=_[_0x21e8('0x29')](_0x364dad[_0x21e8('0x2a')],_0x364dad[_0x21e8('0x26')]);_0x232351[_0x21e8('0x2b')]=_[_0x21e8('0x29')](_0x364dad[_0x21e8('0x2a')],qs['fields'](_0x155d04[_0x21e8('0x26')][_0x21e8('0x2c')]));_0x232351['attributes']=_0x232351['attributes']['length']?_0x232351[_0x21e8('0x2b')]:_0x364dad['model'];if(!_0x155d04[_0x21e8('0x26')][_0x21e8('0x2d')](_0x21e8('0x2e'))){_0x232351[_0x21e8('0x17')]=qs['limit'](_0x155d04['query'][_0x21e8('0x17')]);_0x232351['offset']=qs[_0x21e8('0x16')](_0x155d04[_0x21e8('0x26')][_0x21e8('0x16')]);}_0x232351[_0x21e8('0x2f')]=qs['sort'](_0x155d04[_0x21e8('0x26')][_0x21e8('0x30')]);_0x232351[_0x21e8('0x31')]=qs[_0x21e8('0x28')](_[_0x21e8('0x32')](_0x155d04['query'],_0x364dad[_0x21e8('0x28')]));if(_0x1876da[_0x21e8('0x33')]){if(_0x1876da[_0x21e8('0x27')]){_0x1876da[_0x21e8('0x27')]=moment(_0x1876da[_0x21e8('0x27')])[_0x21e8('0x34')](0x1,_0x21e8('0x35'));}else{_0x1876da[_0x21e8('0x27')]=moment(_0x1876da[_0x21e8('0x33')])[_0x21e8('0x34')](0x1,_0x21e8('0x35'));}_[_0x21e8('0x36')](_0x232351[_0x21e8('0x31')],{'createdAt':{'$gte':_0x1876da[_0x21e8('0x33')],'$lte':_0x1876da[_0x21e8('0x27')]}});}if(_0x155d04['query'][_0x21e8('0x37')]){_0x232351[_0x21e8('0x31')]=_[_0x21e8('0x36')](_0x232351[_0x21e8('0x31')],{'$or':_[_0x21e8('0x38')](_0x232351[_0x21e8('0x2b')],function(_0x3d86c2){var _0x3ebf0b={};_0x3ebf0b[_0x3d86c2]={'$like':'%'+_0x155d04[_0x21e8('0x26')][_0x21e8('0x37')]+'%'};return _0x3ebf0b;})});}_0x232351=_['merge']({},_0x232351,_0x155d04[_0x21e8('0x39')]);var _0x4f893c={'where':_0x232351[_0x21e8('0x31')]};return db[_0x21e8('0x3a')]['count'](_0x4f893c)[_0x21e8('0x1d')](function(_0x2f7dc5){_0x29bc23[_0x21e8('0x3b')]=_0x2f7dc5;if(_0x155d04[_0x21e8('0x26')][_0x21e8('0x3c')]){_0x232351['include']=[{'all':!![]}];}return db['Interval'][_0x21e8('0x3d')](_0x232351);})[_0x21e8('0x1d')](function(_0x22b2a7){_0x29bc23[_0x21e8('0x3e')]=_0x22b2a7;return _0x29bc23;})[_0x21e8('0x1d')](respondWithFilteredResult(_0x5964ab,_0x232351))[_0x21e8('0x3f')](handleError(_0x5964ab,null));};exports[_0x21e8('0x40')]=function(_0x4d47a3,_0x14d437){var _0x5af28d={'raw':!![],'where':{'id':_0x4d47a3[_0x21e8('0x41')]['id']}},_0x44094d={};_0x44094d[_0x21e8('0x2a')]=_[_0x21e8('0x24')](db[_0x21e8('0x3a')][_0x21e8('0x25')]);_0x44094d[_0x21e8('0x26')]=_[_0x21e8('0x24')](_0x4d47a3[_0x21e8('0x26')]);_0x44094d[_0x21e8('0x28')]=_['intersection'](_0x44094d[_0x21e8('0x2a')],_0x44094d[_0x21e8('0x26')]);_0x5af28d[_0x21e8('0x2b')]=_['intersection'](_0x44094d[_0x21e8('0x2a')],qs[_0x21e8('0x2c')](_0x4d47a3[_0x21e8('0x26')]['fields']));_0x5af28d['attributes']=_0x5af28d[_0x21e8('0x2b')]['length']?_0x5af28d['attributes']:_0x44094d['model'];if(_0x4d47a3[_0x21e8('0x26')][_0x21e8('0x3c')]){_0x5af28d[_0x21e8('0x42')]=[{'all':!![]}];}_0x5af28d=_[_0x21e8('0x36')]({},_0x5af28d,_0x4d47a3[_0x21e8('0x39')]);return db[_0x21e8('0x3a')][_0x21e8('0x43')](_0x5af28d)[_0x21e8('0x1d')](handleEntityNotFound(_0x14d437,null))[_0x21e8('0x1d')](respondWithResult(_0x14d437,null))['catch'](handleError(_0x14d437,null));};exports[_0x21e8('0x44')]=function(_0x2f2669,_0x298446){return db[_0x21e8('0x3a')]['create'](_0x2f2669[_0x21e8('0x45')],{})['then'](respondWithResult(_0x298446,0xc9))[_0x21e8('0x3f')](handleError(_0x298446,null));};exports[_0x21e8('0x1c')]=function(_0x47aebf,_0xd1ab19){if(_0x47aebf[_0x21e8('0x45')]['id']){delete _0x47aebf[_0x21e8('0x45')]['id'];}return db['Interval']['find']({'where':{'id':_0x47aebf[_0x21e8('0x41')]['id']}})[_0x21e8('0x1d')](handleEntityNotFound(_0xd1ab19,null))[_0x21e8('0x1d')](saveUpdates(_0x47aebf[_0x21e8('0x45')],null))['then'](respondWithResult(_0xd1ab19,null))['catch'](handleError(_0xd1ab19,null));};exports['destroy']=function(_0x43a882,_0x3f41a5){return db['Interval'][_0x21e8('0x43')]({'where':{'id':_0x43a882[_0x21e8('0x41')]['id']}})[_0x21e8('0x1d')](handleEntityNotFound(_0x3f41a5,null))[_0x21e8('0x1d')](removeEntity(_0x3f41a5,null))[_0x21e8('0x3f')](handleError(_0x3f41a5,null));};exports[_0x21e8('0x46')]=function(_0x507359,_0x236406,_0x3d888a){if(_0x507359[_0x21e8('0x45')]['id']){delete _0x507359[_0x21e8('0x45')]['id'];}return db['Interval']['find']({'where':{'id':_0x507359[_0x21e8('0x41')]['id']}})['then'](handleEntityNotFound(_0x236406,null))[_0x21e8('0x1d')](function(_0x2ba157){if(_0x2ba157){_0x507359[_0x21e8('0x45')][_0x21e8('0x47')]=_0x2ba157['id'];return db[_0x21e8('0x3a')][_0x21e8('0x44')](_0x507359['body']);}})['then'](respondWithResult(_0x236406,null))['catch'](handleError(_0x236406,null));};exports['getIntervals']=function(_0x3323d2,_0xd881ed,_0x3744c7){var _0x435efb={};var _0x2f7561={};var _0x56d2e3;var _0x526480;return db[_0x21e8('0x3a')][_0x21e8('0x48')]({'where':{'id':_0x3323d2[_0x21e8('0x41')]['id']}})[_0x21e8('0x1d')](handleEntityNotFound(_0xd881ed,null))['then'](function(_0x11ff1f){if(_0x11ff1f){_0x56d2e3=_0x11ff1f;_0x2f7561[_0x21e8('0x2a')]=_[_0x21e8('0x24')](db[_0x21e8('0x3a')][_0x21e8('0x25')]);_0x2f7561[_0x21e8('0x26')]=_['keys'](_0x3323d2[_0x21e8('0x26')]);_0x2f7561[_0x21e8('0x28')]=_[_0x21e8('0x29')](_0x2f7561['model'],_0x2f7561[_0x21e8('0x26')]);_0x435efb[_0x21e8('0x2b')]=_['intersection'](_0x2f7561[_0x21e8('0x2a')],qs['fields'](_0x3323d2['query'][_0x21e8('0x2c')]));_0x435efb[_0x21e8('0x2b')]=_0x435efb[_0x21e8('0x2b')][_0x21e8('0x49')]?_0x435efb[_0x21e8('0x2b')]:_0x2f7561[_0x21e8('0x2a')];_0x435efb[_0x21e8('0x2f')]=qs[_0x21e8('0x30')](_0x3323d2[_0x21e8('0x26')][_0x21e8('0x30')]);_0x435efb['where']=qs[_0x21e8('0x28')](_[_0x21e8('0x32')](_0x3323d2['query'],_0x2f7561['filters']));if(_0x3323d2[_0x21e8('0x26')][_0x21e8('0x37')]){_0x435efb[_0x21e8('0x31')]=_[_0x21e8('0x36')](_0x435efb[_0x21e8('0x31')],{'$or':_[_0x21e8('0x38')](_0x435efb[_0x21e8('0x2b')],function(_0x159adf){var _0x4d0558={};_0x4d0558[_0x159adf]={'$like':'%'+_0x3323d2[_0x21e8('0x26')][_0x21e8('0x37')]+'%'};return _0x4d0558;})});}_0x435efb=_[_0x21e8('0x36')]({},_0x435efb,_0x3323d2[_0x21e8('0x39')]);return _0x56d2e3[_0x21e8('0x4a')](_0x435efb);}})[_0x21e8('0x1d')](function(_0xe5dd78){if(_0xe5dd78){_0x526480=_0xe5dd78['length'];if(!_0x3323d2[_0x21e8('0x26')][_0x21e8('0x2d')](_0x21e8('0x2e'))){_0x435efb[_0x21e8('0x17')]=qs['limit'](_0x3323d2['query'][_0x21e8('0x17')]);_0x435efb[_0x21e8('0x16')]=qs[_0x21e8('0x16')](_0x3323d2[_0x21e8('0x26')][_0x21e8('0x16')]);}return _0x56d2e3[_0x21e8('0x4a')](_0x435efb);}})[_0x21e8('0x1d')](function(_0x13d5ba){if(_0x13d5ba){return _0x13d5ba?{'count':_0x526480,'rows':_0x13d5ba}:null;}})['then'](respondWithResult(_0xd881ed,null))[_0x21e8('0x3f')](handleError(_0xd881ed,null));};exports[_0x21e8('0x4b')]=function(_0x519095,_0x43bd2f,_0x24c3ab){return db['Interval'][_0x21e8('0x48')]({'where':{'id':_0x519095[_0x21e8('0x41')]['id']}})[_0x21e8('0x1d')](handleEntityNotFound(_0x43bd2f,null))[_0x21e8('0x1d')](function(_0x21e861){if(_0x21e861){return db[_0x21e8('0x4c')][_0x21e8('0x4d')](function(_0x1a8e20){return db[_0x21e8('0x3a')][_0x21e8('0x1e')]({'where':{'IntervalId':_0x519095[_0x21e8('0x41')]['id']},'transaction':_0x1a8e20})[_0x21e8('0x1d')](function(_0xb0553a){var _0x30730a=_['map'](_0x519095[_0x21e8('0x45')],function(_0x2ca022){delete _0x2ca022['id'];_0x2ca022['IntervalId']=_0x519095[_0x21e8('0x41')]['id'];return _0x2ca022;});return db[_0x21e8('0x3a')]['bulkCreate'](_0x30730a,{'transaction':_0x1a8e20});});})[_0x21e8('0x1d')](function(){return db[_0x21e8('0x3a')][_0x21e8('0x3d')]({'where':{'IntervalId':_0x519095['params']['id']}});});}})[_0x21e8('0x1d')](respondWithResult(_0x43bd2f,null))[_0x21e8('0x3f')](handleError(_0x43bd2f,null));};