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

make getUserFlags return response

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