Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions src/main/java/org/example/alfs/controllers/TicketController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package org.example.alfs.controllers;

import jakarta.validation.Valid;
import org.example.alfs.dto.ticket.TicketCreateDTO;
import org.example.alfs.entities.Ticket;
import org.example.alfs.services.TicketService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping
public class TicketController {

private final TicketService ticketService;

public TicketController(TicketService ticketService) {
this.ticketService = ticketService;

}

//create ticket
@GetMapping("/create")
public String createNewTicketForm(Model model) {
model.addAttribute("ticket", new TicketCreateDTO());
return "create";
}

//TODO REDIRECT, WHERE??
@PostMapping("/create")
public String createNewTicket(@ModelAttribute("ticket") @Valid TicketCreateDTO ticketCreateDTO, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "create";
Comment thread
coderabbitai[bot] marked this conversation as resolved.
}

ticketService.createNewTicket(ticketCreateDTO);

return "redirect:/home";
}

//view ticket
//assign ticket
//update status
//create comment
//View comment
//upload attachment
}
28 changes: 28 additions & 0 deletions src/main/java/org/example/alfs/mapper/TicketMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.example.alfs.mapper;

import org.example.alfs.dto.ticket.TicketViewDTO;
import org.example.alfs.entities.Ticket;
import org.springframework.stereotype.Component;

@Component
public class TicketMapper {

public TicketViewDTO entityToViewDTO(Ticket ticket){

TicketViewDTO ticketViewDTO = new TicketViewDTO();

ticketViewDTO.setId(ticket.getId());
ticketViewDTO.setTitle(ticket.getTitle());
ticketViewDTO.setDescription(ticket.getDescription());
ticketViewDTO.setStatus(ticket.getStatus());
ticketViewDTO.setCreatedAt(ticket.getCreatedAt());

if (ticket.getInvestigator() != null) {
ticketViewDTO.setAssignedInvestigatorId(ticket.getInvestigator().getId());
}

return ticketViewDTO;
}


}
34 changes: 34 additions & 0 deletions src/main/java/org/example/alfs/services/TicketService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.example.alfs.services;

import org.example.alfs.dto.ticket.TicketCreateDTO;
import org.example.alfs.dto.ticket.TicketViewDTO;
import org.example.alfs.entities.Ticket;
import org.example.alfs.mapper.TicketMapper;
import org.example.alfs.repositories.TicketRepository;
import org.springframework.stereotype.Service;

@Service
public class TicketService {


private final TicketRepository ticketRepository;
private final TicketMapper ticketMapper;

public TicketService(TicketRepository ticketRepository, TicketMapper ticketMapper) {
this.ticketRepository = ticketRepository;
this.ticketMapper = ticketMapper;
}

//createNewTicket
public TicketViewDTO createNewTicket(TicketCreateDTO ticketCreateDTO) {

Ticket ticket = new Ticket();

ticket.setTitle(ticketCreateDTO.getTitle());
ticket.setDescription(ticketCreateDTO.getDescription());

Ticket savedTicket = ticketRepository.save(ticket);

return ticketMapper.entityToViewDTO(savedTicket);
}
}
Loading