Skip to content
Snippets Groups Projects
QuestionRepository.scala 1004 B
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)
        })
    }
}