void.cat/VoidCat/Services/Migrations/PopulateMetadataId.cs

31 lines
857 B
C#
Raw Normal View History

2022-06-08 16:17:53 +00:00
using VoidCat.Model;
using VoidCat.Services.Abstractions;
namespace VoidCat.Services.Migrations;
public class PopulateMetadataId : IMigration
{
private readonly IFileMetadataStore _metadataStore;
public PopulateMetadataId(IFileMetadataStore metadataStore)
{
_metadataStore = metadataStore;
}
public async ValueTask<IMigration.MigrationResult> Migrate(string[] args)
{
if (!args.Contains("--add-metadata-id"))
{
return IMigration.MigrationResult.Skipped;
}
var files = await _metadataStore.ListFiles<SecretVoidFileMeta>(new(0, Int32.MaxValue));
await foreach (var file in files.Results)
{
// read-write file metadata
await _metadataStore.Set(file.Id, file);
}
return IMigration.MigrationResult.ExitCompleted;
}
}