35 lines
1.2 KiB
Java
35 lines
1.2 KiB
Java
package de.itsolutions.ticketsystem.controller;
|
|
|
|
import de.itsolutions.ticketsystem.dto.Dtos;
|
|
import de.itsolutions.ticketsystem.entity.Ticket;
|
|
import de.itsolutions.ticketsystem.service.TicketService;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import java.security.Principal;
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/tickets")
|
|
public class TicketController {
|
|
|
|
private final TicketService ticketService;
|
|
|
|
public TicketController(TicketService ticketService) {
|
|
this.ticketService = ticketService;
|
|
}
|
|
|
|
@PostMapping
|
|
public ResponseEntity<Ticket> createTicket(@RequestBody Dtos.TicketRequest request, Principal principal) {
|
|
return ResponseEntity.ok(ticketService.createTicket(request, principal.getName()));
|
|
}
|
|
|
|
@GetMapping
|
|
public ResponseEntity<List<Ticket>> getTickets(Principal principal) {
|
|
return ResponseEntity.ok(ticketService.getTicketsForUser(principal.getName()));
|
|
}
|
|
|
|
@PatchMapping("/{id}/status")
|
|
public ResponseEntity<Ticket> updateStatus(@PathVariable Long id, @RequestBody Dtos.TicketStatusRequest request) {
|
|
return ResponseEntity.ok(ticketService.updateTicketStatus(id, request.getStatus()));
|
|
}
|
|
}
|