Return public metadata

This commit is contained in:
Kieran 2022-02-17 22:48:34 +00:00
parent 71d37fc2e6
commit e098b2c0f0
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
3 changed files with 19 additions and 8 deletions

View File

@ -5,6 +5,7 @@ namespace VoidCat.Services.Abstractions;
public interface IFileMetadataStore
{
ValueTask<SecretVoidFileMeta?> Get(Guid id);
ValueTask<VoidFileMeta?> GetPublic(Guid id);
ValueTask Set(Guid id, SecretVoidFileMeta meta);

View File

@ -21,13 +21,14 @@ public class LocalDiskFileMetadataStore : IFileMetadataStore
}
}
public async ValueTask<SecretVoidFileMeta?> Get(Guid id)
public ValueTask<VoidFileMeta?> GetPublic(Guid id)
{
var path = MapMeta(id);
if (!File.Exists(path)) return default;
var json = await File.ReadAllTextAsync(path);
return JsonConvert.DeserializeObject<SecretVoidFileMeta>(json);
return GetMeta<VoidFileMeta>(id);
}
public ValueTask<SecretVoidFileMeta?> Get(Guid id)
{
return GetMeta<SecretVoidFileMeta>(id);
}
public async ValueTask Set(Guid id, SecretVoidFileMeta meta)
@ -48,6 +49,15 @@ public class LocalDiskFileMetadataStore : IFileMetadataStore
await Set(id, patch);
}
private async ValueTask<TMeta?> GetMeta<TMeta>(Guid id)
{
var path = MapMeta(id);
if (!File.Exists(path)) return default;
var json = await File.ReadAllTextAsync(path);
return JsonConvert.DeserializeObject<TMeta>(json);
}
private string MapMeta(Guid id) =>
Path.ChangeExtension(Path.Join(_settings.DataDirectory, MetadataDir, id.ToString()), ".json");
}

View File

@ -28,10 +28,10 @@ public class LocalDiskFileStore : IFileStore
public async ValueTask<PublicVoidFile?> Get(Guid id)
{
return new()
return new ()
{
Id = id,
Metadata = await _metadataStore.Get(id)
Metadata = await _metadataStore.GetPublic(id)
};
}