@@ -35,7 +35,7 @@ func main() {
35
35
flag .Parse ()
36
36
ctx := context .Background ()
37
37
cfg := config .NewConfig ()
38
- buckets , err := buckets (ctx , cfg )
38
+ buckets , err := storage . NewAPI (ctx , cfg )
39
39
if err != nil {
40
40
log .Fatal (err )
41
41
}
@@ -67,18 +67,15 @@ func main() {
67
67
}
68
68
69
69
// TODO: monitor duration and processed data volume.
70
- func handleMerge (cfg * tconfig.Config , s * stores ) content.HandlerFunc {
70
+ func handleMerge (cfg * tconfig.Config , s * storage. API ) content.HandlerFunc {
71
71
return func (w http.ResponseWriter , r * http.Request ) error {
72
72
ctx := r .Context ()
73
73
date := r .URL .Query ().Get ("date" )
74
74
if _ , err := time .Parse ("2006-01-02" , date ); err != nil {
75
75
return content .Error (err , http .StatusBadRequest )
76
76
}
77
- it , err := s .upload .List (ctx , date )
78
- if err != nil {
79
- return err
80
- }
81
- mergeWriter , err := s .merge .Writer (ctx , date + ".json" )
77
+ it := s .Upload .Objects (ctx , date )
78
+ mergeWriter , err := s .Merge .Object (date + ".json" ).NewWriter (ctx )
82
79
if err != nil {
83
80
return err
84
81
}
@@ -94,7 +91,7 @@ func handleMerge(cfg *tconfig.Config, s *stores) content.HandlerFunc {
94
91
return err
95
92
}
96
93
count ++
97
- reader , err := s .upload . Reader ( ctx , obj )
94
+ reader , err := s .Upload . Object ( obj ). NewReader ( ctx )
98
95
if err != nil {
99
96
return err
100
97
}
@@ -113,20 +110,20 @@ func handleMerge(cfg *tconfig.Config, s *stores) content.HandlerFunc {
113
110
if err := mergeWriter .Close (); err != nil {
114
111
return err
115
112
}
116
- msg := fmt .Sprintf ("merged %d reports into %s/%s" , count , s .merge . Location (), date )
113
+ msg := fmt .Sprintf ("merged %d reports into %s/%s" , count , s .Merge . URI (), date )
117
114
return content .Text (w , msg , http .StatusOK )
118
115
}
119
116
}
120
117
121
- func handleChart (cfg * tconfig.Config , s * stores ) content.HandlerFunc {
118
+ func handleChart (cfg * tconfig.Config , s * storage. API ) content.HandlerFunc {
122
119
return func (w http.ResponseWriter , r * http.Request ) error {
123
120
ctx := r .Context ()
124
121
// TODO: use start date and end date to create a timeseries of data.
125
122
date := r .URL .Query ().Get ("date" )
126
123
if _ , err := time .Parse ("2006-01-02" , date ); err != nil {
127
124
return content .Error (err , http .StatusBadRequest )
128
125
}
129
- in , err := s .merge . Reader ( ctx , date + ".json" )
126
+ in , err := s .Merge . Object ( date + ".json" ). NewReader ( ctx )
130
127
if errors .Is (err , storage .ErrObjectNotExist ) {
131
128
return content .Error (err , http .StatusNotFound )
132
129
}
@@ -153,7 +150,7 @@ func handleChart(cfg *tconfig.Config, s *stores) content.HandlerFunc {
153
150
data := nest (reports )
154
151
charts := charts (cfg , date , data , xs )
155
152
obj := fmt .Sprintf ("%s.json" , date )
156
- out , err := s .chart . Writer ( ctx , obj )
153
+ out , err := s .Chart . Object ( obj ). NewWriter ( ctx )
157
154
if err != nil {
158
155
return err
159
156
}
@@ -166,7 +163,7 @@ func handleChart(cfg *tconfig.Config, s *stores) content.HandlerFunc {
166
163
return err
167
164
}
168
165
169
- msg := fmt .Sprintf ("processed %d reports into %s" , len (reports ), s .chart . Location ()+ "/" + obj )
166
+ msg := fmt .Sprintf ("processed %d reports into %s" , len (reports ), s .Chart . URI ()+ "/" + obj )
170
167
return content .Text (w , msg , http .StatusOK )
171
168
}
172
169
}
@@ -459,49 +456,3 @@ func fsys(fromOS bool) fs.FS {
459
456
}
460
457
return f
461
458
}
462
-
463
- type stores struct {
464
- upload storage.Store
465
- merge storage.Store
466
- chart storage.Store
467
- }
468
-
469
- func buckets (ctx context.Context , cfg * config.Config ) (* stores , error ) {
470
- if cfg .UseGCS && ! cfg .OnCloudRun () {
471
- if err := os .Setenv ("STORAGE_EMULATOR_HOST" , cfg .StorageEmulatorHost ); err != nil {
472
- return nil , err
473
- }
474
- }
475
- var upload storage.Store
476
- var merge storage.Store
477
- var chart storage.Store
478
- var err error
479
- if cfg .UseGCS {
480
- upload , err = storage .NewGCStore (ctx , cfg .ProjectID , cfg .UploadBucket )
481
- if err != nil {
482
- return nil , err
483
- }
484
- merge , err = storage .NewGCStore (ctx , cfg .ProjectID , cfg .MergedBucket )
485
- if err != nil {
486
- return nil , err
487
- }
488
- chart , err = storage .NewGCStore (ctx , cfg .ProjectID , cfg .ChartDataBucket )
489
- if err != nil {
490
- return nil , err
491
- }
492
- } else {
493
- upload , err = storage .NewFSStore (ctx , cfg .LocalStorage , cfg .UploadBucket )
494
- if err != nil {
495
- return nil , err
496
- }
497
- merge , err = storage .NewFSStore (ctx , cfg .LocalStorage , cfg .MergedBucket )
498
- if err != nil {
499
- return nil , err
500
- }
501
- chart , err = storage .NewFSStore (ctx , cfg .LocalStorage , cfg .ChartDataBucket )
502
- if err != nil {
503
- return nil , err
504
- }
505
- }
506
- return & stores {upload , merge , chart }, nil
507
- }
0 commit comments