Add API endpoint to check staff application availability and enforce open/close periods
This commit is contained in:
parent
8e9e267fb0
commit
5eaeb3552a
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ paths:
|
|||
$ref: './schemas/forms/appeal/appeal.yml#/DiscordAppeal'
|
||||
/api/apply/staff-application:
|
||||
$ref: './schemas/forms/staff_apply/staff_apply.yml#/StaffApply'
|
||||
/api/apply/staff-application-is-open:
|
||||
$ref: './schemas/forms/staff_apply/staff_apply.yml#/StaffApplicationsIsOpen'
|
||||
/api/login/requestNewUserLogin/{uuid}:
|
||||
$ref: './schemas/login/login.yml#/RequestNewUserLogin'
|
||||
/api/login/userLogin/{code}:
|
||||
|
|
|
|||
|
|
@ -24,6 +24,28 @@ StaffApply:
|
|||
application/json:
|
||||
schema:
|
||||
$ref: '../../generic/errors.yml#/components/schemas/ApiError'
|
||||
StaffApplicationsIsOpen:
|
||||
get:
|
||||
tags:
|
||||
- applications
|
||||
summary: Get if staff applications are open
|
||||
description: Get if staff applications are open
|
||||
operationId: getStaffApplicationsIsOpen
|
||||
responses:
|
||||
'200':
|
||||
description: If staff applications are open
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: boolean
|
||||
'403':
|
||||
description: If staff applications are not open
|
||||
default:
|
||||
description: Unexpected error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../../generic/errors.yml#/components/schemas/ApiError'
|
||||
components:
|
||||
schemas:
|
||||
StaffApplication:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user