package org.dbpedia.mappings.missingbot.rest.resources; import org.dbpedia.mappings.missingbot.Main; import org.dbpedia.mappings.missingbot.rest.bean.Missing; import org.dbpedia.mappings.missingbot.storage.Store; import org.dbpedia.mappings.missingbot.token.TokenBot; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ws.rs.*; import javax.ws.rs.core.*; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * Created by peterr on 24.04.14. */ @Path("/missings") public class MissingResource { @Context UriInfo uriInfo; @Context Request request; private static final Logger log = LoggerFactory.getLogger(MissingResource.class); @GET @Path("{language}") @Produces(MediaType.APPLICATION_JSON) public List<Missing> getMissings( @PathParam("language") String language ) throws IOException { List<Missing> titles = new ArrayList<Missing>(); titles.addAll(new Store().getAllByLang(language).values()); return titles; } @Path("{language}/{title}") @Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_XML}) public TitleResource getMissing( @PathParam("language") String language, @PathParam("title") String title ) { return new TitleResource(uriInfo, request, language, title); } // TODO: Validate input data @POST @Path("approve") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public void approve( @FormParam("language") String language, @FormParam("title") String title, @FormParam("translation") String translation, @FormParam("session_prefix") String session_prefix, @FormParam("session_id") String session_id, @FormParam("token") String token ) throws IOException { Store store = new Store(); store.remove(title, language); TokenBot tokenBot = new TokenBot(session_prefix, session_id, Main.config.getString("wikihosturl")); tokenBot.save_article(title, translation, language, token); log.info(language + "\t" + title + "\t" + translation); } }