package de.anycook.api.backend; import de.anycook.conf.Configuration; import de.anycook.db.mysql.DBRecipe; import de.anycook.sitemap.SiteMapGenerator; import de.anycook.status.Status; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.sql.SQLException; @Path("backend") public class BackendApi { private final Logger logger; public BackendApi() { logger = LogManager.getLogger(getClass()); } @GET @Path("status") @Produces(MediaType.APPLICATION_JSON) public Status getStatus(){ try { return new Status(); } catch (SQLException | DBRecipe.RecipeNotFoundException e) { logger.error(e, e); throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR); } } @GET @Path("conf") @Produces(MediaType.APPLICATION_JSON) public Configuration getConfiguration(){ return Configuration.getInstance(); } @POST @Path("site_map") public void generateSiteMap(){ try { SiteMapGenerator.generateAllSiteMaps(); } catch (SQLException e) { logger.error(e); throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR); } } }