Skip to content

Instantly share code, notes, and snippets.

@vepo
Created October 18, 2019 19:31
Show Gist options
  • Save vepo/602f543852b79764da42ea6b98c6470b to your computer and use it in GitHub Desktop.
Save vepo/602f543852b79764da42ea6b98c6470b to your computer and use it in GitHub Desktop.
package io.vepo.access.user;
import static com.mongodb.client.model.Filters.and;
import static com.mongodb.client.model.Filters.eq;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.enterprise.context.Dependent;
import javax.inject.Inject;
import com.mongodb.client.MongoCollection;
@Dependent
public class UserRepository {
@Inject
private MongoCollection<User> collection;
public List<User> findAll() {
return collection.find().into(new ArrayList<>());
}
public User create(User user) {
collection.insertOne(user);
return user;
}
public Optional<User> findByUsernameAndPassword(String username, String password) {
return Optional
.ofNullable(this.collection.find(and(eq("username", username), eq("password", password))).first());
}
public Optional<User> findByUsername(String username) {
return Optional.ofNullable(this.collection.find(eq("username", username)).first());
}
public Optional<User> delete(String username) {
return Optional.ofNullable(this.collection.findOneAndDelete(eq("username", username)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment