
uk.co.mruoc.promo.config.SpringDomainConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of burger-promo Show documentation
Show all versions of burger-promo Show documentation
Burger promotion backend apis
The newest version!
package uk.co.mruoc.promo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import uk.co.mruoc.promo.entity.account.AccountFactory;
import uk.co.mruoc.promo.entity.promo.PromoFactory;
import uk.co.mruoc.promo.usecase.account.AccountPopulator;
import uk.co.mruoc.promo.usecase.account.AccountRepository;
import uk.co.mruoc.promo.usecase.account.AccountService;
import uk.co.mruoc.promo.usecase.PromoClaimService;
import uk.co.mruoc.promo.usecase.PromoFacade;
import uk.co.mruoc.promo.usecase.promo.PromoRepository;
import uk.co.mruoc.promo.usecase.promo.PromoPopulator;
import uk.co.mruoc.promo.usecase.promo.PromoService;
@Configuration
public class SpringDomainConfig {
@Bean
public AccountFactory accountFactory() {
return new AccountFactory();
}
@Bean
public PromoFactory promoFactory() {
return new PromoFactory();
}
@Bean
public AccountPopulator accountPopulator(AccountFactory factory, AccountService service) {
return AccountPopulator.builder()
.factory(factory)
.service(service)
.build();
}
@Bean
public PromoPopulator promoPopulator(PromoFactory factory, PromoService service) {
return PromoPopulator.builder()
.factory(factory)
.service(service)
.build();
}
@Bean
public PromoFacade promoFacade(PromoClaimService claimService,
PromoService promoService) {
return PromoFacade.builder()
.claimService(claimService)
.promoService(promoService)
.build();
}
@Bean
public PromoClaimService promoClaimService(AccountService accountService,
PromoService promoService) {
return PromoClaimService.builder()
.accountService(accountService)
.promoService(promoService)
.build();
}
@Bean
public AccountService accountService(AccountRepository repository) {
return new AccountService(repository);
}
@Bean
public PromoService promoService(PromoRepository repository) {
return PromoService.builder()
.repository(repository)
.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy