PublisherService.java
package com.codecool.bytebattlers.service;
import com.codecool.bytebattlers.controller.dto.PublisherDto;
import com.codecool.bytebattlers.mapper.PublisherMapper;
import com.codecool.bytebattlers.model.Publisher;
import com.codecool.bytebattlers.repository.PublisherRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
@Service
public class PublisherService {
private final PublisherMapper mapper;
private final PublisherRepository repository;
@Autowired
public PublisherService(PublisherMapper mapper, PublisherRepository repository) {
this.mapper = mapper;
this.repository = repository;
}
public List<PublisherDto> findAll() {
return repository.findAll().stream().map(mapper::toDto).toList();
}
public PublisherDto save(PublisherDto dto) {
Publisher publisher = mapper.toEntity(dto);
repository.save(publisher);
return mapper.toDto(publisher);
}
public void update(PublisherDto updatedPublisher, UUID publicID) {
Publisher foundPublisher = repository.findPublisherByPublicID(publicID);
repository.save(mapper.partialUpdate(updatedPublisher, foundPublisher));
}
public PublisherDto findById(UUID publicID) {
return mapper.toDto(repository.findPublisherByPublicID(publicID));
}
public Publisher findByPublicId(UUID publicId) {
return repository.findPublisherByPublicID(publicId);
}
public void deleteById(UUID publicID) {
repository.deleteByPublicID(publicID);
}
}