From e25aecbe5b5923b3045e3848a4dd1b1097e7d376 Mon Sep 17 00:00:00 2001 From: khorshuheng Date: Fri, 22 Jan 2021 17:25:21 +0800 Subject: [PATCH] Return 500 if online request returns error Signed-off-by: khorshuheng --- main.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index e15415e..86eed9a 100644 --- a/main.go +++ b/main.go @@ -65,16 +65,18 @@ func main() { if len(requests) == 1 { resp, err := client.GetOnlineFeatures(ctx, &requests[0]) if err != nil { - log.Fatalf("%v", err) + w.WriteHeader(500) + } else { + postProcessResponse(resp) + w.WriteHeader(200) } - postProcessResponse(resp) - w.WriteHeader(200) } else { var wg sync.WaitGroup wg.Add(len(requests)) fatalErrors := make(chan error) wgDone := make(chan bool) + atLeastOneError := false for _, request := range requests { request := request @@ -97,13 +99,15 @@ func main() { case <-wgDone: close(fatalErrors) break - case err := <-fatalErrors: - close(fatalErrors) - log.Fatalf("%v", err) - + case <-fatalErrors: + atLeastOneError = true } - w.WriteHeader(200) + if atLeastOneError { + w.WriteHeader(500) + } else { + w.WriteHeader(200) + } } })