Skip to content

Commit

Permalink
🥅 Add error handle. Update logs.
Browse files Browse the repository at this point in the history
  • Loading branch information
nkmr-jp committed Jul 23, 2022
1 parent 162a907 commit 07bef4e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 15 deletions.
39 changes: 25 additions & 14 deletions fetch.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,29 +44,31 @@ func Fetch(ctx context.Context, event event.Event) error {
return fmt.Errorf("urls is nil")
}

var success, failure uint8
var results Results
var successes, failures Results
for i := range urls {
object := parseURL(urls[i])
buf := get(urls[i])
if err := save(ctx, bucket, object, buf); err != nil {
failure++
results = append(results, fmt.Sprintf("failure: %s", object))
failures = append(failures, object)
} else {
success++
results = append(results, fmt.Sprintf("success: %s", object))
successes = append(successes, object)
}
time.Sleep(time.Second)
}

zl.Info(
"FETCH_COMPLETE",
zl.Console(fmt.Sprintf("success %d. failure %d.", success, failure)),
console := fmt.Sprintf("%d successes. %d failures.", len(successes), len(failures))
fields := []zap.Field{
zap.String("bucket", bucket),
zap.Uint8("success", success),
zap.String("failure", bucket),
zap.Array("results", results),
)
zap.Array("successes", successes),
zap.Array("failures", failures),
}
if len(failures) == 0 {
zl.Info("FETCH_COMPLETE", append(fields, zl.Console(console))...)
} else {
err := fmt.Errorf(console)
zl.Error("FETCH_COMPLETE_WITH_ERROR", err, fields...)
return err
}

return nil
}
Expand All @@ -77,6 +79,11 @@ func get(urlStr string) *bytes.Buffer {
return nil
}
res, err := http.Get(u.String())
if res.StatusCode != http.StatusOK {
zl.Error("HTTP_GET_ERROR", fmt.Errorf("status code is %d", res.StatusCode))
return nil
}

defer func() {
if err := res.Body.Close(); err != nil {
zl.Error("HTTP_CLOSE_ERROR", err)
Expand Down Expand Up @@ -139,6 +146,11 @@ func getEnv() (bucket string) {

// See: https://cloud.google.com/storage/docs/streaming#code-samples
func save(ctx context.Context, bucket, object string, buf *bytes.Buffer) error {
if buf == nil {
err := fmt.Errorf("bytes.Buffer is nil")
zl.Error("BUFFER_ERROR", err)
return err
}
// create client
client, err := storage.NewClient(ctx)
if err != nil {
Expand Down Expand Up @@ -199,5 +211,4 @@ func initLogger() {
}
zl.SetLevel(zl.DebugLevel)
zl.Init()
zl.Warn("TEST")
}
2 changes: 1 addition & 1 deletion fetch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ https://api.github.com/users/github/followers
ctx := context.Background()
test.deleteObjects(ctx, "api.github.com")
if err := fetch.Fetch(ctx, test.event(pubsubData)); err != nil {
assert.Fail(t, err.Error())
assert.FailNow(t, err.Error())
}

assert.NotNilf(t, test.getObject(ctx, "api.github.com/users/github"), "reader1")
Expand Down

0 comments on commit 07bef4e

Please sign in to comment.