You are on page 1of 2

package sd.

lab3;
import java.util.ArrayList;
import java.util.List;
import sd.lab3.models.BlogPost;
public class BlogPostDAO {
private static BlogPostDAO instance = null;
private int maxID = 0;
private List<BlogPost> blogPosts = new ArrayList<>();
public static BlogPostDAO getInstance() {
if (instance == null) {
instance = new BlogPostDAO();
}
return instance;
}
private BlogPostDAO() {
}
public int saveBlogPost(BlogPost newBlogPost) {
maxID++;
newBlogPost.setId(maxID);
this.blogPosts.add(newBlogPost);
return maxID;
}
public BlogPost getBlogPost(int id) {
for (BlogPost post : blogPosts) {
if (post.getId() == id) {
return post;
}
}
return null;
}
public List<BlogPost> getBlogPosts(){
return this.blogPosts;
}
public BlogPost deleteBlogPost(int id) {
BlogPost toBeRemoved = getBlogPost(id);
if (toBeRemoved != null) {
this.blogPosts.remove(toBeRemoved);
}
return toBeRemoved;
}
}
package sd.lab3;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;

import
import
import
import
import
import
import

javax.ws.rs.POST;
javax.ws.rs.Path;
javax.ws.rs.PathParam;
javax.ws.rs.Produces;
javax.ws.rs.core.MediaType;
javax.ws.rs.core.Response;
javax.ws.rs.core.Response.Status;

import sd.lab3.models.BlogPost;
@Path("/blogposts")
public class Endpoint3 {
@POST
public Response saveBlogPost(@FormParam("text") String text,@FormParam(
"title") String title) throws
URISyntaxException {
if(title == null){
return Response.status(Status.BAD_REQUEST).build();
}
BlogPost blogPost = new BlogPost();
blogPost.setText(text);
blogPost.setTitle(title);
int id = BlogPostDAO.getInstance().saveBlogPost(blogPost);
return Response.status(Status.CREATED).location(new URI("http://
localhost:8080/Lab3/rest/blogposts/" + id)).build();
}
@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getBlogPost(@PathParam("id") String id){
int iid = Integer.parseInt(id);
BlogPost bp = BlogPostDAO.getInstance().getBlogPost(iid);
if(bp == null){
return Response.status(Status.NOT_FOUND).build();
}else{
return Response.status(Status.OK).entity(bp).build();
}
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<BlogPost> getBlogPosts(){
return BlogPostDAO.getInstance().getBlogPosts();
}
@DELETE
@Path("/delete/{id}")
public Response deleteBlogPost(@PathParam("id") String id){
int iid = Integer.parseInt(id);
BlogPost bp = BlogPostDAO.getInstance().deleteBlogPost(iid);
if(bp == null){
return Response.status(Status.NOT_FOUND).build();
}else{
return Response.status(Status.OK).entity(bp).build();
}
}
}

You might also like