Commit 95ef0754 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

make getUserFlags return response

parent 3b9ff69e
...@@ -12,15 +12,11 @@ import javax.validation.Valid; ...@@ -12,15 +12,11 @@ import javax.validation.Valid;
import javax.ws.rs.*; import javax.ws.rs.*;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.util.Collection;
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.stream.Collectors; import java.util.stream.Collectors;
/**
* Created by gpietrus on 16.02.16.
*/
@Singleton @Singleton
@Path(value = "/tasks") @Path(value = "/tasks")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
...@@ -29,29 +25,33 @@ public class TasksResource ...@@ -29,29 +25,33 @@ public class TasksResource
private TasksRepository tasksRepository; private TasksRepository tasksRepository;
@Inject @Inject
public TasksResource(TasksRepository tasksRepository) { public TasksResource(TasksRepository tasksRepository)
{
this.tasksRepository = tasksRepository; this.tasksRepository = tasksRepository;
} }
@GET @GET
public List<Task> getTasksPublic() { public List<Task> getTasksPublic()
{
return tasksRepository.getAllPublic(); return tasksRepository.getAllPublic();
} }
//todo: make it admin endpoint, any username as parameter //todo: make it admin endpoint, any username as parameter
//todo: admin authorization //todo: admin authorization
@GET @GET
@Path("my") //todo: username as argument @Path("/{username}") //todo: username as argument
public Collection<String> getUserFlags(@Auth User user) { public Response getUserFlags(@Auth User user, final @PathParam("username") String username)
if(user.isAdmin()) { {
return null; if (user.isAdmin()) {
} Map<List<String>, Integer> userFlagsHashes = tasksRepository.getUserFlagsHashes(username);
/*Map<List<String>, Integer> userFlagsHashes = tasksRepository.getUserFlagsHashes(user.getName()); List<String> flags = userFlagsHashes.entrySet()
return userFlagsHashes.entrySet()
.stream() .stream()
.flatMap(listIntegerEntry -> listIntegerEntry.getKey().stream()) .flatMap(listIntegerEntry -> listIntegerEntry.getKey().stream())
.collect(Collectors.toList());*/ .collect(Collectors.toList());
return null; return Response.ok().entity(flags).build();
}
return Response.status(Response.Status.UNAUTHORIZED).build();
} }
//todo: merge with upper //todo: merge with upper
...@@ -60,10 +60,11 @@ public class TasksResource ...@@ -60,10 +60,11 @@ public class TasksResource
//todo: authorization //todo: authorization
@Path("/flags/user_task_flag") @Path("/flags/user_task_flag")
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
public Response getUserTaskFlag(@Valid final TaskUserPair taskUserPair) { public Response getUserTaskFlag(@Valid final TaskUserPair taskUserPair)
{
Optional<List<String>> userTaskFlags = tasksRepository.getUserTaskFlags(taskUserPair.getUsername(), taskUserPair.getTaskLevel());//todo Optional<List<String>> userTaskFlags = tasksRepository.getUserTaskFlags(taskUserPair.getUsername(), taskUserPair.getTaskLevel());//todo
if(userTaskFlags.isPresent()) { if (userTaskFlags.isPresent()) {
return Response.ok().entity(userTaskFlags.get()).build(); return Response.ok().entity(userTaskFlags.get()).build();
} }
return Response.status(Response.Status.BAD_REQUEST).build(); return Response.status(Response.Status.BAD_REQUEST).build();
...@@ -79,8 +80,9 @@ public class TasksResource ...@@ -79,8 +80,9 @@ public class TasksResource
//todo: move to solutions resource //todo: move to solutions resource
@POST @POST
public Response submitSolution(@Auth User user, public Response submitSolution(@Auth User user,
String flag) throws Exception { String flag) throws Exception
if(tasksRepository.checkFlag(user.getName(), flag)) { {
if (tasksRepository.checkFlag(user.getName(), flag)) {
return Response.ok().build(); return Response.ok().build();
} }
return Response.status(Response.Status.NOT_ACCEPTABLE).build(); return Response.status(Response.Status.NOT_ACCEPTABLE).build();
......
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