in src/QLDBKVS.ts [485:519]
async getMetadata(key: string): Promise<LedgerMetadata> {
const fcnName = "[QLDBKVS.getMetadata]";
const self: QLDBKVS = this;
const ledgerName: string = self.ledgerName;
const tableName: string = self.tableName;
const paramId: string = key;
const startTime: number = new Date().getTime();
try {
if (!paramId) {
throw new Error(`${fcnName}: Please specify a key`);
}
logger.debug(`${fcnName} Getting metadata for ${paramId} from ledger ${ledgerName} and table ${tableName} into a JSON object`);
const result: LedgerMetadata = await this.qldbDriver.executeLambda(async (txn: TransactionExecutor) => {
return await getDocumentLedgerMetadata(txn, this.ledgerName, tableName, KEY_ATTRIBUTE_NAME, paramId, qldbClient).catch((err) => {
throw err
});
})
if (!result) {
throw `Requested document does not exist`;
}
return result;
} catch (err) {
const msg = `Could not get metadata`;
logger.error(`${fcnName} ${msg}: ${err}`);
throw new Error(msg);
} finally {
const endTime: number = new Date().getTime();
logger.debug(`${fcnName} Execution time: ${endTime - startTime}ms`)
}
}