@bsv/wallet-toolbox-client
Version:
Client only Wallet Storage
68 lines • 2.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listCertificates = listCertificates;
async function listCertificates(storage, auth, vargs, originator) {
const paged = { limit: vargs.limit, offset: vargs.offset };
const partial = {
userId: auth.userId,
isDeleted: false
};
if (vargs.partial) {
const vp = vargs.partial;
if (vp.type)
partial['type'] = vp.type;
if (vp.subject)
partial['subject'] = vp.subject;
if (vp.serialNumber)
partial['serialNumber'] = vp.serialNumber;
if (vp.certifier)
partial['certifier'] = vp.certifier;
if (vp.revocationOutpoint)
partial['revocationOutpoint'] = vp.revocationOutpoint;
if (vp.signature)
partial['signature'] = vp.signature;
}
const r = await storage.transaction(async (trx) => {
const findCertsArgs = {
partial,
certifiers: vargs.certifiers,
types: vargs.types,
paged,
trx
};
const certs = await storage.findCertificates(findCertsArgs);
const certsWithFields = await Promise.all(certs.map(async (cert) => {
const fields = await storage.findCertificateFields({
partial: { certificateId: cert.certificateId, userId: auth.userId },
trx
});
return {
...cert,
fields: Object.fromEntries(fields.map(f => [f.fieldName, f.fieldValue])),
masterKeyring: Object.fromEntries(fields.map(f => [f.fieldName, f.masterKey]))
};
}));
const r = {
totalCertificates: 0,
certificates: certsWithFields.map(cwf => ({
type: cwf.type,
subject: cwf.subject,
serialNumber: cwf.serialNumber,
certifier: cwf.certifier,
revocationOutpoint: cwf.revocationOutpoint,
signature: cwf.signature,
fields: cwf.fields,
verifier: cwf.verifier,
keyring: cwf.masterKeyring
}))
};
if (r.certificates.length < paged.limit)
r.totalCertificates = r.certificates.length;
else {
r.totalCertificates = await storage.countCertificates(findCertsArgs);
}
return r;
});
return r;
}
//# sourceMappingURL=listCertificates.js.map