Skip to content

Instantly share code, notes, and snippets.

@3gcodes
Created November 4, 2022 02:59
Show Gist options
  • Save 3gcodes/92991ca452e5aebe737b5959479dd1d6 to your computer and use it in GitHub Desktop.
Save 3gcodes/92991ca452e5aebe737b5959479dd1d6 to your computer and use it in GitHub Desktop.
public sealed interface RegistrationApi {
@Post
HttpResponse<URI> registerUser(RegisterUserRequest request);
non-sealed interface RegistrationClient extends RegistrationApi {}
@Controller("/api/registration")
@Secured(SecurityRule.IS_ANONYMOUS)
final class RegistrationController implements RegistrationApi {
private final RegistrationService registrationService;
public RegistrationController(RegistrationService registrationService) {
this.registrationService = registrationService;
}
@Override
public HttpResponse<URI> registerUser(RegisterUserRequest request) {
final var id = this.registrationService.createRegistration(request);
if (id != null) {
return HttpResponse.created(URI.create("/api/users/" + id));
}
return HttpResponse.status(HttpStatus.BAD_REQUEST, "User already exists");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment