Newer
Older
package repositories
import models.Question
import utils.MongoConnection
import com.typesafe.config.ConfigFactory
import org.bson.types.ObjectId
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
class QuestionRepository extends Repository[Question] (
ConfigFactory.load().getString("mongo.questionService.db"),
ConfigFactory.load().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)
})
}
}