standardize CRUD services
This commit is contained in:
@@ -21,11 +21,13 @@ public class CategoryService {
|
|||||||
this.categoryRepository = categoryRepository;
|
this.categoryRepository = categoryRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public Page<CategoryResponse> getAllCategories(String query, String type, Pageable pageable) {
|
public Page<CategoryResponse> getAllCategories(String query, String type, Pageable pageable) {
|
||||||
return categoryRepository.searchCategories(StringUtils.trimToNull(query), StringUtils.trimToNull(type), pageable)
|
return categoryRepository.searchCategories(StringUtils.trimToNull(query), StringUtils.trimToNull(type), pageable)
|
||||||
.map(this::mapToResponse);
|
.map(this::mapToResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public CategoryResponse getCategoryById(Long id) {
|
public CategoryResponse getCategoryById(Long id) {
|
||||||
Category category = categoryRepository.findById(id)
|
Category category = categoryRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException("Category not found with id: " + id));
|
.orElseThrow(() -> new ResourceNotFoundException("Category not found with id: " + id));
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.petshop.backend.dto.service.ServiceRequest;
|
|||||||
import com.petshop.backend.dto.service.ServiceResponse;
|
import com.petshop.backend.dto.service.ServiceResponse;
|
||||||
import com.petshop.backend.exception.ResourceNotFoundException;
|
import com.petshop.backend.exception.ResourceNotFoundException;
|
||||||
import com.petshop.backend.repository.ServiceRepository;
|
import com.petshop.backend.repository.ServiceRepository;
|
||||||
|
import com.petshop.backend.util.StringUtils;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -21,9 +22,8 @@ public class ServiceService {
|
|||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public Page<ServiceResponse> getAllServices(String query, String species, Pageable pageable) {
|
public Page<ServiceResponse> getAllServices(String query, String species, Pageable pageable) {
|
||||||
String q = (query != null && !query.trim().isEmpty()) ? query.trim() : null;
|
return serviceRepository.searchServices(StringUtils.trimToNull(query), StringUtils.trimToNull(species), pageable)
|
||||||
String sp = (species != null && !species.trim().isEmpty()) ? species.trim() : null;
|
.map(this::mapToResponse);
|
||||||
return serviceRepository.searchServices(q, sp, pageable).map(this::mapToResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
@@ -36,14 +36,7 @@ public class ServiceService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public ServiceResponse createService(ServiceRequest request) {
|
public ServiceResponse createService(ServiceRequest request) {
|
||||||
com.petshop.backend.entity.Service service = new com.petshop.backend.entity.Service();
|
com.petshop.backend.entity.Service service = new com.petshop.backend.entity.Service();
|
||||||
service.setServiceName(request.getServiceName());
|
applyFields(service, request);
|
||||||
service.setServiceDesc(request.getServiceDesc());
|
|
||||||
service.setServicePrice(request.getServicePrice());
|
|
||||||
service.setServiceDuration(request.getServiceDuration());
|
|
||||||
if (request.getSpecies() != null) {
|
|
||||||
service.setSpecies(request.getSpecies());
|
|
||||||
}
|
|
||||||
|
|
||||||
service = serviceRepository.save(service);
|
service = serviceRepository.save(service);
|
||||||
return mapToResponse(service);
|
return mapToResponse(service);
|
||||||
}
|
}
|
||||||
@@ -52,15 +45,7 @@ public class ServiceService {
|
|||||||
public ServiceResponse updateService(Long id, ServiceRequest request) {
|
public ServiceResponse updateService(Long id, ServiceRequest request) {
|
||||||
com.petshop.backend.entity.Service service = serviceRepository.findById(id)
|
com.petshop.backend.entity.Service service = serviceRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException("Service not found with id: " + id));
|
.orElseThrow(() -> new ResourceNotFoundException("Service not found with id: " + id));
|
||||||
|
applyFields(service, request);
|
||||||
service.setServiceName(request.getServiceName());
|
|
||||||
service.setServiceDesc(request.getServiceDesc());
|
|
||||||
service.setServicePrice(request.getServicePrice());
|
|
||||||
service.setServiceDuration(request.getServiceDuration());
|
|
||||||
if (request.getSpecies() != null) {
|
|
||||||
service.setSpecies(request.getSpecies());
|
|
||||||
}
|
|
||||||
|
|
||||||
service = serviceRepository.save(service);
|
service = serviceRepository.save(service);
|
||||||
return mapToResponse(service);
|
return mapToResponse(service);
|
||||||
}
|
}
|
||||||
@@ -78,6 +63,16 @@ public class ServiceService {
|
|||||||
serviceRepository.deleteAllById(request.getIds());
|
serviceRepository.deleteAllById(request.getIds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyFields(com.petshop.backend.entity.Service service, ServiceRequest request) {
|
||||||
|
service.setServiceName(request.getServiceName());
|
||||||
|
service.setServiceDesc(request.getServiceDesc());
|
||||||
|
service.setServicePrice(request.getServicePrice());
|
||||||
|
service.setServiceDuration(request.getServiceDuration());
|
||||||
|
if (request.getSpecies() != null) {
|
||||||
|
service.setSpecies(request.getSpecies());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private ServiceResponse mapToResponse(com.petshop.backend.entity.Service service) {
|
private ServiceResponse mapToResponse(com.petshop.backend.entity.Service service) {
|
||||||
return new ServiceResponse(
|
return new ServiceResponse(
|
||||||
service.getServiceId(),
|
service.getServiceId(),
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.petshop.backend.dto.store.StoreResponse;
|
|||||||
import com.petshop.backend.entity.StoreLocation;
|
import com.petshop.backend.entity.StoreLocation;
|
||||||
import com.petshop.backend.exception.ResourceNotFoundException;
|
import com.petshop.backend.exception.ResourceNotFoundException;
|
||||||
import com.petshop.backend.repository.StoreRepository;
|
import com.petshop.backend.repository.StoreRepository;
|
||||||
|
import com.petshop.backend.util.StringUtils;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -20,16 +21,16 @@ public class StoreService {
|
|||||||
this.storeRepository = storeRepository;
|
this.storeRepository = storeRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public Page<StoreResponse> getAllStores(String query, Pageable pageable) {
|
public Page<StoreResponse> getAllStores(String query, Pageable pageable) {
|
||||||
Page<StoreLocation> stores;
|
String q = StringUtils.trimToNull(query);
|
||||||
if (query != null && !query.trim().isEmpty()) {
|
Page<StoreLocation> stores = q != null
|
||||||
stores = storeRepository.searchStores(query, pageable);
|
? storeRepository.searchStores(q, pageable)
|
||||||
} else {
|
: storeRepository.findAll(pageable);
|
||||||
stores = storeRepository.findAll(pageable);
|
|
||||||
}
|
|
||||||
return stores.map(this::mapToResponse);
|
return stores.map(this::mapToResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public StoreResponse getStoreById(Long id) {
|
public StoreResponse getStoreById(Long id) {
|
||||||
StoreLocation store = storeRepository.findById(id)
|
StoreLocation store = storeRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException("Store not found with id: " + id));
|
.orElseThrow(() -> new ResourceNotFoundException("Store not found with id: " + id));
|
||||||
@@ -39,12 +40,7 @@ public class StoreService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public StoreResponse createStore(StoreRequest request) {
|
public StoreResponse createStore(StoreRequest request) {
|
||||||
StoreLocation store = new StoreLocation();
|
StoreLocation store = new StoreLocation();
|
||||||
store.setStoreName(request.getStoreName());
|
applyFields(store, request);
|
||||||
store.setAddress(request.getAddress());
|
|
||||||
store.setPhone(request.getPhone());
|
|
||||||
store.setEmail(request.getEmail());
|
|
||||||
store.setImageUrl(request.getImageUrl());
|
|
||||||
|
|
||||||
store = storeRepository.save(store);
|
store = storeRepository.save(store);
|
||||||
return mapToResponse(store);
|
return mapToResponse(store);
|
||||||
}
|
}
|
||||||
@@ -53,13 +49,7 @@ public class StoreService {
|
|||||||
public StoreResponse updateStore(Long id, StoreRequest request) {
|
public StoreResponse updateStore(Long id, StoreRequest request) {
|
||||||
StoreLocation store = storeRepository.findById(id)
|
StoreLocation store = storeRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException("Store not found with id: " + id));
|
.orElseThrow(() -> new ResourceNotFoundException("Store not found with id: " + id));
|
||||||
|
applyFields(store, request);
|
||||||
store.setStoreName(request.getStoreName());
|
|
||||||
store.setAddress(request.getAddress());
|
|
||||||
store.setPhone(request.getPhone());
|
|
||||||
store.setEmail(request.getEmail());
|
|
||||||
store.setImageUrl(request.getImageUrl());
|
|
||||||
|
|
||||||
store = storeRepository.save(store);
|
store = storeRepository.save(store);
|
||||||
return mapToResponse(store);
|
return mapToResponse(store);
|
||||||
}
|
}
|
||||||
@@ -77,6 +67,14 @@ public class StoreService {
|
|||||||
storeRepository.deleteAllById(request.getIds());
|
storeRepository.deleteAllById(request.getIds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyFields(StoreLocation store, StoreRequest request) {
|
||||||
|
store.setStoreName(request.getStoreName());
|
||||||
|
store.setAddress(request.getAddress());
|
||||||
|
store.setPhone(request.getPhone());
|
||||||
|
store.setEmail(request.getEmail());
|
||||||
|
store.setImageUrl(request.getImageUrl());
|
||||||
|
}
|
||||||
|
|
||||||
private StoreResponse mapToResponse(StoreLocation store) {
|
private StoreResponse mapToResponse(StoreLocation store) {
|
||||||
return new StoreResponse(
|
return new StoreResponse(
|
||||||
store.getStoreId(),
|
store.getStoreId(),
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.petshop.backend.dto.supplier.SupplierResponse;
|
|||||||
import com.petshop.backend.entity.Supplier;
|
import com.petshop.backend.entity.Supplier;
|
||||||
import com.petshop.backend.exception.ResourceNotFoundException;
|
import com.petshop.backend.exception.ResourceNotFoundException;
|
||||||
import com.petshop.backend.repository.SupplierRepository;
|
import com.petshop.backend.repository.SupplierRepository;
|
||||||
|
import com.petshop.backend.util.StringUtils;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -20,16 +21,16 @@ public class SupplierService {
|
|||||||
this.supplierRepository = supplierRepository;
|
this.supplierRepository = supplierRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public Page<SupplierResponse> getAllSuppliers(String query, Pageable pageable) {
|
public Page<SupplierResponse> getAllSuppliers(String query, Pageable pageable) {
|
||||||
Page<Supplier> suppliers;
|
String q = StringUtils.trimToNull(query);
|
||||||
if (query != null && !query.trim().isEmpty()) {
|
Page<Supplier> suppliers = q != null
|
||||||
suppliers = supplierRepository.searchSuppliers(query, pageable);
|
? supplierRepository.searchSuppliers(q, pageable)
|
||||||
} else {
|
: supplierRepository.findAll(pageable);
|
||||||
suppliers = supplierRepository.findAll(pageable);
|
|
||||||
}
|
|
||||||
return suppliers.map(this::mapToResponse);
|
return suppliers.map(this::mapToResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public SupplierResponse getSupplierById(Long id) {
|
public SupplierResponse getSupplierById(Long id) {
|
||||||
Supplier supplier = supplierRepository.findById(id)
|
Supplier supplier = supplierRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException("Supplier not found with id: " + id));
|
.orElseThrow(() -> new ResourceNotFoundException("Supplier not found with id: " + id));
|
||||||
@@ -39,12 +40,7 @@ public class SupplierService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public SupplierResponse createSupplier(SupplierRequest request) {
|
public SupplierResponse createSupplier(SupplierRequest request) {
|
||||||
Supplier supplier = new Supplier();
|
Supplier supplier = new Supplier();
|
||||||
supplier.setSupCompany(request.getSupCompany());
|
applyFields(supplier, request);
|
||||||
supplier.setSupContactFirstName(request.getSupContactFirstName());
|
|
||||||
supplier.setSupContactLastName(request.getSupContactLastName());
|
|
||||||
supplier.setSupEmail(request.getSupEmail());
|
|
||||||
supplier.setSupPhone(request.getSupPhone());
|
|
||||||
|
|
||||||
supplier = supplierRepository.save(supplier);
|
supplier = supplierRepository.save(supplier);
|
||||||
return mapToResponse(supplier);
|
return mapToResponse(supplier);
|
||||||
}
|
}
|
||||||
@@ -53,13 +49,7 @@ public class SupplierService {
|
|||||||
public SupplierResponse updateSupplier(Long id, SupplierRequest request) {
|
public SupplierResponse updateSupplier(Long id, SupplierRequest request) {
|
||||||
Supplier supplier = supplierRepository.findById(id)
|
Supplier supplier = supplierRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException("Supplier not found with id: " + id));
|
.orElseThrow(() -> new ResourceNotFoundException("Supplier not found with id: " + id));
|
||||||
|
applyFields(supplier, request);
|
||||||
supplier.setSupCompany(request.getSupCompany());
|
|
||||||
supplier.setSupContactFirstName(request.getSupContactFirstName());
|
|
||||||
supplier.setSupContactLastName(request.getSupContactLastName());
|
|
||||||
supplier.setSupEmail(request.getSupEmail());
|
|
||||||
supplier.setSupPhone(request.getSupPhone());
|
|
||||||
|
|
||||||
supplier = supplierRepository.save(supplier);
|
supplier = supplierRepository.save(supplier);
|
||||||
return mapToResponse(supplier);
|
return mapToResponse(supplier);
|
||||||
}
|
}
|
||||||
@@ -77,6 +67,14 @@ public class SupplierService {
|
|||||||
supplierRepository.deleteAllById(request.getIds());
|
supplierRepository.deleteAllById(request.getIds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyFields(Supplier supplier, SupplierRequest request) {
|
||||||
|
supplier.setSupCompany(request.getSupCompany());
|
||||||
|
supplier.setSupContactFirstName(request.getSupContactFirstName());
|
||||||
|
supplier.setSupContactLastName(request.getSupContactLastName());
|
||||||
|
supplier.setSupEmail(request.getSupEmail());
|
||||||
|
supplier.setSupPhone(request.getSupPhone());
|
||||||
|
}
|
||||||
|
|
||||||
private SupplierResponse mapToResponse(Supplier supplier) {
|
private SupplierResponse mapToResponse(Supplier supplier) {
|
||||||
return new SupplierResponse(
|
return new SupplierResponse(
|
||||||
supplier.getSupId(),
|
supplier.getSupId(),
|
||||||
|
|||||||
Reference in New Issue
Block a user