source: src/main/java/com/example/skychasemk/services/SupportTicketService.java@ c064a42

Last change on this file since c064a42 was c064a42, checked in by ste08 <sjovanoska@…>, 3 months ago

Support ticket working!

  • Property mode set to 100644
File size: 2.5 KB
Line 
1package com.example.skychasemk.services;
2
3import com.example.skychasemk.dto.SupportTicketDTO;
4import com.example.skychasemk.model.SupportTicket;
5import com.example.skychasemk.repository.SupportTicketRepository;
6import org.springframework.beans.factory.annotation.Autowired;
7import org.springframework.stereotype.Service;
8import org.springframework.web.bind.annotation.PostMapping;
9import org.springframework.web.bind.annotation.RequestBody;
10
11import java.time.LocalDate;
12import java.util.List;
13import java.util.Optional;
14
15import static com.example.skychasemk.model.SupportTicket.TicketStatus.OPEN;
16
17@Service
18public class SupportTicketService {
19
20 @Autowired
21 private SupportTicketRepository supportTicketRepository;
22
23
24 public SupportTicketService(SupportTicketRepository repository){
25 this.supportTicketRepository=repository;
26 }
27 public List<SupportTicket> getAllTickets() {
28 List<SupportTicket> tickets = supportTicketRepository.findTickets();
29 tickets.forEach(ticket -> System.out.println(ticket.getTicketId() + " - " + ticket.getStatus()));
30 return tickets;
31 }
32 public List<SupportTicket> getResolvedTickets() {
33 List<SupportTicket> tickets = supportTicketRepository.findResolvedTickets();
34 tickets.forEach(ticket -> System.out.println(ticket.getTicketId() + " - " + ticket.getStatus()));
35 return tickets;
36 }
37
38 public Optional<SupportTicket> getTicketById(Integer ticketID) {
39 return supportTicketRepository.findById(ticketID);
40 }
41
42 @PostMapping
43 public SupportTicket createTicket(@RequestBody SupportTicketDTO dto) {
44 SupportTicket ticket = new SupportTicket();
45 ticket.setUserId(dto.getUserId());
46 ticket.setDateCreated(LocalDate.now());
47 ticket.setStatus(OPEN);
48 ticket.setDescription(dto.getDescription());
49 return supportTicketRepository.save(ticket);
50 }
51
52 public SupportTicket save(SupportTicket ticket) {
53 return supportTicketRepository.save(ticket);
54 }
55
56 public SupportTicket updateTicket(Integer id, SupportTicket.TicketStatus newStatus) {
57 return supportTicketRepository.findById(id)
58 .map(ticket -> {
59 ticket.setStatus(newStatus);
60 if (newStatus == SupportTicket.TicketStatus.RESOLVED) {
61 ticket.setDateResolved(LocalDate.now());
62 }
63 return supportTicketRepository.save(ticket);
64 })
65 .orElseThrow(() -> new RuntimeException("Ticket not found"));
66 }
67
68
69}
70
Note: See TracBrowser for help on using the repository browser.