Commit 11559d80 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

implement getTask endpoint

parent 4bca9ffb
...@@ -97,7 +97,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -97,7 +97,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
//todo: use reflections to register tasks? //todo: use reflections to register tasks?
jersey.register(new CryptoTaskResource()); //todo: move
jersey.register(new CryptoTaskResource(tasksRepository));
jersey.register(new WebTaskResource()); jersey.register(new WebTaskResource());
} }
......
...@@ -14,7 +14,6 @@ import java.security.NoSuchAlgorithmException; ...@@ -14,7 +14,6 @@ import java.security.NoSuchAlgorithmException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -40,8 +39,16 @@ public class TasksRepository implements Repository { ...@@ -40,8 +39,16 @@ public class TasksRepository implements Repository {
this.usersRepository = usersRepository; this.usersRepository = usersRepository;
} }
public void get(UUID uuid) { public Task get(String taskName) { //todo: task name?
return datastore.createQuery(Task.class)
.filter("name", taskName)
.get();
}
public Task get(int level) {
return datastore.createQuery(Task.class)
.filter("level", level)
.get();
} }
public List<Task> getAll() { public List<Task> getAll() {
......
package resources.tasks; package resources.tasks;
import core.TaskType;
import io.dropwizard.auth.Auth;
import objects.Task;
import objects.User;
import repositories.TasksRepository;
import javax.inject.Inject;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
...@@ -13,10 +21,25 @@ import javax.ws.rs.core.Response; ...@@ -13,10 +21,25 @@ import javax.ws.rs.core.Response;
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public class CryptoTaskResource extends TaskResource { public class CryptoTaskResource extends TaskResource {
@Override private TasksRepository tasksRepository;
@Path("crypto")
@Inject
public CryptoTaskResource(TasksRepository tasksRepository) {
this.tasksRepository = tasksRepository;
}
//todo: merge crypto and web task?
// @Override
@Path("crypto/{task_level}")
@GET @GET
public Response getTask() { //todo: auth
return Response.ok().entity("crypto task").build(); public Response getTask(@Auth User user,
final @PathParam("task_level") int taskLevel) {
Task task = tasksRepository.get(taskLevel);//todo
if(task != null && task.getTaskType().equals(TaskType.CRYPTO)) {
return Response.ok().entity(task.getTaskType().getType()).build();
}
return Response.status(Response.Status.BAD_REQUEST).build();
} }
} }
package resources.tasks; package resources.tasks;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
/** /**
* Created by gpietrus on 23.02.2016. * Created by gpietrus on 23.02.2016.
*/ */
@Path(value = "/task") @Path(value = "/task")
public abstract class TaskResource { public abstract class TaskResource {
//todo
public abstract Response getTask(); //todo: auth // public abstract Response getTask(); //todo: auth
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment