LocationServiceImpl.java
package com.nashtech.rookie.asset_management_0701.services.location;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nashtech.rookie.asset_management_0701.dtos.requests.location.LocationRequest;
import com.nashtech.rookie.asset_management_0701.dtos.responses.location.LocationResponse;
import com.nashtech.rookie.asset_management_0701.entities.Location;
import com.nashtech.rookie.asset_management_0701.exceptions.AppException;
import com.nashtech.rookie.asset_management_0701.exceptions.ErrorCode;
import com.nashtech.rookie.asset_management_0701.mappers.LocationMapper;
import com.nashtech.rookie.asset_management_0701.repositories.LocationRepository;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
@Service
@Transactional(readOnly = true)
public class LocationServiceImpl implements LocationService{
private final LocationRepository locationRepository;
private final LocationMapper locationMapper;
@Override
public List<LocationResponse> getAllLocation () {
return locationMapper.toLocationResponses(locationRepository.findAll());
}
@Transactional
@Override
public LocationResponse createLocation (LocationRequest locationRequest) {
if (locationRepository.existsByName(locationRequest.getName())) {
throw new AppException(ErrorCode.LOCATION_NAME_ALREADY_EXISTED);
}
if (locationRepository.existsByCode(locationRequest.getCode())) {
throw new AppException(ErrorCode.LOCATION_CODE_ALREADY_EXISTED);
}
Location location = locationMapper.toLocationEntity(locationRequest);
return locationMapper.toLocationResponse(locationRepository.save(location));
}
}