Commit d7e0099b authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

generic repository

parent 005af2dd
...@@ -5,9 +5,8 @@ import java.util.List; ...@@ -5,9 +5,8 @@ import java.util.List;
/** /**
* Created by gpietrus on 20.02.2016. * Created by gpietrus on 20.02.2016.
*/ */
public interface Repository { public interface Repository<T> {
// void getByTaskName(UUID uuid); List<T> getAll();
List getAll(); void add(T t);
void clean();
// void add(User user); //todo: not user //todo: use generics?
} }
package com.telephoners.krakyournet.ctf.repositories; package com.telephoners.krakyournet.ctf.repositories;
import com.telephoners.krakyournet.ctf.beans.Flag;
import com.telephoners.krakyournet.ctf.beans.Solution; import com.telephoners.krakyournet.ctf.beans.Solution;
import com.telephoners.krakyournet.ctf.beans.Team; import com.telephoners.krakyournet.ctf.beans.Team;
import com.telephoners.krakyournet.ctf.beans.tasks.Task; import com.telephoners.krakyournet.ctf.beans.tasks.Task;
...@@ -16,7 +15,7 @@ import java.util.function.Predicate; ...@@ -16,7 +15,7 @@ import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Singleton @Singleton
public class SolutionsRepository implements Repository public class SolutionsRepository implements Repository<Solution>
{ {
private Datastore datastore; private Datastore datastore;
...@@ -37,6 +36,12 @@ public class SolutionsRepository implements Repository ...@@ -37,6 +36,12 @@ public class SolutionsRepository implements Repository
//todo: do not add if already exists //todo: do not add if already exists
} }
@Override
public void clean()
{
datastore.getCollection(Solution.class).drop(); //todo: move common functions to repository abstract?
}
public List<Solution> getByTeam(Team team) public List<Solution> getByTeam(Team team)
{ {
//todo: merge with upper //todo: merge with upper
......
...@@ -21,7 +21,7 @@ import java.util.Optional; ...@@ -21,7 +21,7 @@ import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Singleton @Singleton
public class TasksRepository implements Repository public class TasksRepository implements Repository<Task>
{ {
private ApplicationConfiguration applicationConfiguration; private ApplicationConfiguration applicationConfiguration;
private Datastore datastore; private Datastore datastore;
......
...@@ -11,11 +11,8 @@ import java.util.List; ...@@ -11,11 +11,8 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
/**
* Created by gpietrus on 20.02.2016.
*/
@Singleton @Singleton
public class TeamsRepository implements Repository public class TeamsRepository implements Repository<Team>
{ {
private Datastore datastore; private Datastore datastore;
......
...@@ -3,6 +3,7 @@ package com.telephoners.krakyournet.ctf.repositories; ...@@ -3,6 +3,7 @@ package com.telephoners.krakyournet.ctf.repositories;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.beans.tasks.Task;
import io.dropwizard.auth.basic.BasicCredentials; import io.dropwizard.auth.basic.BasicCredentials;
import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.binary.Hex;
import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Datastore;
...@@ -12,7 +13,7 @@ import java.security.NoSuchAlgorithmException; ...@@ -12,7 +13,7 @@ import java.security.NoSuchAlgorithmException;
import java.util.List; import java.util.List;
@Singleton @Singleton
public class UsersRepository implements Repository public class UsersRepository implements Repository<User>
{ {
private Datastore datastore; private Datastore datastore;
private MessageDigest messageDigest; private MessageDigest messageDigest;
...@@ -33,6 +34,12 @@ public class UsersRepository implements Repository ...@@ -33,6 +34,12 @@ public class UsersRepository implements Repository
datastore.save(user); datastore.save(user);
} }
@Override
public void clean()
{
datastore.getCollection(User.class).drop();
}
public User getUserByName(String username) public User getUserByName(String username)
{ {
return datastore.createQuery(User.class) return datastore.createQuery(User.class)
......
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