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> {
//todo: use reflections to register tasks?
jersey.register(new CryptoTaskResource());
//todo: move
jersey.register(new CryptoTaskResource(tasksRepository));
jersey.register(new WebTaskResource());
}
......
......@@ -14,7 +14,6 @@ import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
/**
......@@ -40,8 +39,16 @@ public class TasksRepository implements Repository {
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() {
......
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.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
......@@ -13,10 +21,25 @@ import javax.ws.rs.core.Response;
@Produces(MediaType.APPLICATION_JSON)
public class CryptoTaskResource extends TaskResource {
@Override
@Path("crypto")
private TasksRepository tasksRepository;
@Inject
public CryptoTaskResource(TasksRepository tasksRepository) {
this.tasksRepository = tasksRepository;
}
//todo: merge crypto and web task?
// @Override
@Path("crypto/{task_level}")
@GET
public Response getTask() {
return Response.ok().entity("crypto task").build();
//todo: auth
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;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
/**
* Created by gpietrus on 23.02.2016.
*/
@Path(value = "/task")
public abstract class TaskResource {
public abstract Response getTask(); //todo: auth
//todo
// 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