I have 4 functions, createUser
, updateUser
, deleteUser
, listUser
.
These 4 functions are all reactive.
How do I execute them by this sequence?
createUser->listUser(list created user)->updateUser->listUser(list updated user)>deleteUser->listUser
My createUser:
def createSomeUser() {
var users = List[BSONDocument]()
val user1 = BSONDocument(
"firstName" -> "Kobe",
"lastName" -> "Bryant",
"Number" -> "8"
)
users = user1 :: users
val enumerator = Enumerator.enumerate(users)
val future = collection.bulkInsert(enumerator)
future.onComplete {
case Failure(e) => throw e
case Success(lastError) => {
println("All users were inserted to DB")
}
}
}
My updateUser:
def updateAUser(firstName: String, number: Int) {
val selector = BSONDocument("firstName" -> firstName)
val modifier = BSONDocument(
"$set" -> BSONDocument(
"Number" -> number))
val futureUpdate = collection.update(selector, modifier)
//get a future update
futureUpdate.onComplete {
case Failure(e) => throw e
case Success(lastError) => {
println("successfully Update user")
}
}
}
My deleteUser:
def deleteAUser(firstName: String) {
val selector = BSONDocument(
"firstName" -> firstName)
val futureRemove = collection.remove(selector)
futureRemove.onComplete {
case Failure(e) => throw e
case Success(lasterror) => {
println("successfully removed users")
}
}
}
My listUser:
def listDocs() = {
// Select all documents
val query = BSONDocument()
// select all fields
val filter = BSONDocument(
"lastName" -> 1,
"firstName" -> 1,
"Number" -> 1,
"_id" -> 1)
val fList = collection.
find(query, filter).
cursor[BSONDocument].
collect[List]()
fList.map { list =>
list.foreach { doc =>
println("found User: " + BSONDocument.pretty(doc))
}
}
}