-
Notifications
You must be signed in to change notification settings - Fork 1
/
printresponse.go
58 lines (50 loc) · 1.43 KB
/
printresponse.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package log
import (
"github.com/evg4b/uncors/internal/contracts"
"github.com/evg4b/uncors/internal/helpers"
"github.com/pterm/pterm"
)
func printResponse(request *contracts.Request, statusCode int) string {
prefix := helpers.Sprintf("%d %s", statusCode, request.Method)
printer := getPrefixPrinter(statusCode, prefix)
return printer.Sprint(request.URL.String())
}
func getPrefixPrinter(statusCode int, text string) pterm.PrefixPrinter {
if helpers.Is1xxCode(statusCode) {
return pterm.PrefixPrinter{
MessageStyle: &pterm.ThemeDefault.InfoMessageStyle,
Prefix: pterm.Prefix{
Style: &pterm.ThemeDefault.InfoPrefixStyle,
Text: text,
},
}
}
if helpers.Is2xxCode(statusCode) {
return pterm.PrefixPrinter{
MessageStyle: &pterm.ThemeDefault.SuccessMessageStyle,
Prefix: pterm.Prefix{
Style: &pterm.ThemeDefault.SuccessPrefixStyle,
Text: text,
},
}
}
if helpers.Is3xxCode(statusCode) {
return pterm.PrefixPrinter{
MessageStyle: &pterm.ThemeDefault.WarningMessageStyle,
Prefix: pterm.Prefix{
Style: &pterm.ThemeDefault.WarningPrefixStyle,
Text: text,
},
}
}
if helpers.Is4xxCode(statusCode) || helpers.Is5xxCode(statusCode) {
return pterm.PrefixPrinter{
MessageStyle: &pterm.ThemeDefault.ErrorMessageStyle,
Prefix: pterm.Prefix{
Style: &pterm.ThemeDefault.ErrorPrefixStyle,
Text: text,
},
}
}
panic(helpers.Sprintf("status code %d is not supported", statusCode))
}