Commit a52bf60c authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

initial version of working repository

parent ff73e44e
......@@ -13,6 +13,7 @@ import com.telephoners.krakyournet.ctf.commands.RegisterTeamsCommand;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.logging.LoggingFilter;
import com.telephoners.krakyournet.ctf.modules.ApplicationModule;
import com.telephoners.krakyournet.ctf.repositories.SofaRepository;
import com.telephoners.krakyournet.ctf.repositories.UsersRepository;
import io.dropwizard.Application;
import io.dropwizard.assets.AssetsBundle;
......@@ -26,6 +27,7 @@ import org.ektorp.CouchDbConnector;
import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;
import java.io.IOException;
import java.util.List;
import java.util.stream.Stream;
public class CTFApplication extends Application<ApplicationConfiguration>
......@@ -74,6 +76,17 @@ public class CTFApplication extends Application<ApplicationConfiguration>
CouchDbConnector connector = injector.getInstance(CouchDbConnector.class);
SofaRepository sofaRepository = new SofaRepository(User.class, connector);
User user1 = new User("asdf", "Asdf", "dgsdfg", false);
User user2 = new User("asdf","Asdf","dgsdfg",false);
User user3 = new User("asdf","Asdf","dgsdfg",false);
sofaRepository.add(user1);
sofaRepository.add(user2);
sofaRepository.add(user3);
List<User> all = sofaRepository.getAll();
registerAdmins(applicationConfiguration);
registerResources(environment);
registerAuthFeatures(environment);
......
package com.telephoners.krakyournet.ctf.beans;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.ektorp.support.CouchDbDocument;
import java.security.Principal;
public class User implements Principal {
//todo: use CouchDbDocument
//todo: implement principal
public class User extends CouchDbDocument implements Principal
{
private String name;
private String password;
private String email;
private boolean admin = false;
@JsonCreator
public User(@JsonProperty("name") String name,
@JsonProperty("password") String password,
@JsonProperty("email") String email) {
public User(String name, String password, String email, boolean admin)
{
this.name = name;
this.password = password;
this.email = email;
this.admin = admin;
}
public void setAdmin(boolean admin)
......@@ -30,31 +32,37 @@ public class User implements Principal {
return admin;
}
public User() {
public User()
{
}
@Override
public String getName() {
public String getName()
{
return name;
}
public void setName(String name) {
public void setName(String name)
{
this.name = name;
}
public String getPassword() {
public String getPassword()
{
return password;
}
public void setPassword(String password) {
public void setPassword(String password)
{
this.password = password;
}
public String getEmail() {
public String getEmail()
{
return email;
}
public void setEmail(String email) {
public void setEmail(String email)
{
this.email = email;
}
}
......@@ -32,6 +32,7 @@ public class ApplicationModule extends AbstractModule
//todo: hide behind interface
public CouchDbConnector provideDatastore(@Named("database.instance") CouchDbInstance databaseInstance)
{
databaseInstance.deleteDatabase("database"); //todo: temp
final StdCouchDbConnector database = new StdCouchDbConnector("database", databaseInstance); //todo: to configuration
database.createDatabaseIfNotExists();
//todo: as task while application start (configurable)
......
package com.telephoners.krakyournet.ctf.repositories;
import com.telephoners.krakyournet.ctf.beans.User;
import org.ektorp.CouchDbConnector;
import org.ektorp.support.CouchDbRepositorySupport;
//todo: move to module
//@Singleton //todo
public class SofaRepository extends CouchDbRepositorySupport<User>
{
public SofaRepository(Class<User> type, CouchDbConnector db)
{
super(type, db);
}
}
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