forked from Kieran/void.cat
Return public metadata
This commit is contained in:
parent
71d37fc2e6
commit
e098b2c0f0
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -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)
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user