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.
|
|
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()); } }
|