package delivery import "net/http" type outcome string const ( outcomeDelivered outcome = "delivered" outcomeRetry outcome = "retry" outcomeFailed outcome = "failed" ) func classify(statusCode int, reqErr error) outcome { if reqErr != nil { return outcomeRetry } if statusCode >= http.StatusOK && statusCode < http.StatusMultipleChoices { return outcomeDelivered } if statusCode == http.StatusTooManyRequests || statusCode == http.StatusRequestTimeout { return outcomeRetry } if statusCode >= http.StatusInternalServerError { return outcomeRetry } return outcomeFailed }