Fix panic when session are not set from detect-lang middleware
- commit
- 33c55a0f6b21740b688c4eaad1b12a4d7f7b57a7
- author
- bnema · · 2023-09-05 01:57 UTC
- parent
- 5716a84
- signature
- unsigned
2 files · +7 -3
M internal/app/app.go +0 -1
| @@ -13,7 +13,6 @@ type App struct { | |||
| 13 | 13 | APPLogger *utils.Logger | |
| 14 | 14 | HTTPLogger *utils.Logger | |
| 15 | 15 | Template *template.Template | |
| 16 | - | Renderer *utils.Renderer | |
| 17 | 16 | } | |
| 18 | 17 | ||
| 19 | 18 | func NewApp() (*App, error) { | |
| @@ -13,7 +13,6 @@ type App struct { | |||||
| 13 | APPLogger *utils.Logger | 13 | APPLogger *utils.Logger | ||
| 14 | HTTPLogger *utils.Logger | 14 | HTTPLogger *utils.Logger | ||
| 15 | Template *template.Template | 15 | Template *template.Template | ||
| 16 | - | Renderer *utils.Renderer | |||
| 17 | } | 16 | } | ||
| 18 | 17 | ||||
| 19 | func NewApp() (*App, error) { | 18 | func NewApp() (*App, error) { | ||
M internal/http/middlewares/detect-lang.go +7 -2
| @@ -21,8 +21,13 @@ func LanguageDetectionMiddleware(next echo.HandlerFunc) echo.HandlerFunc { | |||
| 21 | 21 | ||
| 22 | 22 | func detectCurrentLanguage(c echo.Context) string { | |
| 23 | 23 | // Check if the lang key is set in the session storage | |
| 24 | - | sess, _ := session.Get("session", c) // Assuming you have a session named "session" | |
| 25 | - | if langValue, ok := sess.Values["lang"]; ok { | |
| 24 | + | sess, err := session.Get("session", c) | |
| 25 | + | if err != nil { | |
| 26 | + | // If session storage is not available, proceed with "Accept-Language" header detection | |
| 27 | + | return "en" | |
| 28 | + | } | |
| 29 | + | ||
| 30 | + | if langValue, ok := sess.Values["lang"]; ok && langValue != nil { | |
| 26 | 31 | return langValue.(string) // Return the lang value from the session storage | |
| 27 | 32 | } | |
| 28 | 33 | ||
| @@ -21,8 +21,13 @@ func LanguageDetectionMiddleware(next echo.HandlerFunc) echo.HandlerFunc { | |||||
| 21 | 21 | ||||
| 22 | func detectCurrentLanguage(c echo.Context) string { | 22 | func detectCurrentLanguage(c echo.Context) string { | ||
| 23 | // Check if the lang key is set in the session storage | 23 | // Check if the lang key is set in the session storage | ||
| 24 | - | sess, _ := session.Get("session", c) // Assuming you have a session named "session" | 24 | + | sess, err := session.Get("session", c) |
| 25 | - | if langValue, ok := sess.Values["lang"]; ok { | 25 | + | if err != nil { |
| 26 | + | // If session storage is not available, proceed with "Accept-Language" header detection | |||
| 27 | + | return "en" | |||
| 28 | + | } | |||
| 29 | + | ||||
| 30 | + | if langValue, ok := sess.Values["lang"]; ok && langValue != nil { | |||
| 26 | return langValue.(string) // Return the lang value from the session storage | 31 | return langValue.(string) // Return the lang value from the session storage | ||
| 27 | } | 32 | } | ||
| 28 | 33 | ||||