package com.edulify.modules.sitemap;
import static java.lang.String.format;
import java.io.File;
import play.mvc.Result;
import play.mvc.Controller;
import javax.inject.Inject;
public class Sitemaps extends Controller {
private SitemapConfig configuration;
@Inject
public Sitemaps(SitemapConfig configuration) {
this.configuration = configuration;
}
public Result sitemap(String sitemapSuffix) {
String sitemap = String.format("sitemap%s.xml", sitemapSuffix);
File baseDir = configuration.getBaseDir();
File sitemapFile = new File(baseDir, sitemap);
play.Logger.debug("Delivering sitemap file " + sitemapFile.getAbsolutePath());
if(canDelivery(sitemapFile)) {
return ok(sitemapFile, true);
}
if ("_index".equals(sitemapSuffix)) {
return sitemap("");
}
play.Logger.error(format("%s sitemap file was not found at directory %s", sitemapFile.getAbsolutePath(), baseDir.getAbsolutePath()));
return notFound();
}
private boolean canDelivery(File file) {
File baseDir = configuration.getBaseDir();
return file.exists() &&
file.isFile() &&
file.getParentFile().equals(baseDir);
}
}