Files
hexagonal/src/main/java/myblog/blog/seo/application/SiteMapService.java
2022-05-14 23:36:53 +09:00

35 lines
1.2 KiB
Java

package myblog.blog.seo.application;
import myblog.blog.article.application.port.incomming.ArticleUseCase;
import myblog.blog.category.appliacation.port.incomming.CategoryUseCase;
import myblog.blog.seo.application.port.incomming.SiteMapUseCase;
import myblog.blog.article.domain.Article;
import myblog.blog.category.domain.Category;
import myblog.blog.seo.domain.SiteMap;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import org.jdom2.output.*;
import java.util.*;
@Service
@Transactional
@RequiredArgsConstructor
public class SiteMapService implements SiteMapUseCase {
private final ArticleUseCase articleUseCase;
private final CategoryUseCase categoryUseCase;
@Override
@Cacheable(value = "seoCaching", key = "1")
public String getSiteMap(){
var articles = articleUseCase.getTotalArticle();
var allCategories = categoryUseCase.getAllCategories();
var siteMap = SiteMap.from(articles, allCategories);
var xmlOutputter = XMLOutPutterBuildHelper.getXmlOutputter();
return xmlOutputter.outputString(siteMap.getSiteMapDoc());
}
}