EquipmentFacadeImpl.java
package com.github.jenkaby.bikerental.equipment;
import com.github.jenkaby.bikerental.equipment.application.mapper.EquipmentToInfoMapper;
import com.github.jenkaby.bikerental.equipment.application.usecase.GetEquipmentByIdUseCase;
import com.github.jenkaby.bikerental.equipment.application.usecase.GetEquipmentByIdsUseCase;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
class EquipmentFacadeImpl implements EquipmentFacade {
private final GetEquipmentByIdUseCase getEquipmentByIdUseCase;
private final GetEquipmentByIdsUseCase getEquipmentByIdsUseCase;
private final EquipmentToInfoMapper equipmentToInfoMapper;
EquipmentFacadeImpl(GetEquipmentByIdUseCase getEquipmentByIdUseCase,
GetEquipmentByIdsUseCase getEquipmentByIdsUseCase,
EquipmentToInfoMapper equipmentToInfoMapper) {
this.getEquipmentByIdUseCase = getEquipmentByIdUseCase;
this.getEquipmentByIdsUseCase = getEquipmentByIdsUseCase;
this.equipmentToInfoMapper = equipmentToInfoMapper;
}
@Override
public Optional<EquipmentInfo> findById(Long equipmentId) {
return getEquipmentByIdUseCase.execute(equipmentId)
.map(equipmentToInfoMapper::toEquipmentInfo);
}
@Override
public List<EquipmentInfo> findByIds(List<Long> equipmentIds) {
return getEquipmentByIdsUseCase.execute(equipmentIds)
.stream()
.map(equipmentToInfoMapper::toEquipmentInfo)
.toList();
}
}