part #2
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
using Npgsql;
|
||||
using StellaOps.Evidence.Core;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace StellaOps.Evidence.Persistence.Postgres;
|
||||
|
||||
public sealed partial class PostgresEvidenceStore
|
||||
{
|
||||
private static IEvidence MapEvidence(NpgsqlDataReader reader)
|
||||
{
|
||||
var evidenceId = reader.GetString(0);
|
||||
var subjectNodeId = reader.GetString(1);
|
||||
var evidenceType = (EvidenceType)reader.GetInt16(2);
|
||||
var payload = reader.GetFieldValue<byte[]>(3);
|
||||
var payloadSchemaVer = reader.GetString(4);
|
||||
var externalCid = GetNullableString(reader, 5);
|
||||
var provenanceJson = reader.GetString(6);
|
||||
var signaturesJson = reader.GetString(7);
|
||||
|
||||
var provenance = JsonSerializer.Deserialize<EvidenceProvenance>(provenanceJson, _jsonOptions)
|
||||
?? throw new InvalidOperationException($"Failed to deserialize provenance for evidence {evidenceId}");
|
||||
|
||||
var signatures = JsonSerializer.Deserialize<List<EvidenceSignature>>(signaturesJson, _jsonOptions)
|
||||
?? [];
|
||||
|
||||
return new EvidenceRecord
|
||||
{
|
||||
EvidenceId = evidenceId,
|
||||
SubjectNodeId = subjectNodeId,
|
||||
EvidenceType = evidenceType,
|
||||
Payload = payload,
|
||||
PayloadSchemaVersion = payloadSchemaVer,
|
||||
ExternalPayloadCid = externalCid,
|
||||
Provenance = provenance,
|
||||
Signatures = signatures
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user