exam.go 830 B

12345678910111213141516171819202122232425262728
  1. package file
  2. import (
  3. "git.andreafazzi.eu/andrea/probo/lib/models"
  4. "git.andreafazzi.eu/andrea/probo/lib/store"
  5. )
  6. type ExamFileStore = FileStore[*models.Exam, *store.Store[*models.Exam]]
  7. func NewExamFileStore(config *FileStoreConfig[*models.Exam, *store.ExamStore]) (*ExamFileStore, error) {
  8. return NewFileStore[*models.Exam](config, store.NewStore[*models.Exam]())
  9. }
  10. func NewDefaultExamFileStore() (*ExamFileStore, error) {
  11. return NewExamFileStore(
  12. &FileStoreConfig[*models.Exam, *store.ExamStore]{
  13. FilePathConfig: FilePathConfig{GetDefaultExamsDir(), "exam", ".json"},
  14. IndexDirFunc: DefaultIndexDirFunc[*models.Exam, *store.ExamStore],
  15. CreateEntityFunc: func() *models.Exam {
  16. return &models.Exam{
  17. Participant: &models.Participant{},
  18. Quizzes: make([]*models.Quiz, 0),
  19. }
  20. },
  21. },
  22. )
  23. }