55//
66
77const { Storage } = require ( '@google-cloud/storage' )
8- const moment = require ( 'moment' )
98const express = require ( 'express' )
109const bodyParser = require ( 'body-parser' )
1110const app = express ( )
@@ -24,7 +23,7 @@ function csvStream (chunk) {
2423 return
2524 } catch ( e ) {
2625 console . log ( e )
27- }
26+ }
2827}
2928
3029const counts = { bytes : 0 , total : 0 }
@@ -65,19 +64,17 @@ function summary (chunk) {
6564 return
6665 }
6766
68- async function collectData ( ) {
67+ async function collectData ( date ) {
6968 const storage = new Storage ( {
7069 keyFilename : "metrics-processor-service-key.json" ,
7170 } )
72- let date = moment ( new Date ( ) )
73- date = moment ( date , 'YYYYMMDD' ) . subtract ( 1 , 'days' ) . format ( 'YYYYMMDD' )
7471 const filePrefix = date . toString ( ) . concat ( '/' )
7572 console . log ( filePrefix )
7673 const [ files ] = await storage . bucket ( 'processed-logs-nodejs' ) . getFiles ( { prefix : `${ filePrefix } ` } )
7774 for ( const file of files ) {
78- const data = await storage . bucket ( 'processed-logs-nodejs' ) . file ( file . name ) . download ( )
75+ const data = await storage . bucket ( 'processed-logs-nodejs' ) . file ( file . name ) . download ( )
7976 const stringContents = data [ 0 ] . toString ( )
80- const contentsArray = stringContents . split ( '\n' )
77+ const contentsArray = stringContents . split ( '\n' )
8178 for ( const line of contentsArray ) {
8279 try {
8380 const csvparse = csvStream ( line )
@@ -87,14 +84,12 @@ async function collectData () {
8784 }
8885}
8986
90- async function produceSummaries ( ) {
87+ async function produceSummaries ( date ) {
9188 const storage = new Storage ( {
9289 keyFilename : "metrics-processor-service-key.json" ,
93- } )
94- await collectData ( )
90+ } )
91+ await collectData ( date )
9592 prepare ( )
96- let date = moment ( new Date ( ) )
97- date = moment ( date , 'YYYYMMDD' ) . subtract ( 1 , 'days' ) . format ( 'YYYYMMDD' )
9893 let outputFile = "nodejs.org-access.log." + date . toString ( ) + ".json"
9994 storage . bucket ( 'access-logs-summaries-nodejs' ) . file ( outputFile ) . save ( JSON . stringify ( counts ) , function ( err ) {
10095 if ( err ) {
@@ -106,7 +101,10 @@ async function produceSummaries () {
106101}
107102
108103app . post ( '/' , async ( req , res ) => {
109- await produceSummaries ( )
104+ // ToDo: accept optional date parameter https://github.com/nodejs/build/issues/3780
105+ const yesterday = new Date ( ) . getTime ( ) - ( 24 * 60 * 60 * 1000 )
106+ const date = new Date ( yesterday ) . toISOString ( ) . slice ( 0 , 10 ) . replace ( / - / g, '' )
107+ await produceSummaries ( date )
110108 res . status ( 200 ) . send ( )
111109} )
112110
0 commit comments