diff --git a/internal/babelio/babelio.go b/internal/babelio/babelio.go index 2ed099a..49aa8cb 100644 --- a/internal/babelio/babelio.go +++ b/internal/babelio/babelio.go @@ -50,7 +50,7 @@ func searchPageIsbn(baseUrl, isbn string) (string, error) { var searchResults []babelioSearchResult callapiutils.FetchAndParseResultFromPost(searchUrl, &term, &searchResults) if len(searchResults) == 0 { - return "", myvalidator.TranslatedError{Err: errors.New("ISBNNotFoundBabelio")} + return "", myvalidator.TranslatedError{Err: errors.New("ISBNNotFoundBabelio"), Arg: isbn} } return searchResults[0].Url, nil diff --git a/internal/i18nresource/locale.en.toml b/internal/i18nresource/locale.en.toml index 7c20e0e..1cf03fd 100644 --- a/internal/i18nresource/locale.en.toml +++ b/internal/i18nresource/locale.en.toml @@ -10,3 +10,5 @@ RegistrationDisabled = "Registration has been disabled on this instance." UserAlreadyExists = "An user with this name already exists." ErrorWhenCreatingUserFromStr = "Error when creating user from string %s" ISBNNotFoundBabelio = "ISBN %s not found on babelio." +BabelioParseError = "Error when parsing babelio." +BabelioFetchDescError = "Error when fetching description on babelio." diff --git a/internal/i18nresource/locale.fr.toml b/internal/i18nresource/locale.fr.toml index 6f24053..f75734c 100644 --- a/internal/i18nresource/locale.fr.toml +++ b/internal/i18nresource/locale.fr.toml @@ -10,3 +10,5 @@ RegistrationDisabled = "La création de nouveaux comptes a été désactivée su UserAlreadyExists = "Un utilisateur avec le même nom existe déjà." ErrorWhenCreatingUserFromStr = "Erreur lors de la création de l'utilisateur %s" ISBNNotFoundBabelio = "L'ISBN %s n'est pas sur babelio." +BabelioParseError = "Erreur en parsant babelio." +BabelioFetchDescError = "Erreur lors de la récupération de la description sur babelio." diff --git a/internal/myvalidator/myvalidator.go b/internal/myvalidator/myvalidator.go index 1139b95..8ca8550 100644 --- a/internal/myvalidator/myvalidator.go +++ b/internal/myvalidator/myvalidator.go @@ -14,6 +14,7 @@ import ( type TranslatedError struct { Err error + Arg string } type HttpError struct { @@ -67,6 +68,10 @@ func (e TranslatedError) Error() string { return fmt.Sprintf("%v", e.Err) } +func (e TranslatedError) ToTranslatedMessage(ac *appcontext.AppContext) string { + return fmt.Sprintf(i18nresource.GetTranslatedMessage(ac, e.Error()), e.Arg) +} + type apiValidationError struct { Field string `json:"field"` Err string `json:"error"` diff --git a/internal/routes/bookpostimport.go b/internal/routes/bookpostimport.go index 89a0a29..5891b4e 100644 --- a/internal/routes/bookpostimport.go +++ b/internal/routes/bookpostimport.go @@ -9,7 +9,6 @@ import ( "git.artlef.fr/bibliomane/internal/babelio" "git.artlef.fr/bibliomane/internal/dto" "git.artlef.fr/bibliomane/internal/fileutils" - "git.artlef.fr/bibliomane/internal/i18nresource" "git.artlef.fr/bibliomane/internal/inventaire" "git.artlef.fr/bibliomane/internal/model" "git.artlef.fr/bibliomane/internal/myvalidator" @@ -75,7 +74,7 @@ func saveInventaireBookToDb(ac appcontext.AppContext, inventaireEdition inventai te, isTrError := errors.AsType[myvalidator.TranslatedError](err) var errToPrint string if isTrError { - errToPrint = i18nresource.GetTranslatedMessage(&ac, te.Error()) + errToPrint = te.ToTranslatedMessage(&ac) } else { errToPrint = err.Error() }