Compare commits

...

2 Commits

Author SHA1 Message Date
ab3b8e90e5 fix(README): update badges on README
All checks were successful
Publish Docker Images / build-and-publish (push) Successful in 18m49s
2026-02-04 16:49:21 +01:00
08861562bc fix(contact): ignore empty honeypot values even if String exists 2026-02-04 16:49:20 +01:00
3 changed files with 17 additions and 7 deletions

View File

@@ -13,10 +13,10 @@ gitea: none
<div align="center"> <div align="center">
<a href="https://sonar.phundrak.com/dashboard?id=bakit" target="_blank"> <a href="https://sonar.phundrak.com/dashboard?id=bakit" target="_blank">
<img src="https://sonar.phundrak.com/api/project_badges/measure?project=bakit&metric=coverage&token=sqb_bda24bf36825576d6c6b76048044e103339c3c5f" alt="Sonar Coverage" /> <img src="https://sonar.phundrak.com/api/project_badges/measure?project=bakit&metric=coverage&token=sqb_614da1a838e933f937488ee4bb82d7711e4f0c5c" alt="Sonar Coverage" />
</a> </a>
<a href="https://sonar.phundrak.com/dashboard?id=bakit" target="_blank"> <a href="https://sonar.phundrak.com/dashboard?id=bakit" target="_blank">
<img src="https://sonar.phundrak.com/api/project_badges/measure?project=bakit&metric=alert_status&token=sqb_bda24bf36825576d6c6b76048044e103339c3c5f" alt="Sonar Quality Gate Status" /> <img src="https://sonar.phundrak.com/api/project_badges/measure?project=bakit&metric=alert_status&token=sqb_614da1a838e933f937488ee4bb82d7711e4f0c5c" alt="Sonar Quality Gate Status" />
</a> </a>
<a href="#license"> <a href="#license">
<img src="https://img.shields.io/badge/License-AGPL--3.0--only-blue" alt="License" /> <img src="https://img.shields.io/badge/License-AGPL--3.0--only-blue" alt="License" />

View File

@@ -93,10 +93,14 @@ impl From<ValidationErrors> for ContactError {
return Self::ValidationNameError("backend.contact.errors.validation.name".to_owned()); return Self::ValidationNameError("backend.contact.errors.validation.name".to_owned());
} }
if validator::ValidationErrors::has_error(&Err(value.clone()), "email") { if validator::ValidationErrors::has_error(&Err(value.clone()), "email") {
return Self::ValidationEmailError("backend.contact.errors.validation.email".to_owned()); return Self::ValidationEmailError(
"backend.contact.errors.validation.email".to_owned(),
);
} }
if validator::ValidationErrors::has_error(&Err(value), "message") { if validator::ValidationErrors::has_error(&Err(value), "message") {
return Self::ValidationMessageError("backend.contact.errors.validation.message".to_owned()); return Self::ValidationMessageError(
"backend.contact.errors.validation.message".to_owned(),
);
} }
Self::ValidationError("backend.contact.errors.validation.other".to_owned()) Self::ValidationError("backend.contact.errors.validation.other".to_owned())
} }
@@ -113,9 +117,13 @@ impl From<ContactError> for ContactResponse {
success: false, success: false,
message: match value { message: match value {
ContactError::CouldNotParseRequestEmailAddress(_) ContactError::CouldNotParseRequestEmailAddress(_)
| ContactError::ValidationEmailError(_) => "backend.contact.errors.validation.email", | ContactError::ValidationEmailError(_) => {
"backend.contact.errors.validation.email"
}
ContactError::ValidationNameError(_) => "backend.contact.errors.validation.name", ContactError::ValidationNameError(_) => "backend.contact.errors.validation.name",
ContactError::ValidationMessageError(_) => "backend.contact.errors.validation.message", ContactError::ValidationMessageError(_) => {
"backend.contact.errors.validation.message"
}
ContactError::CouldNotParseSettingsEmail(_) ContactError::CouldNotParseSettingsEmail(_)
| ContactError::FailedToBuildMessage(_) | ContactError::FailedToBuildMessage(_)
| ContactError::CouldNotSendEmail(_) | ContactError::CouldNotSendEmail(_)

View File

@@ -161,7 +161,9 @@ impl ContactApi {
remote_addr: Option<poem::web::Data<&poem::web::RemoteAddr>>, remote_addr: Option<poem::web::Data<&poem::web::RemoteAddr>>,
) -> ContactApiResponse { ) -> ContactApiResponse {
let body = body.0; let body = body.0;
if body.honeypot.is_some() { if let Some(ref honeypot) = body.honeypot
&& !honeypot.trim().is_empty()
{
tracing::event!( tracing::event!(
target: "backend::contact", target: "backend::contact",
tracing::Level::INFO, tracing::Level::INFO,