94 lines
2.5 KiB
Java
Raw Normal View History

package com.baeldung.server;
import com.baeldung.model.Movie;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Path("/movies")
public class MovieCrudService {
private Map<String,Movie> inventory = new HashMap<String, Movie>();
2016-01-31 11:05:11 +01:00
@GET
@Path("/getinfo")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
2016-02-07 20:55:46 +01:00
public Movie movieByImdbId(@QueryParam("imdbId") String imdbId){
2016-01-31 11:05:11 +01:00
2016-01-31 11:05:11 +01:00
System.out.println("*** Calling getinfo for a given ImdbID***");
2016-02-07 20:55:46 +01:00
if(inventory.containsKey(imdbId)){
return inventory.get(imdbId);
2016-01-31 11:05:11 +01:00
}else return null;
}
2016-01-31 11:05:11 +01:00
@POST
@Path("/addmovie")
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Response addMovie(Movie movie){
System.out.println("*** Calling addMovie ***");
2016-02-07 20:29:30 +01:00
if (null!=inventory.get(movie.getImdbId())){
return Response.status(Response.Status.NOT_MODIFIED)
.entity("Movie is Already in the database.").build();
}
2016-01-31 11:05:11 +01:00
2016-02-07 20:29:30 +01:00
inventory.put(movie.getImdbId(),movie);
return Response.status(Response.Status.CREATED).build();
}
@PUT
@Path("/updatemovie")
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Response updateMovie(Movie movie){
System.out.println("*** Calling updateMovie ***");
2016-02-07 20:29:30 +01:00
if (null==inventory.get(movie.getImdbId())){
return Response.status(Response.Status.NOT_MODIFIED)
.entity("Movie is not in the database.\nUnable to Update").build();
}
2016-02-07 20:29:30 +01:00
inventory.put(movie.getImdbId(),movie);
return Response.status(Response.Status.OK).build();
}
@DELETE
@Path("/deletemovie")
2016-02-07 20:55:46 +01:00
public Response deleteMovie(@QueryParam("imdbId") String imdbId){
System.out.println("*** Calling deleteMovie ***");
2016-02-07 20:55:46 +01:00
if (null==inventory.get(imdbId)){
return Response.status(Response.Status.NOT_FOUND)
.entity("Movie is not in the database.\nUnable to Delete").build();
}
2016-02-07 20:55:46 +01:00
inventory.remove(imdbId);
return Response.status(Response.Status.OK).build();
}
2016-01-31 11:05:11 +01:00
@GET
@Path("/listmovies")
@Produces({"application/json"})
public List<Movie> listMovies(){
return inventory.values().stream().collect(Collectors.toCollection(ArrayList::new));
}
}