diff --git a/media/media.go b/media/media.go index 2d044f0..8f22e8f 100644 --- a/media/media.go +++ b/media/media.go @@ -1,6 +1,7 @@ package media import ( + "context" "errors" "git.agecem.com/agecem/agecem-org/config" @@ -49,6 +50,29 @@ type MediaClient struct { MinioClient minio.Client } -func (m *MediaClient) foo() string { - return "bar" +func (m *MediaClient) Seed() ([]string, error) { + var cfg config.Config + if err := viper.Unmarshal(&cfg); err != nil { + return nil, err + } + + var new_buckets []string + + for _, bucket := range cfg.Server.Documents.Buckets { + exists, err := m.MinioClient.BucketExists(context.Background(), bucket) + if err != nil { + return new_buckets, err + } + + if exists { + continue + } + + if err = m.MinioClient.MakeBucket(context.Background(), bucket, minio.MakeBucketOptions{}); err != nil { + return new_buckets, err + } + new_buckets = append(new_buckets, bucket) + } + + return new_buckets, nil }