You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
package de.fd.fh.server.access;
|
|
|
|
import com.mongodb.MongoClient;
|
|
import com.mongodb.WriteResult;
|
|
import de.fd.fh.server.user.UserId;
|
|
import dev.morphia.Datastore;
|
|
import dev.morphia.Key;
|
|
import dev.morphia.Morphia;
|
|
|
|
public class AccessRepository
|
|
{
|
|
private final Datastore datastore;
|
|
|
|
public AccessRepository()
|
|
{
|
|
System.out.println("AccessRepo");
|
|
final Morphia morphia = new Morphia();
|
|
|
|
morphia.mapPackage("de.fd.fh.server.access");
|
|
|
|
this.datastore = morphia.createDatastore(new MongoClient(), "smartwarfare");
|
|
datastore.ensureIndexes();
|
|
}
|
|
|
|
AccessRepository(Datastore datastore)
|
|
{
|
|
this.datastore = datastore;
|
|
}
|
|
|
|
public Key<Access> save(final Access access)
|
|
{
|
|
return datastore.save(access);
|
|
}
|
|
|
|
Access findByUserName(final String name)
|
|
{
|
|
return datastore.createQuery(Access.class)
|
|
.field("name").equal(name).first();
|
|
}
|
|
|
|
Access findByToken(final String token)
|
|
{
|
|
return datastore.createQuery(Access.class)
|
|
.field("token.token").equal(token).first();
|
|
}
|
|
|
|
Access findByUserId(final UserId userId)
|
|
{
|
|
return datastore.createQuery(Access.class)
|
|
.field("userId.identifier").equal(userId.getIdentifier()).first();
|
|
}
|
|
|
|
WriteResult deleteLoginByUserId(final UserId userId)
|
|
{
|
|
return datastore.delete(datastore.createQuery(Access.class)
|
|
.field("userId.identifier").equal(userId.getIdentifier()).first());
|
|
}
|
|
}
|