[R9] Validator to check if the consultation date was scheduled during business hours
This commit is contained in:
parent
29bc22eb95
commit
55961f680b
@ -0,0 +1,34 @@
|
|||||||
|
package com.mirna.hospitalmanagementapi.domain.validators.consultation;
|
||||||
|
|
||||||
|
import java.time.DayOfWeek;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.mirna.hospitalmanagementapi.domain.validators.consultation.constraints.ConsultationDateBusinessHours;
|
||||||
|
|
||||||
|
import jakarta.validation.ConstraintValidator;
|
||||||
|
import jakarta.validation.ConstraintValidatorContext;
|
||||||
|
import jakarta.validation.constraints.Future;
|
||||||
|
|
||||||
|
public class ConsultationDateBusinessHoursValidator implements ConstraintValidator <ConsultationDateBusinessHours, LocalDateTime> {
|
||||||
|
|
||||||
|
private Long businessHourStart;
|
||||||
|
private Long businessHourEnd;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize(ConsultationDateBusinessHours consultationDateBusinessHours) {
|
||||||
|
businessHourStart = 7L;
|
||||||
|
businessHourEnd = 18L;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid(LocalDateTime value, ConstraintValidatorContext context) {
|
||||||
|
|
||||||
|
if (value.getDayOfWeek().equals(DayOfWeek.SUNDAY)
|
||||||
|
|| value.getHour() < businessHourStart
|
||||||
|
|| value.getHour() > businessHourEnd) return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
package com.mirna.hospitalmanagementapi.domain.validators.consultation.constraints;
|
||||||
|
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
import com.mirna.hospitalmanagementapi.domain.validators.consultation.ConsultationDateBusinessHoursValidator;
|
||||||
|
|
||||||
|
import jakarta.validation.Constraint;
|
||||||
|
import jakarta.validation.Payload;
|
||||||
|
|
||||||
|
@Constraint(validatedBy = ConsultationDateBusinessHoursValidator.class)
|
||||||
|
@Target( { ElementType.METHOD, ElementType.FIELD })
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface ConsultationDateBusinessHours {
|
||||||
|
|
||||||
|
String message() default "Invalid consultation date. The business hours are Monday to Saturday, from 07:00 to 19:00";
|
||||||
|
Class<?>[] groups() default {};
|
||||||
|
Class<? extends Payload>[] payload() default {};
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user