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