fix tests and silent failures
This commit is contained in:
@@ -410,6 +410,7 @@ public class AuthController {
|
|||||||
try {
|
try {
|
||||||
avatarStorageService.deleteAvatar(user);
|
avatarStorageService.deleteAvatar(user);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
log.warn("Failed to delete avatar for user {}: {}", user.getId(), e.getMessage());
|
||||||
}
|
}
|
||||||
user.setAvatarUrl(null);
|
user.setAvatarUrl(null);
|
||||||
userRepository.save(user);
|
userRepository.save(user);
|
||||||
|
|||||||
@@ -326,17 +326,25 @@ public class AppointmentService {
|
|||||||
|
|
||||||
AppointmentResponse response = new AppointmentResponse();
|
AppointmentResponse response = new AppointmentResponse();
|
||||||
response.setAppointmentId(appointment.getAppointmentId());
|
response.setAppointmentId(appointment.getAppointmentId());
|
||||||
response.setCustomerId(appointment.getCustomer().getId());
|
if (appointment.getCustomer() != null) {
|
||||||
response.setCustomerName(appointment.getCustomer().getFirstName() + " " + appointment.getCustomer().getLastName());
|
response.setCustomerId(appointment.getCustomer().getId());
|
||||||
response.setStoreId(appointment.getStore().getStoreId());
|
response.setCustomerName(appointment.getCustomer().getFirstName() + " " + appointment.getCustomer().getLastName());
|
||||||
response.setStoreName(appointment.getStore().getStoreName());
|
}
|
||||||
response.setServiceId(appointment.getService().getServiceId());
|
if (appointment.getStore() != null) {
|
||||||
response.setServiceName(appointment.getService().getServiceName());
|
response.setStoreId(appointment.getStore().getStoreId());
|
||||||
|
response.setStoreName(appointment.getStore().getStoreName());
|
||||||
|
}
|
||||||
|
if (appointment.getService() != null) {
|
||||||
|
response.setServiceId(appointment.getService().getServiceId());
|
||||||
|
response.setServiceName(appointment.getService().getServiceName());
|
||||||
|
}
|
||||||
response.setAppointmentDate(appointment.getAppointmentDate());
|
response.setAppointmentDate(appointment.getAppointmentDate());
|
||||||
response.setAppointmentTime(appointment.getAppointmentTime());
|
response.setAppointmentTime(appointment.getAppointmentTime());
|
||||||
response.setAppointmentStatus(appointment.getAppointmentStatus());
|
response.setAppointmentStatus(appointment.getAppointmentStatus());
|
||||||
response.setEmployeeId(appointment.getEmployee().getId());
|
if (appointment.getEmployee() != null) {
|
||||||
response.setEmployeeName(appointment.getEmployee().getFirstName() + " " + appointment.getEmployee().getLastName());
|
response.setEmployeeId(appointment.getEmployee().getId());
|
||||||
|
response.setEmployeeName(appointment.getEmployee().getFirstName() + " " + appointment.getEmployee().getLastName());
|
||||||
|
}
|
||||||
response.setPetName(pet != null ? pet.getPetName() : null);
|
response.setPetName(pet != null ? pet.getPetName() : null);
|
||||||
response.setPetId(pet != null ? pet.getPetId() : null);
|
response.setPetId(pet != null ? pet.getPetId() : null);
|
||||||
response.setCreatedAt(appointment.getCreatedAt());
|
response.setCreatedAt(appointment.getCreatedAt());
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import com.stripe.exception.StripeException;
|
|||||||
import com.stripe.model.PaymentIntent;
|
import com.stripe.model.PaymentIntent;
|
||||||
import com.stripe.param.PaymentIntentCreateParams;
|
import com.stripe.param.PaymentIntentCreateParams;
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import jakarta.transaction.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import com.petshop.backend.exception.BusinessException;
|
|||||||
import com.petshop.backend.exception.ResourceNotFoundException;
|
import com.petshop.backend.exception.ResourceNotFoundException;
|
||||||
import com.petshop.backend.repository.CategoryRepository;
|
import com.petshop.backend.repository.CategoryRepository;
|
||||||
import com.petshop.backend.repository.ProductRepository;
|
import com.petshop.backend.repository.ProductRepository;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@@ -23,6 +25,8 @@ import java.util.Locale;
|
|||||||
@Service
|
@Service
|
||||||
public class ProductService {
|
public class ProductService {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(ProductService.class);
|
||||||
|
|
||||||
private final ProductRepository productRepository;
|
private final ProductRepository productRepository;
|
||||||
private final CategoryRepository categoryRepository;
|
private final CategoryRepository categoryRepository;
|
||||||
private final CatalogImageStorageService catalogImageStorageService;
|
private final CatalogImageStorageService catalogImageStorageService;
|
||||||
@@ -152,7 +156,8 @@ public class ProductService {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
catalogImageStorageService.deleteProductImage(storedImagePath);
|
catalogImageStorageService.deleteProductImage(storedImagePath);
|
||||||
} catch (IOException | IllegalArgumentException ignored) {
|
} catch (IOException | IllegalArgumentException e) {
|
||||||
|
log.warn("Failed to delete stored image {}: {}", storedImagePath, e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -367,8 +367,11 @@ public class SaleService {
|
|||||||
SaleResponse response = new SaleResponse();
|
SaleResponse response = new SaleResponse();
|
||||||
response.setSaleId(sale.getSaleId());
|
response.setSaleId(sale.getSaleId());
|
||||||
response.setSaleDate(sale.getSaleDate());
|
response.setSaleDate(sale.getSaleDate());
|
||||||
response.setEmployeeId(sale.getEmployee().getId());
|
|
||||||
response.setEmployeeName(sale.getEmployee().getFirstName() + " " + sale.getEmployee().getLastName());
|
if (sale.getEmployee() != null) {
|
||||||
|
response.setEmployeeId(sale.getEmployee().getId());
|
||||||
|
response.setEmployeeName(sale.getEmployee().getFirstName() + " " + sale.getEmployee().getLastName());
|
||||||
|
}
|
||||||
|
|
||||||
if (sale.getStore() != null) {
|
if (sale.getStore() != null) {
|
||||||
response.setStoreId(sale.getStore().getStoreId());
|
response.setStoreId(sale.getStore().getStoreId());
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class UserServiceTest {
|
|||||||
User target = user(2L, User.Role.ADMIN);
|
User target = user(2L, User.Role.ADMIN);
|
||||||
authenticate(actor);
|
authenticate(actor);
|
||||||
|
|
||||||
when(userRepository.findById(2L)).thenReturn(Optional.of(target));
|
when(userRepository.findByIdForUpdate(2L)).thenReturn(Optional.of(target));
|
||||||
when(userRepository.findById(1L)).thenReturn(Optional.of(actor));
|
when(userRepository.findById(1L)).thenReturn(Optional.of(actor));
|
||||||
|
|
||||||
UserRequest request = request(User.Role.ADMIN);
|
UserRequest request = request(User.Role.ADMIN);
|
||||||
@@ -74,7 +74,7 @@ class UserServiceTest {
|
|||||||
User target = user(2L, User.Role.ADMIN);
|
User target = user(2L, User.Role.ADMIN);
|
||||||
authenticate(actor);
|
authenticate(actor);
|
||||||
|
|
||||||
when(userRepository.findById(2L)).thenReturn(Optional.of(target));
|
when(userRepository.findByIdForUpdate(2L)).thenReturn(Optional.of(target));
|
||||||
|
|
||||||
UserRequest request = request(User.Role.CUSTOMER);
|
UserRequest request = request(User.Role.CUSTOMER);
|
||||||
|
|
||||||
@@ -145,6 +145,7 @@ class UserServiceTest {
|
|||||||
User actor = user(1L, User.Role.ADMIN);
|
User actor = user(1L, User.Role.ADMIN);
|
||||||
authenticate(actor);
|
authenticate(actor);
|
||||||
|
|
||||||
|
when(userRepository.findByIdForUpdate(1L)).thenReturn(Optional.of(actor));
|
||||||
when(userRepository.findById(1L)).thenReturn(Optional.of(actor));
|
when(userRepository.findById(1L)).thenReturn(Optional.of(actor));
|
||||||
when(userRepository.save(any(User.class))).thenAnswer(invocation -> invocation.getArgument(0));
|
when(userRepository.save(any(User.class))).thenAnswer(invocation -> invocation.getArgument(0));
|
||||||
|
|
||||||
@@ -161,7 +162,7 @@ class UserServiceTest {
|
|||||||
User target = user(2L, User.Role.CUSTOMER);
|
User target = user(2L, User.Role.CUSTOMER);
|
||||||
authenticate(actor);
|
authenticate(actor);
|
||||||
|
|
||||||
when(userRepository.findById(2L)).thenReturn(Optional.of(target));
|
when(userRepository.findByIdForUpdate(2L)).thenReturn(Optional.of(target));
|
||||||
when(userRepository.findById(1L)).thenReturn(Optional.of(actor));
|
when(userRepository.findById(1L)).thenReturn(Optional.of(actor));
|
||||||
|
|
||||||
UserRequest request = request(User.Role.ADMIN);
|
UserRequest request = request(User.Role.ADMIN);
|
||||||
@@ -176,7 +177,7 @@ class UserServiceTest {
|
|||||||
User target = user(2L, User.Role.CUSTOMER);
|
User target = user(2L, User.Role.CUSTOMER);
|
||||||
authenticate(actor);
|
authenticate(actor);
|
||||||
|
|
||||||
when(userRepository.findById(2L)).thenReturn(Optional.of(target));
|
when(userRepository.findByIdForUpdate(2L)).thenReturn(Optional.of(target));
|
||||||
|
|
||||||
UserRequest request = request(User.Role.ADMIN);
|
UserRequest request = request(User.Role.ADMIN);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user