collection.go 897 B

123456789101112131415161718192021222324252627
  1. package file
  2. import (
  3. "git.andreafazzi.eu/andrea/probo/models"
  4. "git.andreafazzi.eu/andrea/probo/store"
  5. )
  6. type CollectionFileStore = FileStore[*models.Collection, *store.Store[*models.Collection]]
  7. func NewCollectionFileStore(config *FileStoreConfig[*models.Collection, *store.CollectionStore]) (*CollectionFileStore, error) {
  8. return NewFileStore[*models.Collection](config, store.NewStore[*models.Collection]())
  9. }
  10. func NewDefaultCollectionFileStore() (*CollectionFileStore, error) {
  11. return NewCollectionFileStore(
  12. &FileStoreConfig[*models.Collection, *store.CollectionStore]{
  13. FilePathConfig: FilePathConfig{GetDefaultCollectionsDir(), "collection", ".json"},
  14. IndexDirFunc: DefaultIndexDirFunc[*models.Collection, *store.CollectionStore],
  15. CreateEntityFunc: func() *models.Collection {
  16. return &models.Collection{
  17. Quizzes: make([]*models.Quiz, 0),
  18. }
  19. },
  20. },
  21. )
  22. }