@@ -1930,60 +1930,61 @@ const processRequest = (params) => {
1930
1930
} , params ) ;
1931
1931
break ;
1932
1932
case 'download' : {
1933
- if ( paths [ 4 ] && paths [ 4 ] !== '' ) {
1934
- common . db . collection ( "long_tasks" ) . findOne ( { _id : paths [ 4 ] } , function ( err , data ) {
1935
- if ( err ) {
1936
- common . returnMessage ( params , 400 , err ) ;
1937
- }
1938
- else {
1939
- var filename = data . report_name ;
1940
- var type = filename . split ( "." ) ;
1941
- type = type [ type . length - 1 ] ;
1942
- var myfile = paths [ 4 ] ;
1943
- var headers = { } ;
1944
-
1945
- countlyFs . gridfs . getSize ( "task_results" , myfile , { id : paths [ 4 ] } , function ( err2 , size ) {
1946
- if ( err2 ) {
1947
- common . returnMessage ( params , 400 , err2 ) ;
1948
- }
1949
- else if ( parseInt ( size ) === 0 ) {
1950
- if ( data . type !== "dbviewer" ) {
1951
- common . returnMessage ( params , 400 , "Export size is 0" ) ;
1952
- }
1953
- //handling older aggregations that aren't saved in countly_fs
1954
- else if ( ! data . gridfs && data . data ) {
1955
- type = "json" ;
1956
- filename = data . name + "." + type ;
1957
- headers = { } ;
1958
- headers [ "Content-Type" ] = countlyApi . data . exports . getType ( type ) ;
1959
- headers [ "Content-Disposition" ] = "attachment;filename=" + encodeURIComponent ( filename ) ;
1960
- params . res . writeHead ( 200 , headers ) ;
1961
- params . res . write ( data . data ) ;
1962
- params . res . end ( ) ;
1933
+ validateRead ( params , "core" , ( ) => {
1934
+ if ( paths [ 4 ] && paths [ 4 ] !== '' ) {
1935
+ common . db . collection ( "long_tasks" ) . findOne ( { _id : paths [ 4 ] } , function ( err , data ) {
1936
+ if ( err ) {
1937
+ common . returnMessage ( params , 400 , err ) ;
1938
+ }
1939
+ else {
1940
+ var filename = data . report_name ;
1941
+ var type = filename . split ( "." ) ;
1942
+ type = type [ type . length - 1 ] ;
1943
+ var myfile = paths [ 4 ] ;
1944
+ var headers = { } ;
1945
+
1946
+ countlyFs . gridfs . getSize ( "task_results" , myfile , { id : paths [ 4 ] } , function ( err2 , size ) {
1947
+ if ( err2 ) {
1948
+ common . returnMessage ( params , 400 , err2 ) ;
1963
1949
}
1964
- }
1965
- else {
1966
- countlyFs . gridfs . getStream ( "task_results" , myfile , { id : myfile } , function ( err5 , stream ) {
1967
- if ( err5 ) {
1968
- common . returnMessage ( params , 400 , "Export stream does not exist" ) ;
1950
+ else if ( parseInt ( size ) === 0 ) {
1951
+ if ( data . type !== "dbviewer" ) {
1952
+ common . returnMessage ( params , 400 , "Export size is 0" ) ;
1969
1953
}
1970
- else {
1954
+ //handling older aggregations that aren't saved in countly_fs
1955
+ else if ( ! data . gridfs && data . data ) {
1956
+ type = "json" ;
1957
+ filename = data . name + "." + type ;
1971
1958
headers = { } ;
1972
1959
headers [ "Content-Type" ] = countlyApi . data . exports . getType ( type ) ;
1973
1960
headers [ "Content-Disposition" ] = "attachment;filename=" + encodeURIComponent ( filename ) ;
1974
1961
params . res . writeHead ( 200 , headers ) ;
1975
- stream . pipe ( params . res ) ;
1962
+ params . res . write ( data . data ) ;
1963
+ params . res . end ( ) ;
1976
1964
}
1977
- } ) ;
1978
- }
1979
- } ) ;
1980
- }
1981
-
1982
- } ) ;
1983
- }
1984
- else {
1985
- common . returnMessage ( params , 400 , 'Missing filename' ) ;
1986
- }
1965
+ }
1966
+ else {
1967
+ countlyFs . gridfs . getStream ( "task_results" , myfile , { id : myfile } , function ( err5 , stream ) {
1968
+ if ( err5 ) {
1969
+ common . returnMessage ( params , 400 , "Export stream does not exist" ) ;
1970
+ }
1971
+ else {
1972
+ headers = { } ;
1973
+ headers [ "Content-Type" ] = countlyApi . data . exports . getType ( type ) ;
1974
+ headers [ "Content-Disposition" ] = "attachment;filename=" + encodeURIComponent ( filename ) ;
1975
+ params . res . writeHead ( 200 , headers ) ;
1976
+ stream . pipe ( params . res ) ;
1977
+ }
1978
+ } ) ;
1979
+ }
1980
+ } ) ;
1981
+ }
1982
+ } ) ;
1983
+ }
1984
+ else {
1985
+ common . returnMessage ( params , 400 , 'Missing filename' ) ;
1986
+ }
1987
+ } ) ;
1987
1988
break ;
1988
1989
}
1989
1990
case 'data' :
0 commit comments