Files
mp-qvyun/backend/modules/commands/store/store_medias.go
2024-12-15 01:19:03 +08:00

47 lines
931 B
Go

package store
import (
"context"
"fmt"
"path/filepath"
"backend/modules/medias"
"backend/pkg/media_store"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
)
// @provider
type StoreMedias struct {
mediasSvc *medias.Service
log *log.Entry `inject:"false"`
}
// Prepare
func (d *StoreMedias) Prepare() error {
d.log = log.WithField("module", "StoreMedias")
return nil
}
func (d *StoreMedias) RunE(targetPath string) error {
d.log.Infof("Store medias from: %s ", targetPath)
tenantId := int64(1)
targetPath = filepath.Join(targetPath, fmt.Sprintf("%d", tenantId))
store, err := media_store.NewStore(targetPath)
if err != nil {
return errors.Wrapf(err, "store: %s", targetPath)
}
for _, item := range store {
err := d.mediasSvc.Upsert(context.Background(), tenantId, item)
if err != nil {
d.log.WithError(err).Errorf("upsert media: %s - %s", item.Hash, item.Name)
}
}
return nil
}