Add API endpoint to check staff application availability and enforce open/close periods
This commit is contained in:
+19
@@ -16,9 +16,12 @@ import com.alttd.altitudeweb.services.mail.StaffApplicationMail;
|
||||
import com.alttd.altitudeweb.setup.Connection;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.HttpStatusCode;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@@ -34,8 +37,24 @@ public class ApplicationController implements ApplicationsApi {
|
||||
private final StaffApplicationMail staffApplicationMail;
|
||||
private final StaffApplicationDiscord staffApplicationDiscord;
|
||||
|
||||
private final Instant open = Instant.parse("2025-10-18T00:00:00Z");
|
||||
private final Instant close = Instant.parse("2020-10-26T00:00:00Z");
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Boolean> getStaffApplicationsIsOpen() {
|
||||
return ResponseEntity.ok(isOpen());
|
||||
}
|
||||
|
||||
private boolean isOpen() {
|
||||
Instant now = Instant.now();
|
||||
return !now.isBefore(open) && !now.isAfter(close);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<FormResponseDto> submitStaffApplication(StaffApplicationDto staffApplicationDto) {
|
||||
if (!isOpen()) {
|
||||
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
|
||||
}
|
||||
UUID userUuid = AuthenticatedUuid.getAuthenticatedUserUuid();
|
||||
|
||||
String email = staffApplicationDto.getEmail() == null ? null : staffApplicationDto.getEmail().toLowerCase();
|
||||
|
||||
Reference in New Issue
Block a user