From 3b63786ae09c43d486126c0d52bbfec34eb74e4f Mon Sep 17 00:00:00 2001 From: Ruben Verborgh Date: Tue, 5 Jan 2021 22:47:23 +0100 Subject: [PATCH] feat: Allow querying metadata. --- src/ldp/representation/RepresentationMetadata.ts | 11 ++++++++--- .../ldp/representation/RepresentationMetadata.test.ts | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ldp/representation/RepresentationMetadata.ts b/src/ldp/representation/RepresentationMetadata.ts index 890663116..249aad9a6 100644 --- a/src/ldp/representation/RepresentationMetadata.ts +++ b/src/ldp/representation/RepresentationMetadata.ts @@ -86,10 +86,15 @@ export class RepresentationMetadata { } /** - * @returns All metadata quads. + * @returns All matching metadata quads. */ - public quads(): Quad[] { - return this.store.getQuads(null, null, null, null); + public quads( + subject: Term | null = null, + predicate: Term | null = null, + object: Term | null = null, + graph: Term | null = null, + ): Quad[] { + return this.store.getQuads(subject, predicate, object, graph); } /** diff --git a/test/unit/ldp/representation/RepresentationMetadata.test.ts b/test/unit/ldp/representation/RepresentationMetadata.test.ts index 9d87e35e8..a20d82d12 100644 --- a/test/unit/ldp/representation/RepresentationMetadata.test.ts +++ b/test/unit/ldp/representation/RepresentationMetadata.test.ts @@ -75,6 +75,11 @@ describe('A RepresentationMetadata', (): void => { expect(metadata.quads()).toBeRdfIsomorphic(inputQuads); }); + it('can query quads.', async(): Promise => { + expect(metadata.quads(null, namedNode('has'), null)).toHaveLength(3); + expect(metadata.quads(null, null, literal('otherData'))).toHaveLength(2); + }); + it('can change the stored identifier.', async(): Promise => { const newIdentifier = namedNode('newNode'); metadata.identifier = newIdentifier;