From 5476651ea38e3c28aeb04ffdd65f1b3837e04d68 Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Tue, 14 Oct 2025 14:50:06 +0200 Subject: [PATCH] add BrandService and enhance UserService with additional user retrieval methods --- .../api/service/app/BrandService.java | 56 +++++++++++++++++++ .../api/service/user/UserService.java | 14 +++-- 2 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 api/src/main/java/fr/gameovergne/api/service/app/BrandService.java diff --git a/api/src/main/java/fr/gameovergne/api/service/app/BrandService.java b/api/src/main/java/fr/gameovergne/api/service/app/BrandService.java new file mode 100644 index 0000000..f8008ef --- /dev/null +++ b/api/src/main/java/fr/gameovergne/api/service/app/BrandService.java @@ -0,0 +1,56 @@ +package fr.gameovergne.api.service.app; + +import fr.gameovergne.api.model.app.Brand; +import fr.gameovergne.api.repository.app.BrandRepository; +import jakarta.transaction.Transactional; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@Service +public class BrandService { + + private final BrandRepository brandRepository; + + @Autowired + public BrandService(BrandRepository brandRepository) { + this.brandRepository = brandRepository; + } + + @Transactional + public void saveBrand(Brand brand) { + if (brand.getId() == null) { + brandRepository.save(brand); + } + } + + public List getAllBrands() { + return brandRepository.findAll(); + } + + public Optional getBrandById(Long id) { + return brandRepository.findById(id); + } + + public Optional getBrandByName(String name) { + return brandRepository.findByName(name); + } + + @Transactional + public Optional updateBrand(Brand brand) { + return brandRepository.findById(brand.getId()).map(existingBrand -> { + existingBrand.setName(brand.getName()); + existingBrand.setPlatforms(brand.getPlatforms()); + return brandRepository.save(existingBrand); + }); + } + + @Transactional + public Optional deleteBrandById(Long id) { + Optional brand = brandRepository.findById(id); + brand.ifPresent(brandRepository::delete); + return brand; + } +} diff --git a/api/src/main/java/fr/gameovergne/api/service/user/UserService.java b/api/src/main/java/fr/gameovergne/api/service/user/UserService.java index 3dd9f53..b982f18 100644 --- a/api/src/main/java/fr/gameovergne/api/service/user/UserService.java +++ b/api/src/main/java/fr/gameovergne/api/service/user/UserService.java @@ -26,19 +26,25 @@ public class UserService { } } + public List getAllUsers() { + return userRepository.findAll(); + } + public Optional getUserById(Long id) { return userRepository.findById(id); } - public List getAllUsers() { - return userRepository.findAll(); + public Optional getUserByUsername(String username) { + return userRepository.findByUsername(username); + } + + public Optional getUserByEmail(String email) { + return userRepository.findByEmail(email); } @Transactional public Optional updateUser(User user) { return userRepository.findById(user.getId()).map(existingUser -> { - existingUser.setFirstName(user.getFirstName()); - existingUser.setLastName(user.getLastName()); existingUser.setEmail(user.getEmail()); existingUser.setUsername(user.getUsername()); existingUser.setPassword(user.getPassword());