package sagan.guides.support;
import sagan.Indexer;
import sagan.guides.GettingStartedGuide;
import sagan.search.support.SearchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class GettingStartedGuideIndexer implements Indexer<GettingStartedGuide> {
private GuideSearchEntryMapper mapper = new GuideSearchEntryMapper();
private final SearchService searchService;
private final GettingStartedGuides gsGuides;
@Autowired
public GettingStartedGuideIndexer(SearchService searchService, GettingStartedGuides gsGuides) {
this.searchService = searchService;
this.gsGuides = gsGuides;
}
@Override
public Iterable<GettingStartedGuide> indexableItems() {
return gsGuides.findAll();
}
@Override
public void indexItem(GettingStartedGuide guide) {
searchService.saveToIndex(mapper.map(guide));
}
@Override
public String counterName() {
return "getting_started_guides";
}
@Override
public String getId(GettingStartedGuide indexable) {
return indexable.getGuideId();
}
}