46ecd0e561e23247ed040031703309d54fdcec54
[motion2.git] / server / api / cdr / cdr.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 _0x6000=['bluebird','mustache','path','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','json','count','offset','limit','status','set','Content-Range','reject','then','destroy','end','error','stack','send','index','Cdr','rawAttributes','fieldName','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','nolimit','where','pick','filter','merge','type','VIRTUAL','options','findAll','rows','catch','show','params','includeAll','include','find','create','body','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x18ad14,_0x4a4127){var _0x511e6e=function(_0x57c889){while(--_0x57c889){_0x18ad14['push'](_0x18ad14['shift']());}};_0x511e6e(++_0x4a4127);}(_0x6000,0xd7));var _0x0600=function(_0x50d401,_0x49c3ba){_0x50d401=_0x50d401-0x0;var _0xc462ed=_0x6000[_0x50d401];return _0xc462ed;};'use strict';var pdf=require(_0x0600('0x0'));var emlformat=require(_0x0600('0x1'));var rimraf=require(_0x0600('0x2'));var zipdir=require(_0x0600('0x3'));var jsonpatch=require(_0x0600('0x4'));var rp=require(_0x0600('0x5'));var moment=require(_0x0600('0x6'));var BPromise=require(_0x0600('0x7'));var Mustache=require(_0x0600('0x8'));var util=require('util');var path=require(_0x0600('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x0600('0xa'));var squel=require(_0x0600('0xb'));var crypto=require(_0x0600('0xc'));var jsforce=require(_0x0600('0xd'));var deskjs=require(_0x0600('0xe'));var toCsv=require(_0x0600('0xf'));var querystring=require(_0x0600('0x10'));var Papa=require(_0x0600('0x11'));var Redis=require('ioredis');var authService=require(_0x0600('0x12'));var qs=require(_0x0600('0x13'));var as=require(_0x0600('0x14'));var hardwareService=require(_0x0600('0x15'));var logger=require(_0x0600('0x16'))('api');var utils=require(_0x0600('0x17'));var config=require(_0x0600('0x18'));var db=require(_0x0600('0x19'))['db'];function respondWithStatusCode(_0x3b1f1f,_0x1147db){_0x1147db=_0x1147db||0xcc;return function(_0xbdf8c1){if(_0xbdf8c1){return _0x3b1f1f[_0x0600('0x1a')](_0x1147db);}return _0x3b1f1f['status'](_0x1147db)['end']();};}function respondWithResult(_0x448a1a,_0x27811c){_0x27811c=_0x27811c||0xc8;return function(_0x14d7fd){if(_0x14d7fd){return _0x448a1a['status'](_0x27811c)[_0x0600('0x1b')](_0x14d7fd);}};}function respondWithFilteredResult(_0x536247,_0x4b4961){return function(_0x429874){if(_0x429874){var _0x42b1f2=_0x429874[_0x0600('0x1c')],_0x368165=_0x4b4961[_0x0600('0x1d')],_0x40d82d=_0x4b4961[_0x0600('0x1d')]+_0x4b4961[_0x0600('0x1e')],_0x3b23c9;if(_0x40d82d>=_0x42b1f2){_0x40d82d=_0x42b1f2;_0x3b23c9=0xc8;}else{_0x3b23c9=0xce;}_0x536247[_0x0600('0x1f')](_0x3b23c9);return _0x536247[_0x0600('0x20')](_0x0600('0x21'),_0x368165+'-'+_0x40d82d+'/'+_0x42b1f2)[_0x0600('0x1b')](_0x429874);}return null;};}function patchUpdates(_0x2ef193){return function(_0x1ebac6){try{jsonpatch['apply'](_0x1ebac6,_0x2ef193,!![]);}catch(_0x5e3323){return BPromise[_0x0600('0x22')](_0x5e3323);}return _0x1ebac6['save']();};}function saveUpdates(_0x56a5a9,_0x16352e){return function(_0x534bca){if(_0x534bca){return _0x534bca['update'](_0x56a5a9)[_0x0600('0x23')](function(_0x58f7a4){return _0x58f7a4;});}return null;};}function removeEntity(_0x126448,_0x50ceaf){return function(_0x3e7b87){if(_0x3e7b87){return _0x3e7b87[_0x0600('0x24')]()[_0x0600('0x23')](function(){_0x126448[_0x0600('0x1f')](0xcc)[_0x0600('0x25')]();});}};}function handleEntityNotFound(_0x40d3f0,_0x189a56){return function(_0x5ef3e6){if(!_0x5ef3e6){_0x40d3f0[_0x0600('0x1a')](0x194);}return _0x5ef3e6;};}function handleError(_0x31e6cc,_0x544c9c){_0x544c9c=_0x544c9c||0x1f4;return function(_0xd1fa91){logger[_0x0600('0x26')](_0xd1fa91[_0x0600('0x27')]);if(_0xd1fa91['name']){delete _0xd1fa91['name'];}_0x31e6cc[_0x0600('0x1f')](_0x544c9c)[_0x0600('0x28')](_0xd1fa91);};}exports[_0x0600('0x29')]=function(_0x5b1886,_0x3a3c39){var _0x378361={},_0x62a29c={},_0xbe1af8={'count':0x0,'rows':[]};var _0x191185=_['map'](db[_0x0600('0x2a')][_0x0600('0x2b')],function(_0xb9d968){return{'name':_0xb9d968[_0x0600('0x2c')],'type':_0xb9d968['type'][_0x0600('0x2d')]};});_0x62a29c[_0x0600('0x2e')]=_[_0x0600('0x2f')](_0x191185,_0x0600('0x30'));_0x62a29c[_0x0600('0x31')]=_[_0x0600('0x32')](_0x5b1886[_0x0600('0x31')]);_0x62a29c[_0x0600('0x33')]=_[_0x0600('0x34')](_0x62a29c[_0x0600('0x2e')],_0x62a29c[_0x0600('0x31')]);_0x378361[_0x0600('0x35')]=_[_0x0600('0x34')](_0x62a29c[_0x0600('0x2e')],qs['fields'](_0x5b1886['query'][_0x0600('0x36')]));_0x378361[_0x0600('0x35')]=_0x378361[_0x0600('0x35')][_0x0600('0x37')]?_0x378361['attributes']:_0x62a29c[_0x0600('0x2e')];if(!_0x5b1886[_0x0600('0x31')]['hasOwnProperty'](_0x0600('0x38'))){_0x378361[_0x0600('0x1e')]=qs[_0x0600('0x1e')](_0x5b1886['query'][_0x0600('0x1e')]);_0x378361['offset']=qs[_0x0600('0x1d')](_0x5b1886['query'][_0x0600('0x1d')]);}_0x378361['order']=qs['sort'](_0x5b1886[_0x0600('0x31')]['sort']);_0x378361[_0x0600('0x39')]=qs[_0x0600('0x33')](_[_0x0600('0x3a')](_0x5b1886[_0x0600('0x31')],_0x62a29c[_0x0600('0x33')]),_0x191185);if(_0x5b1886[_0x0600('0x31')][_0x0600('0x3b')]){_0x378361[_0x0600('0x39')]=_[_0x0600('0x3c')](_0x378361['where'],{'$or':_[_0x0600('0x2f')](_0x191185,function(_0x22fd82){if(_0x22fd82[_0x0600('0x3d')]!==_0x0600('0x3e')){var _0x496f33={};_0x496f33[_0x22fd82[_0x0600('0x30')]]={'$like':'%'+_0x5b1886[_0x0600('0x31')][_0x0600('0x3b')]+'%'};return _0x496f33;}})});}_0x378361=_[_0x0600('0x3c')]({},_0x378361,_0x5b1886[_0x0600('0x3f')]);var _0x2b89bd={'where':_0x378361[_0x0600('0x39')]};return db[_0x0600('0x2a')][_0x0600('0x1c')](_0x2b89bd)[_0x0600('0x23')](function(_0x2d179b){_0xbe1af8[_0x0600('0x1c')]=_0x2d179b;if(_0x5b1886[_0x0600('0x31')]['includeAll']){_0x378361['include']=[{'all':!![]}];}return db[_0x0600('0x2a')][_0x0600('0x40')](_0x378361);})[_0x0600('0x23')](function(_0x5dd571){_0xbe1af8[_0x0600('0x41')]=_0x5dd571;return _0xbe1af8;})['then'](respondWithFilteredResult(_0x3a3c39,_0x378361))[_0x0600('0x42')](handleError(_0x3a3c39,null));};exports[_0x0600('0x43')]=function(_0x289cfd,_0x479a61){var _0x4c3e4f={'raw':!![],'where':{'id':_0x289cfd[_0x0600('0x44')]['id']}},_0x32fe70={};_0x32fe70[_0x0600('0x2e')]=_[_0x0600('0x32')](db['Cdr'][_0x0600('0x2b')]);_0x32fe70[_0x0600('0x31')]=_[_0x0600('0x32')](_0x289cfd[_0x0600('0x31')]);_0x32fe70['filters']=_[_0x0600('0x34')](_0x32fe70[_0x0600('0x2e')],_0x32fe70[_0x0600('0x31')]);_0x4c3e4f[_0x0600('0x35')]=_[_0x0600('0x34')](_0x32fe70[_0x0600('0x2e')],qs[_0x0600('0x36')](_0x289cfd[_0x0600('0x31')][_0x0600('0x36')]));_0x4c3e4f['attributes']=_0x4c3e4f['attributes'][_0x0600('0x37')]?_0x4c3e4f[_0x0600('0x35')]:_0x32fe70[_0x0600('0x2e')];if(_0x289cfd[_0x0600('0x31')][_0x0600('0x45')]){_0x4c3e4f[_0x0600('0x46')]=[{'all':!![]}];}_0x4c3e4f=_[_0x0600('0x3c')]({},_0x4c3e4f,_0x289cfd['options']);return db[_0x0600('0x2a')][_0x0600('0x47')](_0x4c3e4f)[_0x0600('0x23')](handleEntityNotFound(_0x479a61,null))[_0x0600('0x23')](respondWithResult(_0x479a61,null))['catch'](handleError(_0x479a61,null));};exports[_0x0600('0x48')]=function(_0x20edfb,_0x26fd37){return db['Cdr']['create'](_0x20edfb[_0x0600('0x49')],{})['then'](respondWithResult(_0x26fd37,0xc9))['catch'](handleError(_0x26fd37,null));};exports['update']=function(_0x16e2ef,_0x181fc9){if(_0x16e2ef[_0x0600('0x49')]['id']){delete _0x16e2ef[_0x0600('0x49')]['id'];}return db[_0x0600('0x2a')][_0x0600('0x47')]({'where':{'id':_0x16e2ef['params']['id']}})[_0x0600('0x23')](handleEntityNotFound(_0x181fc9,null))[_0x0600('0x23')](saveUpdates(_0x16e2ef[_0x0600('0x49')],null))[_0x0600('0x23')](respondWithResult(_0x181fc9,null))[_0x0600('0x42')](handleError(_0x181fc9,null));};exports[_0x0600('0x24')]=function(_0x43f1f1,_0x33e253){return db[_0x0600('0x2a')][_0x0600('0x47')]({'where':{'id':_0x43f1f1['params']['id']}})['then'](handleEntityNotFound(_0x33e253,null))['then'](removeEntity(_0x33e253,null))['catch'](handleError(_0x33e253,null));};exports['describe']=function(_0x20bd31,_0x53deca){return db['Cdr']['describe']()[_0x0600('0x23')](respondWithResult(_0x53deca,null))[_0x0600('0x42')](handleError(_0x53deca,null));};