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(); } }