package com.jivesoftware.os.amzabot.deployable.endpoint;
import com.jivesoftware.os.amzabot.deployable.bot.AmzaBotRandomOpService;
import io.swagger.annotations.Api;
import javax.inject.Singleton;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Api(value = "Amza Bot Random Op")
@Singleton
@Path("/api/amzabot/v1")
public class AmzaBotRandomOpEndpoints {
private final AmzaBotRandomOpService service;
public AmzaBotRandomOpEndpoints(@Context AmzaBotRandomOpService service) {
this.service = service;
}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/validKeys")
public Response getValidKeys() {
StringBuilder sb = new StringBuilder();
service.getKeyMap().forEach((key, value) -> {
sb.append(key);
sb.append(":");
sb.append(value);
sb.append("\n");
});
return Response.ok(sb.toString(), MediaType.TEXT_PLAIN).build();
}
@POST
@Path("/resetValidKeys")
public Response resetKeys() {
service.clearKeyMap();
return Response.accepted().build();
}
@GET
@Path("/invalidKeys")
@Produces(MediaType.TEXT_PLAIN)
public Response getInvalidKeys() {
StringBuilder sb = new StringBuilder();
service.getQuarantinedKeyMap().forEach((key, entry) -> {
sb.append(key);
sb.append(":");
sb.append(entry.getKey());
sb.append(":");
sb.append(entry.getValue());
sb.append("\n");
});
return Response.ok(sb.toString(), MediaType.TEXT_PLAIN).build();
}
@POST
@Path("/resetInvalidKeys")
public Response resetErrors() {
service.clearQuarantinedKeyMap();
return Response.accepted().build();
}
}