package nl.han.ddoa.forumplugin.services.rest;
import nl.han.ddoa.forumplugin.entities.ForumThreadRepository;
import javax.jws.WebParam;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
* Description for the class ForumThreadRestService:
* <p/>
* Provides a REST API to the ActiveObjects-layer using JAX-RS. We need JSON/XML Serializable entities, so
* all data is converted from/to AO <-> JSON/XML.
* <p/>
*
* @author mdkr
* @version Copyright (c) 2014 HAN University, All rights reserved.
*/
@Path("/")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public class ForumThreadRestService {
private ForumThreadRepository forumThreadRepository;
public ForumThreadRestService(ForumThreadRepository forumThreadRepository) {
this.forumThreadRepository = forumThreadRepository;
}
@GET
@Path("threads")
public Response allThreads() {
return Response.ok(SerializableForumThread.build(forumThreadRepository.all())).build();
}
@POST
@Path("threads")
public Response saveThread(@WebParam String title) {
return Response.ok(SerializableForumThread.build(forumThreadRepository.add(title))).build();
}
@DELETE
@Path("threads/{id}")
public Response deleteThread(@PathParam("id") int id) {
forumThreadRepository.delete(id);
return Response.ok().build();
}
}