Commit 8fc4f6f4 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

group solutions

parent 8d174e5d
...@@ -41,6 +41,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -41,6 +41,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
private UsersRepository usersRepository; //todo: refactor to injects private UsersRepository usersRepository; //todo: refactor to injects
private TasksRepository tasksRepository; //todo: refactor to injects private TasksRepository tasksRepository; //todo: refactor to injects
private TeamsRepository teamsRepository; private TeamsRepository teamsRepository;
private SolutionsRepository solutionsRepository;
private Injector injector; private Injector injector;
@Override @Override
...@@ -68,7 +69,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -68,7 +69,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
}); });
} }
private void intializeTasks() { private void initializeTasks() {
int numberOfNewTasks = 20; int numberOfNewTasks = 20;
tasksRepository.clean(); tasksRepository.clean();
for (int i = 0; i < numberOfNewTasks; i++) { for (int i = 0; i < numberOfNewTasks; i++) {
...@@ -80,6 +81,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -80,6 +81,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
} }
} }
private void initializeSolutions() {
solutionsRepository.clean();
}
private void registerResources(Environment environment) { private void registerResources(Environment environment) {
environment.jersey().register(injector.getInstance(TeamsResource.class)); environment.jersey().register(injector.getInstance(TeamsResource.class));
environment.jersey().register(injector.getInstance(TasksResource.class)); environment.jersey().register(injector.getInstance(TasksResource.class));
...@@ -105,7 +110,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -105,7 +110,8 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
injector = createInjector(applicationConfiguration, datastore); injector = createInjector(applicationConfiguration, datastore);
initializeTeams(applicationConfiguration); initializeTeams(applicationConfiguration);
intializeTasks(); initializeTasks();
initializeSolutions();
registerResources(environment); registerResources(environment);
registerAuthFeatures(environment); registerAuthFeatures(environment);
} }
...@@ -122,7 +128,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -122,7 +128,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override @Override
public com.google.common.base.Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException { public com.google.common.base.Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException {
User user = usersRepository.authenticateUser(credentials); User user = usersRepository.authenticateUser(credentials);
return Optional.of(user); if(user != null) {
return Optional.of(user);
}
return Optional.absent();
} }
} }
...@@ -143,7 +152,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -143,7 +152,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
//todo: refactor? //todo: refactor?
teamsRepository = new TeamsRepository(datastore); teamsRepository = new TeamsRepository(datastore);
usersRepository = new UsersRepository(datastore, teamsRepository); usersRepository = new UsersRepository(datastore, teamsRepository);
SolutionsRepository solutionsRepository = new SolutionsRepository(datastore); solutionsRepository = new SolutionsRepository(datastore);
tasksRepository = new TasksRepository(applicationConfiguration, datastore, teamsRepository, solutionsRepository, tasksRepository = new TasksRepository(applicationConfiguration, datastore, teamsRepository, solutionsRepository,
usersRepository); usersRepository);
......
...@@ -9,6 +9,9 @@ import javax.ws.rs.Path; ...@@ -9,6 +9,9 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* Created by gpietrus on 16.02.16. * Created by gpietrus on 16.02.16.
...@@ -26,11 +29,8 @@ public class SolutionsResource { ...@@ -26,11 +29,8 @@ public class SolutionsResource {
@GET @GET
@Path("/all") @Path("/all")
//todo: refactor mapping public Map<String, List<String>> getTeamsSolutions() {
public List<Solution> getTeamsSolutions() { return solutionsRepository.getAll()
return solutionsRepository.getAll();
//todo: general refactor
/*return solutionsRepository.getAll()
.stream() .stream()
.collect(Collectors.groupingBy(new Function<Solution, String>() { .collect(Collectors.groupingBy(new Function<Solution, String>() {
@Override @Override
...@@ -43,9 +43,10 @@ public class SolutionsResource { ...@@ -43,9 +43,10 @@ public class SolutionsResource {
.collect(Collectors.toMap( .collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getKey,
entry -> entry.getValue().stream() entry -> entry.getValue().stream()
.map(Solution::getTeam) .map(solution -> solution.getTeam().getName())
.collect(Collectors.toList()) .collect(Collectors.toList())
));*/ ));
} }
} }
...@@ -27,6 +27,7 @@ public class SolutionsRepository implements Repository { ...@@ -27,6 +27,7 @@ public class SolutionsRepository implements Repository {
public void add(Solution solution) { //todo public void add(Solution solution) { //todo
datastore.save(solution); //todo: error handling? datastore.save(solution); //todo: error handling?
//todo: do not add if already exists
} }
public void clean() { public void clean() {
......
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