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

group solutions

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