Commit b4975b29 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

refactor and cleanup

parent 8549b9fc
...@@ -6,7 +6,7 @@ import java.util.List; ...@@ -6,7 +6,7 @@ import java.util.List;
* Created by gpietrus on 20.02.2016. * Created by gpietrus on 20.02.2016.
*/ */
public interface Repository { public interface Repository {
// void get(UUID uuid); // void getByTaskName(UUID uuid);
List getAll(); List getAll();
void initialize(); void initialize();
......
...@@ -43,20 +43,30 @@ public class TasksRepository implements Repository ...@@ -43,20 +43,30 @@ public class TasksRepository implements Repository
initialize(); initialize();
} }
public Task get(String taskName) public Task getByName(String taskName)
{ {
return datastore.createQuery(Task.class) return datastore.createQuery(Task.class)
.filter("name", taskName) .filter("name", taskName)
.get(); .get();
} }
public Task get(int level) public Task getByLevel(int level)
{ {
return datastore.createQuery(Task.class) return datastore.createQuery(Task.class)
.filter("level", level) .filter("level", level)
.get(); .get();
} }
private Optional<Task> getByUserFlag(String username, String flagValue)
{
return getUserFlagsHashes(username).entrySet()
.stream()
.filter(flagsMapEntry -> flagsMapEntry.getKey().contains(flagValue))
.map(Map.Entry::getValue)
.map(this::getByLevel)
.findFirst();
}
public List<Task> getAllPublic() public List<Task> getAllPublic()
{ {
return datastore.createQuery(Task.class) return datastore.createQuery(Task.class)
...@@ -140,20 +150,9 @@ public class TasksRepository implements Repository ...@@ -140,20 +150,9 @@ public class TasksRepository implements Repository
return encodedHash; return encodedHash;
} }
private Optional<Task> findTaskByUserFlag(String username, String flagValue)
{
return getUserFlagsHashes(username).entrySet()
.stream()
.filter(flagsMapEntry -> flagsMapEntry.getKey().contains(flagValue))
.map(Map.Entry::getValue)
.map(this::get)
.findFirst();
}
public boolean checkFlag(String username, String flagValue) public boolean checkFlag(String username, String flagValue)
{ {
Optional<Task> task = findTaskByUserFlag(username, flagValue); Optional<Task> task = getByUserFlag(username, flagValue);
Optional<Team> team = teamsRepository.getTeamByUserName(username); Optional<Team> team = teamsRepository.getTeamByUserName(username);
if (task.isPresent() && team.isPresent()) { if (task.isPresent() && team.isPresent()) {
solutionsRepository.add(new Solution(team.get(), task.get())); solutionsRepository.add(new Solution(team.get(), task.get()));
......
...@@ -42,7 +42,7 @@ public class TaskResource ...@@ -42,7 +42,7 @@ public class TaskResource
public Response getTask(@Auth User user, public Response getTask(@Auth User user,
final @PathParam("task_level") int taskLevel) throws IOException final @PathParam("task_level") int taskLevel) throws IOException
{ {
Task task = tasksRepository.get(taskLevel); Task task = tasksRepository.getByLevel(taskLevel);
if (task == null) { if (task == null) {
return Response.status(Response.Status.BAD_REQUEST).build(); return Response.status(Response.Status.BAD_REQUEST).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