Newer
Older
package repositories
import models.Question
import utils.MongoConnection
import org.bson.types.ObjectId
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
class QuestionRepository extends Repository[Question] (
ConfigHelper.getString("mongo.questionService.db"),
ConfigHelper.getString("mongo.questions.collection")
) {
/**
* Inserts a Question record into the database.
*
* @return A Future containing the inserted Question object with the generated ID.
*/
def insertQuestion(question: Question): Future[Question] = {
val result: Future[String] = MongoConnection.insertOne[Question](collection, question)
// Return a Question entity with the generated ID
result.flatMap[Question](id => {
val updatedQuestion: Question = question.copy(id = Some(new ObjectId(id)))
Future.successful(updatedQuestion)
})
}
}
object QuestionRepository {
def seedDatabase(): Unit = {
println("Seeding Question Database...")
try {
Question.createQuestionAsync("Who is there?")
Question.createQuestionAsync("How is that there?")
Question.createQuestionAsync("Where is there?")
println("Successfully seeded Question Database!")
} catch {
case ex: Throwable => {
println("Error seeding Question Database...")
println(ex)
}
}
}
}