39 lines
1.2 KiB
Java
39 lines
1.2 KiB
Java
package nl.andrewl.railsignalapi.rest;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import nl.andrewl.railsignalapi.rest.dto.link_token.LinkTokenCreatedResponse;
|
|
import nl.andrewl.railsignalapi.rest.dto.link_token.LinkTokenPayload;
|
|
import nl.andrewl.railsignalapi.rest.dto.link_token.LinkTokenResponse;
|
|
import nl.andrewl.railsignalapi.service.LinkTokenService;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import javax.validation.Valid;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Controller for endpoints regarding link tokens.
|
|
*/
|
|
@RestController
|
|
@RequestMapping(path = "/api/rs/{rsId}/lt")
|
|
@RequiredArgsConstructor
|
|
public class LinkTokensApiController {
|
|
private final LinkTokenService tokenService;
|
|
|
|
@GetMapping
|
|
public List<LinkTokenResponse> getTokens(@PathVariable long rsId) {
|
|
return tokenService.getTokens(rsId);
|
|
}
|
|
|
|
@PostMapping
|
|
public LinkTokenCreatedResponse createToken(@PathVariable long rsId, @RequestBody @Valid LinkTokenPayload payload) {
|
|
return tokenService.createToken(rsId, payload);
|
|
}
|
|
|
|
@DeleteMapping(path = "/{ltId}")
|
|
public ResponseEntity<Void> deleteToken(@PathVariable long rsId, @PathVariable long ltId) {
|
|
tokenService.deleteToken(rsId, ltId);
|
|
return ResponseEntity.noContent().build();
|
|
}
|
|
}
|