feat: add Bean Validation annotations to request models
This commit is contained in:
@@ -1,21 +1,25 @@
|
||||
package de.zendric.app.xpensely_server.model;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AppUserCreateRequest {
|
||||
|
||||
@Column(name = "username", nullable = false, unique = true)
|
||||
@NotBlank(message = "Username is required")
|
||||
@Size(min = 3, max = 30, message = "Username must be between 3 and 30 characters")
|
||||
@Pattern(regexp = "^[a-zA-Z0-9_.\\-]+$", message = "Username may only contain letters, digits, underscores, dots, and hyphens")
|
||||
private String username;
|
||||
|
||||
@NotBlank(message = "Google ID is required")
|
||||
private String googleId;
|
||||
|
||||
public AppUser convertToAppUser() {
|
||||
AppUser appUser = new AppUser();
|
||||
appUser.setGoogleId(googleId);
|
||||
appUser.setUsername(username);
|
||||
|
||||
return appUser;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,10 @@ package de.zendric.app.xpensely_server.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import jakarta.validation.constraints.DecimalMin;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -12,12 +16,25 @@ import lombok.NoArgsConstructor;
|
||||
public class ExpenseChangeRequest {
|
||||
|
||||
private Long id;
|
||||
|
||||
@NotBlank(message = "Title is required")
|
||||
@Size(max = 100, message = "Title must not exceed 100 characters")
|
||||
private String title;
|
||||
|
||||
@NotBlank(message = "Owner name is required")
|
||||
private String ownerName;
|
||||
|
||||
@NotNull(message = "Amount is required")
|
||||
@DecimalMin(value = "0.01", message = "Amount must be greater than zero")
|
||||
private Double amount;
|
||||
|
||||
private Double personalUseAmount;
|
||||
private Double otherPersonAmount;
|
||||
|
||||
@NotNull(message = "Date is required")
|
||||
private LocalDate date;
|
||||
|
||||
@NotBlank(message = "Category is required")
|
||||
private String category;
|
||||
|
||||
public Expense convertToExpense(Long userId, ExpenseList expenseList) {
|
||||
|
||||
@@ -2,9 +2,10 @@ package de.zendric.app.xpensely_server.model;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.validation.constraints.DecimalMin;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -16,19 +17,26 @@ import lombok.Setter;
|
||||
@NoArgsConstructor
|
||||
public class ExpenseInput {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@NotBlank(message = "Title is required")
|
||||
@Size(max = 100, message = "Title must not exceed 100 characters")
|
||||
private String title;
|
||||
|
||||
@NotBlank(message = "Owner is required")
|
||||
private String owner;
|
||||
|
||||
@NotNull(message = "Amount is required")
|
||||
@DecimalMin(value = "0.01", message = "Amount must be greater than zero")
|
||||
private Double amount;
|
||||
|
||||
private Double personalUseAmount;
|
||||
private Double otherPersonAmount;
|
||||
|
||||
@NotNull(message = "Date is required")
|
||||
private LocalDate date;
|
||||
|
||||
@NotBlank(message = "Category is required")
|
||||
private String category;
|
||||
|
||||
private ExpenseList expenseList;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package de.zendric.app.xpensely_server.model;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -8,6 +10,8 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class InviteRequest {
|
||||
|
||||
@NotBlank(message = "Invite code is required")
|
||||
@Size(min = 6, max = 6, message = "Invite code must be exactly 6 characters")
|
||||
private String inviteCode;
|
||||
private Long userId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user