feat: add Bean Validation annotations to request models
This commit is contained in:
@@ -1,21 +1,25 @@
|
|||||||
package de.zendric.app.xpensely_server.model;
|
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;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class AppUserCreateRequest {
|
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;
|
private String username;
|
||||||
|
|
||||||
|
@NotBlank(message = "Google ID is required")
|
||||||
private String googleId;
|
private String googleId;
|
||||||
|
|
||||||
public AppUser convertToAppUser() {
|
public AppUser convertToAppUser() {
|
||||||
AppUser appUser = new AppUser();
|
AppUser appUser = new AppUser();
|
||||||
appUser.setGoogleId(googleId);
|
appUser.setGoogleId(googleId);
|
||||||
appUser.setUsername(username);
|
appUser.setUsername(username);
|
||||||
|
|
||||||
return appUser;
|
return appUser;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ package de.zendric.app.xpensely_server.model;
|
|||||||
|
|
||||||
import java.time.LocalDate;
|
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.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -12,12 +16,25 @@ import lombok.NoArgsConstructor;
|
|||||||
public class ExpenseChangeRequest {
|
public class ExpenseChangeRequest {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@NotBlank(message = "Title is required")
|
||||||
|
@Size(max = 100, message = "Title must not exceed 100 characters")
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
|
@NotBlank(message = "Owner name is required")
|
||||||
private String ownerName;
|
private String ownerName;
|
||||||
|
|
||||||
|
@NotNull(message = "Amount is required")
|
||||||
|
@DecimalMin(value = "0.01", message = "Amount must be greater than zero")
|
||||||
private Double amount;
|
private Double amount;
|
||||||
|
|
||||||
private Double personalUseAmount;
|
private Double personalUseAmount;
|
||||||
private Double otherPersonAmount;
|
private Double otherPersonAmount;
|
||||||
|
|
||||||
|
@NotNull(message = "Date is required")
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
|
@NotBlank(message = "Category is required")
|
||||||
private String category;
|
private String category;
|
||||||
|
|
||||||
public Expense convertToExpense(Long userId, ExpenseList expenseList) {
|
public Expense convertToExpense(Long userId, ExpenseList expenseList) {
|
||||||
|
|||||||
@@ -2,9 +2,10 @@ package de.zendric.app.xpensely_server.model;
|
|||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
import jakarta.persistence.GeneratedValue;
|
import jakarta.validation.constraints.DecimalMin;
|
||||||
import jakarta.persistence.GenerationType;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -16,19 +17,26 @@ import lombok.Setter;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class ExpenseInput {
|
public class ExpenseInput {
|
||||||
|
|
||||||
@Id
|
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@NotBlank(message = "Title is required")
|
||||||
|
@Size(max = 100, message = "Title must not exceed 100 characters")
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
|
@NotBlank(message = "Owner is required")
|
||||||
private String owner;
|
private String owner;
|
||||||
|
|
||||||
|
@NotNull(message = "Amount is required")
|
||||||
|
@DecimalMin(value = "0.01", message = "Amount must be greater than zero")
|
||||||
private Double amount;
|
private Double amount;
|
||||||
|
|
||||||
private Double personalUseAmount;
|
private Double personalUseAmount;
|
||||||
private Double otherPersonAmount;
|
private Double otherPersonAmount;
|
||||||
|
|
||||||
|
@NotNull(message = "Date is required")
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
|
@NotBlank(message = "Category is required")
|
||||||
private String category;
|
private String category;
|
||||||
|
|
||||||
private ExpenseList expenseList;
|
private ExpenseList expenseList;
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package de.zendric.app.xpensely_server.model;
|
package de.zendric.app.xpensely_server.model;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -8,6 +10,8 @@ import lombok.NoArgsConstructor;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class InviteRequest {
|
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 String inviteCode;
|
||||||
private Long userId;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user