async getMetadata()

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`)
        }
    }