Built motion from commit d13fb11b.|2.6.34
[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 _0x4b84=['save','update','then','destroy','error','name','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Cdr','includeAll','include','findAll','catch','show','find','create','body','params','describe','eml-format','rimraf','request-promise','mustache','util','path','fs-extra','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','limit','count','offset','set','Content-Range','apply','reject'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x4b84,0x1cc));var _0x44b8=function(_0xed5f9c,_0x5a25cd){_0xed5f9c=_0xed5f9c-0x0;var _0x3a1c43=_0x4b84[_0xed5f9c];return _0x3a1c43;};'use strict';var emlformat=require(_0x44b8('0x0'));var rimraf=require(_0x44b8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x44b8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x44b8('0x3'));var util=require(_0x44b8('0x4'));var path=require(_0x44b8('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x44b8('0x6'));var _=require('lodash');var squel=require(_0x44b8('0x7'));var crypto=require('crypto');var jsforce=require(_0x44b8('0x8'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x44b8('0x9'));var Papa=require(_0x44b8('0xa'));var Redis=require(_0x44b8('0xb'));var authService=require('../../components/auth/service');var qs=require(_0x44b8('0xc'));var as=require(_0x44b8('0xd'));var hardwareService=require(_0x44b8('0xe'));var logger=require(_0x44b8('0xf'))(_0x44b8('0x10'));var utils=require(_0x44b8('0x11'));var config=require(_0x44b8('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x44b8('0x13'))['db'];function respondWithStatusCode(_0x4301a6,_0x4bcc43){_0x4bcc43=_0x4bcc43||0xcc;return function(_0x194230){if(_0x194230){return _0x4301a6['sendStatus'](_0x4bcc43);}return _0x4301a6[_0x44b8('0x14')](_0x4bcc43)[_0x44b8('0x15')]();};}function respondWithResult(_0x4df670,_0x63e8f6){_0x63e8f6=_0x63e8f6||0xc8;return function(_0x4be54c){if(_0x4be54c){return _0x4df670['status'](_0x63e8f6)[_0x44b8('0x16')](_0x4be54c);}};}function respondWithFilteredResult(_0x2af0ad,_0x1722da){return function(_0x41ab46){if(_0x41ab46){var _0x5e52f2=typeof _0x1722da['offset']==='undefined'&&typeof _0x1722da[_0x44b8('0x17')]==='undefined';var _0x28ef36=_0x41ab46[_0x44b8('0x18')];var _0x55e258=_0x5e52f2?0x0:_0x1722da[_0x44b8('0x19')];var _0xe3de8f=_0x5e52f2?_0x41ab46['count']:_0x1722da[_0x44b8('0x19')]+_0x1722da[_0x44b8('0x17')];var _0x4b600f;if(_0xe3de8f>=_0x28ef36){_0xe3de8f=_0x28ef36;_0x4b600f=0xc8;}else{_0x4b600f=0xce;}_0x2af0ad[_0x44b8('0x14')](_0x4b600f);return _0x2af0ad[_0x44b8('0x1a')](_0x44b8('0x1b'),_0x55e258+'-'+_0xe3de8f+'/'+_0x28ef36)[_0x44b8('0x16')](_0x41ab46);}return null;};}function patchUpdates(_0x102ef9){return function(_0x369c09){try{jsonpatch[_0x44b8('0x1c')](_0x369c09,_0x102ef9,!![]);}catch(_0x9b0536){return BPromise[_0x44b8('0x1d')](_0x9b0536);}return _0x369c09[_0x44b8('0x1e')]();};}function saveUpdates(_0x1d642b,_0x14996c){return function(_0x48327e){if(_0x48327e){return _0x48327e[_0x44b8('0x1f')](_0x1d642b)[_0x44b8('0x20')](function(_0x416b34){return _0x416b34;});}return null;};}function removeEntity(_0x1418db,_0x305a5c){return function(_0x51a34a){if(_0x51a34a){return _0x51a34a[_0x44b8('0x21')]()['then'](function(){_0x1418db[_0x44b8('0x14')](0xcc)[_0x44b8('0x15')]();});}};}function handleEntityNotFound(_0x25a0c1,_0x47689e){return function(_0x230a3d){if(!_0x230a3d){_0x25a0c1['sendStatus'](0x194);}return _0x230a3d;};}function handleError(_0x474f01,_0x502acf){_0x502acf=_0x502acf||0x1f4;return function(_0x41d673){logger[_0x44b8('0x22')](_0x41d673['stack']);if(_0x41d673[_0x44b8('0x23')]){delete _0x41d673[_0x44b8('0x23')];}_0x474f01[_0x44b8('0x14')](_0x502acf)['send'](_0x41d673);};}exports[_0x44b8('0x24')]=function(_0x242342,_0x53d9c7){var _0x2e0174={},_0x4a182d={},_0xfb0028={'count':0x0,'rows':[]};var _0x5a544c=_['map'](db['Cdr'][_0x44b8('0x25')],function(_0x29b18d){return{'name':_0x29b18d[_0x44b8('0x26')],'type':_0x29b18d[_0x44b8('0x27')][_0x44b8('0x28')]};});_0x4a182d[_0x44b8('0x29')]=_[_0x44b8('0x2a')](_0x5a544c,_0x44b8('0x23'));_0x4a182d[_0x44b8('0x2b')]=_[_0x44b8('0x2c')](_0x242342[_0x44b8('0x2b')]);_0x4a182d[_0x44b8('0x2d')]=_[_0x44b8('0x2e')](_0x4a182d['model'],_0x4a182d[_0x44b8('0x2b')]);_0x2e0174['attributes']=_[_0x44b8('0x2e')](_0x4a182d[_0x44b8('0x29')],qs[_0x44b8('0x2f')](_0x242342[_0x44b8('0x2b')][_0x44b8('0x2f')]));_0x2e0174['attributes']=_0x2e0174[_0x44b8('0x30')][_0x44b8('0x31')]?_0x2e0174[_0x44b8('0x30')]:_0x4a182d[_0x44b8('0x29')];if(!_0x242342[_0x44b8('0x2b')]['hasOwnProperty'](_0x44b8('0x32'))){_0x2e0174[_0x44b8('0x17')]=qs[_0x44b8('0x17')](_0x242342[_0x44b8('0x2b')][_0x44b8('0x17')]);_0x2e0174[_0x44b8('0x19')]=qs[_0x44b8('0x19')](_0x242342[_0x44b8('0x2b')][_0x44b8('0x19')]);}_0x2e0174[_0x44b8('0x33')]=qs[_0x44b8('0x34')](_0x242342[_0x44b8('0x2b')][_0x44b8('0x34')]);_0x2e0174[_0x44b8('0x35')]=qs[_0x44b8('0x2d')](_[_0x44b8('0x36')](_0x242342[_0x44b8('0x2b')],_0x4a182d[_0x44b8('0x2d')]),_0x5a544c);if(_0x242342[_0x44b8('0x2b')][_0x44b8('0x37')]){_0x2e0174[_0x44b8('0x35')]=_[_0x44b8('0x38')](_0x2e0174['where'],{'$or':_[_0x44b8('0x2a')](_0x5a544c,function(_0xd61f14){if(_0xd61f14['type']!==_0x44b8('0x39')){var _0x2b9139={};_0x2b9139[_0xd61f14[_0x44b8('0x23')]]={'$like':'%'+_0x242342[_0x44b8('0x2b')]['filter']+'%'};return _0x2b9139;}})});}_0x2e0174=_[_0x44b8('0x38')]({},_0x2e0174,_0x242342[_0x44b8('0x3a')]);var _0x3611b4={'where':_0x2e0174[_0x44b8('0x35')]};return db[_0x44b8('0x3b')][_0x44b8('0x18')](_0x3611b4)[_0x44b8('0x20')](function(_0x3581b8){_0xfb0028[_0x44b8('0x18')]=_0x3581b8;if(_0x242342[_0x44b8('0x2b')][_0x44b8('0x3c')]){_0x2e0174[_0x44b8('0x3d')]=[{'all':!![]}];}return db[_0x44b8('0x3b')][_0x44b8('0x3e')](_0x2e0174);})[_0x44b8('0x20')](function(_0x29b43f){_0xfb0028['rows']=_0x29b43f;return _0xfb0028;})[_0x44b8('0x20')](respondWithFilteredResult(_0x53d9c7,_0x2e0174))[_0x44b8('0x3f')](handleError(_0x53d9c7,null));};exports[_0x44b8('0x40')]=function(_0x57f3b9,_0xd424f8){var _0x1054c5={'raw':!![],'where':{'id':_0x57f3b9['params']['id']}},_0x229cc9={};_0x229cc9[_0x44b8('0x29')]=_[_0x44b8('0x2c')](db[_0x44b8('0x3b')][_0x44b8('0x25')]);_0x229cc9[_0x44b8('0x2b')]=_['keys'](_0x57f3b9['query']);_0x229cc9[_0x44b8('0x2d')]=_[_0x44b8('0x2e')](_0x229cc9[_0x44b8('0x29')],_0x229cc9[_0x44b8('0x2b')]);_0x1054c5[_0x44b8('0x30')]=_[_0x44b8('0x2e')](_0x229cc9[_0x44b8('0x29')],qs[_0x44b8('0x2f')](_0x57f3b9[_0x44b8('0x2b')][_0x44b8('0x2f')]));_0x1054c5[_0x44b8('0x30')]=_0x1054c5[_0x44b8('0x30')][_0x44b8('0x31')]?_0x1054c5[_0x44b8('0x30')]:_0x229cc9[_0x44b8('0x29')];if(_0x57f3b9[_0x44b8('0x2b')][_0x44b8('0x3c')]){_0x1054c5[_0x44b8('0x3d')]=[{'all':!![]}];}_0x1054c5=_[_0x44b8('0x38')]({},_0x1054c5,_0x57f3b9['options']);return db['Cdr'][_0x44b8('0x41')](_0x1054c5)[_0x44b8('0x20')](handleEntityNotFound(_0xd424f8,null))[_0x44b8('0x20')](respondWithResult(_0xd424f8,null))[_0x44b8('0x3f')](handleError(_0xd424f8,null));};exports[_0x44b8('0x42')]=function(_0x1bbf1e,_0x411ed6){return db['Cdr'][_0x44b8('0x42')](_0x1bbf1e['body'],{})[_0x44b8('0x20')](respondWithResult(_0x411ed6,0xc9))[_0x44b8('0x3f')](handleError(_0x411ed6,null));};exports[_0x44b8('0x1f')]=function(_0x9207bf,_0x103d57){if(_0x9207bf[_0x44b8('0x43')]['id']){delete _0x9207bf['body']['id'];}return db[_0x44b8('0x3b')][_0x44b8('0x41')]({'where':{'id':_0x9207bf[_0x44b8('0x44')]['id']}})[_0x44b8('0x20')](handleEntityNotFound(_0x103d57,null))['then'](saveUpdates(_0x9207bf[_0x44b8('0x43')],null))[_0x44b8('0x20')](respondWithResult(_0x103d57,null))[_0x44b8('0x3f')](handleError(_0x103d57,null));};exports[_0x44b8('0x21')]=function(_0x44ec23,_0x470ebb){return db['Cdr'][_0x44b8('0x41')]({'where':{'id':_0x44ec23[_0x44b8('0x44')]['id']}})[_0x44b8('0x20')](handleEntityNotFound(_0x470ebb,null))[_0x44b8('0x20')](removeEntity(_0x470ebb,null))[_0x44b8('0x3f')](handleError(_0x470ebb,null));};exports['describe']=function(_0x493840,_0x2516fc){return db['Cdr'][_0x44b8('0x45')]()['then'](respondWithResult(_0x2516fc,null))[_0x44b8('0x3f')](handleError(_0x2516fc,null));};