package lab6.rest.service;
import lab6.rest.pojo.EntryPOJO;
import javax.inject.Singleton;
import javax.ws.rs.*;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
@Singleton
@Path("/search")
public class SearchEngine {
private static final String REST_URI =
"http://localhost:8080/lab6_v2Web/blog";
private Client restClient;
private WebTarget resourceTarget;
public SearchEngine() {
restClient = ClientBuilder.newClient();
resourceTarget = restClient.target(REST_URI);
}
@GET
@Path("/entry/{title}")
@Produces(MediaType.APPLICATION_JSON)
public List<EntryPOJO
> returnEntryByTitle
(@PathParam
("title") String title
) {
List<EntryPOJO
> entrysFromService
;
entrysFromService = resourceTarget.
request(MediaType.
APPLICATION_JSON).
get(new GenericType
<List<EntryPOJO
>>(){});
for( int i=0; i<entrysFromService.size(); i++) {
if (entrysFromService.get(i).getSubject().contains(title)) {
entrysOutput.add(entrysFromService.get(i));
}
}
return entrysOutput;
}
@DELETE
@Path("/entry/{title}")
public void deleteEntrysByTitle
(@PathParam
("title") String title
) {
//List<EntryPOJO> entrysOutput = new ArrayList<>();
List<EntryPOJO
> entrysFromService
;
entrysFromService = resourceTarget.
request(MediaType.
APPLICATION_JSON).
get(new GenericType
<List<EntryPOJO
>>(){});
for( int i=0; i<entrysFromService.size(); i++) {
if (entrysFromService.get(i).getSubject().contains(title)) {
entrysFromService.remove(i);
//resourceTarget.request(MediaType.APPLICATION_JSON).delete();
resourceTarget.path(entrysFromService.get(i).getId()).request().delete();
}
}
//resourceTarget.request()
}
@DELETE
@Path("/comment/{user}")
public void deleteUserComments
(@PathParam
("user") String user
) {
//List<EntryPOJO> entrysOutput = new ArrayList<>();
List<EntryPOJO
> entrysFromService
;
entrysFromService = resourceTarget.
request(MediaType.
APPLICATION_JSON).
get(new GenericType
<List<EntryPOJO
>>(){});
for( int i=0; i<entrysFromService.size(); i++) {
for(int j = 0; j<entrysFromService.get(i).getCommentPOJOList().size(); j++) {
if (entrysFromService.get(i).getCommentPOJOList().get(j).getUser().equals(user)) {
//entrysFromService.remove(i);
//resourceTarget.request(MediaType.APPLICATION_JSON).delete();
resourceTarget.path(entrysFromService.get(i).getId()).path("/comment/").path(entrysFromService.get(i).getCommentPOJOList().get(j).getId()).request().delete();
}
}
}
//resourceTarget.request()
}
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}