get one notice by id

This commit is contained in:
2025-04-17 12:00:36 +02:00
parent f17b97eaf9
commit ba7e82e90c
2 changed files with 39 additions and 26 deletions

View File

@@ -21,11 +21,20 @@ public class NoticeController {
@Autowired @Autowired
private ClientService clientService; private ClientService clientService;
@GetMapping("/all") @GetMapping("/get/all")
public List<NoticeDTO> getAllNotices() { public List<NoticeDTO> getAllNotices() {
return noticeService.getAllNotices(); return noticeService.getAllNotices();
} }
@GetMapping("/get/{id}")
public ResponseEntity getNoticeById(@PathVariable long id) {
if (noticeService.noticeExists(id)) {
return ResponseEntity.ok(noticeService.getNoticeById(id));
} else {
return ResponseEntity.notFound().build();
}
}
@PostMapping("/add") @PostMapping("/add")
public ResponseEntity<String> addNotice(@RequestBody NoticeDTO dto) { public ResponseEntity<String> addNotice(@RequestBody NoticeDTO dto) {
if (!clientService.clientExists(dto.getClientId())) { if (!clientService.clientExists(dto.getClientId())) {

View File

@@ -65,6 +65,12 @@ public class NoticeService {
return result; return result;
} }
public NoticeDTO getNoticeById(Long id) {
Notice notice = noticeRepository.findById(id)
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id));
return toDTO(notice);
}
public void addNotice(Notice notice) { public void addNotice(Notice notice) {
noticeRepository.save(notice); noticeRepository.save(notice);
} }
@@ -73,34 +79,32 @@ public class NoticeService {
return noticeRepository.existsById(id); return noticeRepository.existsById(id);
} }
public NoticeDTO updateNotice(Long id, NoticeDTO dto) { public NoticeDTO updateNotice(Long id, NoticeDTO dto) {
Notice existingNotice = noticeRepository.findById(id) Notice existingNotice = noticeRepository.findById(id)
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id)); .orElseThrow(() -> new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id));
existingNotice.setTitle(dto.getTitle()); existingNotice.setTitle(dto.getTitle());
existingNotice.setDescription(dto.getDescription()); existingNotice.setDescription(dto.getDescription());
existingNotice.setPrice(dto.getPrice()); existingNotice.setPrice(dto.getPrice());
existingNotice.setCategory(dto.getCategory()); existingNotice.setCategory(dto.getCategory());
existingNotice.setImages(dto.getImages()); existingNotice.setImages(dto.getImages());
existingNotice.setStatus(dto.getStatus()); existingNotice.setStatus(dto.getStatus());
existingNotice.setAttributesNotices(dto.getAttributesNotices()); existingNotice.setAttributesNotices(dto.getAttributesNotices());
if (dto.getClientId() != null && !dto.getClientId().equals(existingNotice.getClient().getId())) { if (dto.getClientId() != null && !dto.getClientId().equals(existingNotice.getClient().getId())) {
Client client = clientRepository.findById(dto.getClientId()) Client client = clientRepository.findById(dto.getClientId())
.orElseThrow(() -> new EntityNotFoundException("Nie znaleziono klienta o ID: " + dto.getClientId())); .orElseThrow(() -> new EntityNotFoundException("Nie znaleziono klienta o ID: " + dto.getClientId()));
existingNotice.setClient(client); existingNotice.setClient(client);
}
return toDTO(noticeRepository.save(existingNotice));
} }
return toDTO(noticeRepository.save(existingNotice)); public void deleteNotice(Long id) {
} if (noticeExists(id)) {
noticeRepository.deleteById(id);
public void deleteNotice(Long id) { } else {
if (noticeExists(id)) { throw new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id);
noticeRepository.deleteById(id); }
} else {
throw new EntityNotFoundException("Nie znaleziono ogłoszenia o ID: " + id);
} }
} }
}