Merge branch 'main' of ssh://git.ma-al.com:8822/goc_daniel/b2b into translate
This commit is contained in:
@@ -11,6 +11,29 @@ const CATEGORY_TREE_ROOT_ID = 2
|
||||
const MAX_AMOUNT_OF_CARTS_PER_USER = 10
|
||||
const DEFAULT_NEW_CART_NAME = "new cart"
|
||||
|
||||
const USER_LOCALES_NAME = "user"
|
||||
const USER_LOCALES_ID = "userID"
|
||||
const LANG_LOCALES_ID = "langID"
|
||||
const USER_LOCALE = "user"
|
||||
|
||||
// Slug sanitization
|
||||
const NON_ALNUM_REGEX = `[^a-z0-9]+`
|
||||
const MULTI_DASH_REGEX = `-+`
|
||||
const SLUG_REGEX = `^[a-z0-9]+(?:-[a-z0-9]+)*$`
|
||||
|
||||
// Currently supports only German+Polish specific cases
|
||||
var TRANSLITERATION_TABLE = map[rune]string{
|
||||
// German
|
||||
'ä': "ae",
|
||||
'ö': "oe",
|
||||
'ü': "ue",
|
||||
'ß': "ss",
|
||||
|
||||
// Polish
|
||||
'ą': "a",
|
||||
'ć': "c",
|
||||
'ę': "e",
|
||||
'ł': "l",
|
||||
'ń': "n",
|
||||
'ó': "o",
|
||||
'ś': "s",
|
||||
'ż': "z",
|
||||
'ź': "z",
|
||||
}
|
||||
|
||||
23
app/utils/localeExtractor/localeExtractor.go
Normal file
23
app/utils/localeExtractor/localeExtractor.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package localeExtractor
|
||||
|
||||
import (
|
||||
"git.ma-al.com/goc_daniel/b2b/app/model"
|
||||
constdata "git.ma-al.com/goc_daniel/b2b/app/utils/const_data"
|
||||
"github.com/gofiber/fiber/v3"
|
||||
)
|
||||
|
||||
func GetLangID(c fiber.Ctx) (uint, bool) {
|
||||
user_locale, ok := c.Locals(constdata.USER_LOCALE).(*model.UserLocale)
|
||||
if !ok || user_locale.OriginalUser == nil {
|
||||
return 0, false
|
||||
}
|
||||
return user_locale.OriginalUser.LangID, true
|
||||
}
|
||||
|
||||
func GetUserID(c fiber.Ctx) (uint, bool) {
|
||||
user_locale, ok := c.Locals(constdata.USER_LOCALE).(*model.UserLocale)
|
||||
if !ok || user_locale.User == nil {
|
||||
return 0, false
|
||||
}
|
||||
return user_locale.User.ID, true
|
||||
}
|
||||
@@ -43,6 +43,7 @@ var (
|
||||
// Typed errors for product description handler
|
||||
ErrBadAttribute = errors.New("bad or missing attribute value in header")
|
||||
ErrBadField = errors.New("this field can not be updated")
|
||||
ErrInvalidURLSlug = errors.New("URL slug does not obey the industry standard")
|
||||
ErrInvalidXHTML = errors.New("text is not in xhtml format")
|
||||
ErrAIResponseFail = errors.New("AI responded with failure")
|
||||
ErrAIBadOutput = errors.New("AI response does not obey the format")
|
||||
@@ -142,6 +143,8 @@ func GetErrorCode(c fiber.Ctx, err error) string {
|
||||
return i18n.T_(c, "error.err_bad_attribute")
|
||||
case errors.Is(err, ErrBadField):
|
||||
return i18n.T_(c, "error.err_bad_field")
|
||||
case errors.Is(err, ErrInvalidURLSlug):
|
||||
return i18n.T_(c, "error.invalid_url_slug")
|
||||
case errors.Is(err, ErrInvalidXHTML):
|
||||
return i18n.T_(c, "error.err_invalid_html")
|
||||
case errors.Is(err, ErrAIResponseFail):
|
||||
@@ -206,6 +209,7 @@ func GetErrorStatus(err error) int {
|
||||
errors.Is(err, ErrInvalidPassword),
|
||||
errors.Is(err, ErrBadAttribute),
|
||||
errors.Is(err, ErrBadField),
|
||||
errors.Is(err, ErrInvalidURLSlug),
|
||||
errors.Is(err, ErrInvalidXHTML),
|
||||
errors.Is(err, ErrBadPaging),
|
||||
errors.Is(err, ErrNoRootFound),
|
||||
|
||||
Reference in New Issue
Block a user