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

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

Report working, Wishlist partly working.

  • Property mode set to 100644
File size: 2.2 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 return supportTicketRepository.findTickets();
29 }
30 public List<SupportTicket> getResolvedTickets() {
31 return supportTicketRepository.findResolvedTickets();
32 }
33
34 public Optional<SupportTicket> getTicketById(Integer ticketID) {
35 return supportTicketRepository.findById(ticketID);
36 }
37
38 @PostMapping
39 public SupportTicket createTicket(@RequestBody SupportTicketDTO dto) {
40 SupportTicket ticket = new SupportTicket();
41 ticket.setUserId(dto.getUserId());
42 ticket.setDateCreated(LocalDate.now());
43 ticket.setStatus(OPEN);
44 ticket.setDescription(dto.getDescription());
45 return supportTicketRepository.save(ticket);
46 }
47
48 public SupportTicket save(SupportTicket ticket) {
49 return supportTicketRepository.save(ticket);
50 }
51
52 public SupportTicket updateTicket(Integer id, SupportTicket.TicketStatus newStatus) {
53 return supportTicketRepository.findById(id)
54 .map(ticket -> {
55 ticket.setStatus(newStatus);
56 if (newStatus == SupportTicket.TicketStatus.RESOLVED) {
57 ticket.setDateResolved(LocalDate.now());
58 }
59 return supportTicketRepository.save(ticket);
60 })
61 .orElseThrow(() -> new RuntimeException("Ticket not found"));
62 }
63
64
65}
66
Note: See TracBrowser for help on using the repository browser.