GetPricingTypesService.java
package com.github.jenkaby.bikerental.tariff.application.service;
import com.github.jenkaby.bikerental.shared.application.service.MessageService;
import com.github.jenkaby.bikerental.tariff.application.usecase.GetPricingTypesUseCase;
import com.github.jenkaby.bikerental.tariff.domain.model.PricingType;
import com.github.jenkaby.bikerental.tariff.domain.model.vo.PricingTypeInfo;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
@Service
class GetPricingTypesService implements GetPricingTypesUseCase {
private final MessageService messageService;
GetPricingTypesService(MessageService messageService) {
this.messageService = messageService;
}
@Override
public List<PricingTypeInfo> execute() {
Locale locale = LocaleContextHolder.getLocale();
return Arrays.stream(PricingType.values())
.map(type -> new PricingTypeInfo(
type.name(),
messageService.getMessage(type.getCodeTitle(), locale),
messageService.getMessage(type.getCodeDescription(), locale)
))
.collect(Collectors.toList());
}
}