Facebook
From Silly Anoa, 6 Years ago, written in Java 5.
Embed
Download Paste or View Raw
Hits: 218
  1. package lab6.rest.service;
  2.  
  3. import lab6.rest.pojo.EntryPOJO;
  4.  
  5. import javax.inject.Singleton;
  6. import javax.ws.rs.*;
  7. import javax.ws.rs.client.Client;
  8. import javax.ws.rs.client.ClientBuilder;
  9. import javax.ws.rs.client.WebTarget;
  10. import javax.ws.rs.core.GenericType;
  11. import javax.ws.rs.core.MediaType;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14.  
  15. @Singleton
  16. @Path("/search")
  17. public class SearchEngine {
  18.  
  19.     private static final String REST_URI = "http://localhost:8080/lab6_v2Web/blog/entry";
  20.  
  21.     private Client restClient;
  22.     private WebTarget resourceTarget;
  23.  
  24.     public SearchEngine() {
  25.         restClient = ClientBuilder.newClient();
  26.         resourceTarget = restClient.target(REST_URI);
  27.     }
  28.  
  29.  
  30.     @GET
  31.     @Path("/entry/{title}")
  32.     @Produces(MediaType.APPLICATION_JSON)
  33.     public List<EntryPOJO> returnEntryByTitle(@PathParam("title") String title) {
  34.  
  35.         List<EntryPOJO> entrysOutput = new ArrayList<>();
  36.         List<EntryPOJO> entrysFromService;
  37.         entrysFromService = resourceTarget.request(MediaType.APPLICATION_JSON).get(new GenericType<List<EntryPOJO>>(){});
  38.  
  39.         for( int i=0; i<entrysFromService.size(); i++) {
  40.             if (entrysFromService.get(i).getSubject().contains(title)) {
  41.                 entrysOutput.add(entrysFromService.get(i));
  42.             }
  43.         }
  44.         return entrysOutput;
  45.     }
  46.  
  47.     @DELETE
  48.     @Path("/entry/{title}")
  49.     public void deleteEntrysByTitle(@PathParam("title") String title) {
  50.  
  51.         //List<EntryPOJO> entrysOutput = new ArrayList<>();
  52.         List<EntryPOJO> entrysFromService;
  53.         entrysFromService = resourceTarget.request(MediaType.APPLICATION_JSON).get(new GenericType<List<EntryPOJO>>(){});
  54.  
  55.         for( int i=0; i<entrysFromService.size(); i++) {
  56.             if (entrysFromService.get(i).getSubject().contains(title)) {
  57.                 entrysFromService.remove(i);
  58.                 //resourceTarget.request(MediaType.APPLICATION_JSON).delete();
  59.                 resourceTarget.path(entrysFromService.get(i).getId()).request().delete();
  60.             }
  61.         }
  62.  
  63.         //resourceTarget.request()
  64.     }
  65.  
  66.     @DELETE
  67.     @Path("/comment/{user}")
  68.     public void deleteUserComments(@PathParam("user") String user) {
  69.  
  70.         //List<EntryPOJO> entrysOutput = new ArrayList<>();
  71.         List<EntryPOJO> entrysFromService;
  72.         entrysFromService = resourceTarget.request(MediaType.APPLICATION_JSON).get(new GenericType<List<EntryPOJO>>(){});
  73.  
  74.         for( int i=0; i<entrysFromService.size(); i++) {
  75.             for(int j = 0; j<entrysFromService.get(i).getCommentPOJOList().size(); j++) {
  76.                 if (entrysFromService.get(i).getCommentPOJOList().get(j).getUser().equals(user)) {
  77.                     //entrysFromService.remove(i);
  78.                     //resourceTarget.request(MediaType.APPLICATION_JSON).delete();
  79.                     resourceTarget.path(entrysFromService.get(i).getId()).path("/comment/").path(entrysFromService.get(i).getCommentPOJOList().get(j).getId()).request().delete();
  80.                 }
  81.             }
  82.         }
  83.  
  84.         //resourceTarget.request()
  85.     }
  86.  
  87.  
  88. }
  89.