Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/resolvers/resourceResolvers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@ export const resolvers = {
}
return defaultAvailability;
},
async htmlTitle(node: GQLResource, _: any, context: ContextWithLoaders): Promise<String | null> {
if (node.contentUri?.startsWith("urn:article")) {
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article ? article.title.htmlTitle : null;
}
return node.name;
},
async meta(resource: GQLResource, _: any, context: ContextWithLoaders): Promise<GQLMeta | null> {
if (resource.contentUri?.startsWith("urn:learningpath")) {
const learningpath = await context.loaders.learningpathsLoader.load(
Expand Down
31 changes: 22 additions & 9 deletions src/resolvers/taxonomyResolvers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,12 @@ export const resolvers = {
}
return undefined;
},
async availability(node: GQLTaxonomyEntity, _: any, context: ContextWithLoaders) {
if (!node.contentUri) return undefined;
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article?.availability;
async availability(node: GQLTaxonomyEntity, _: any, context: ContextWithLoaders): Promise<string | undefined> {
if (node.contentUri?.startsWith("urn:article")) {
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article?.availability;
}
return undefined;
},
async learningpath(node: GQLTaxonomyEntity, _: any, context: ContextWithLoaders): Promise<GQLLearningpath | null> {
if (node.contentUri?.startsWith("urn:learningpath")) {
Expand All @@ -111,9 +113,18 @@ export const resolvers = {
return null;
},
async meta(node: Node, _: any, context: ContextWithLoaders): Promise<GQLMeta | null> {
if (!node.contentUri?.startsWith("urn:article")) return null;
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article ? articleToMeta(article) : null;
if (node.contentUri?.startsWith("urn:article")) {
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article ? articleToMeta(article) : null;
}
return null;
},
async htmlTitle(node: Node, _: any, context: ContextWithLoaders): Promise<String | null> {
if (node.contentUri?.startsWith("urn:article")) {
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article ? article.title.htmlTitle : null;
}
return node.name;
},
async children(
node: GQLTaxonomyEntity,
Expand All @@ -128,8 +139,10 @@ export const resolvers = {
return filterMissingArticles(entities, context);
},
async subjectpage(node: GQLTaxonomyEntity, __: any, context: ContextWithLoaders): Promise<ISubjectPageData | null> {
if (!node.contentUri?.startsWith("urn:frontpage")) return null;
return context.loaders.subjectpageLoader.load(node.contentUri.replace("urn:frontpage:", ""));
if (node.contentUri?.startsWith("urn:frontpage")) {
return context.loaders.subjectpageLoader.load(node.contentUri.replace("urn:frontpage:", ""));
}
return null;
},
async grepCodes(node: GQLTaxonomyEntity, __: any, context: ContextWithLoaders): Promise<string[]> {
if (node.metadata?.grepCodes) {
Expand Down
7 changes: 7 additions & 0 deletions src/resolvers/topicResolvers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,13 @@ export const resolvers = {
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(topic.contentUri));
return article ? articleToMeta(article) : null;
},
async htmlTitle(node: Node, _: any, context: ContextWithLoaders): Promise<String | null> {
if (node.contentUri?.startsWith("urn:article")) {
const article = await context.loaders.articlesLoader.load(getArticleIdFromUrn(node.contentUri));
return article ? article.title.htmlTitle : null;
}
return node.name;
},
async coreResources(
topic: Node,
args: GQLTopicCoreResourcesArgs,
Expand Down
4 changes: 4 additions & 0 deletions src/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ export const typeDefs = gql`
contentUri: String
article: Article
availability: String
htmlTitle: String
meta: Meta
}

Expand Down Expand Up @@ -330,6 +331,7 @@ export const typeDefs = gql`
meta: Meta
article: Article
availability: String
htmlTitle: String
learningpath: Learningpath
subjectpage: SubjectPage
grepCodes: [String!]
Expand Down Expand Up @@ -358,6 +360,7 @@ export const typeDefs = gql`
learningpath: Learningpath
article: Article
availability: String
htmlTitle: String
}

type TaxonomyCrumb implements TaxBase {
Expand Down Expand Up @@ -400,6 +403,7 @@ export const typeDefs = gql`
meta: Meta
article: Article
availability: String
htmlTitle: String
isPrimary: Boolean
parentId: String
subtopics: [Topic!]
Expand Down
8 changes: 8 additions & 0 deletions src/types/schema.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1401,6 +1401,7 @@ export type GQLNode = GQLTaxBase & GQLTaxonomyEntity & GQLWithArticle & {
contextId?: Maybe<Scalars['String']>;
contexts: Array<GQLTaxonomyContext>;
grepCodes?: Maybe<Array<Scalars['String']>>;
htmlTitle?: Maybe<Scalars['String']>;
id: Scalars['String'];
language?: Maybe<Scalars['String']>;
learningpath?: Maybe<GQLLearningpath>;
Expand Down Expand Up @@ -1990,6 +1991,7 @@ export type GQLResource = GQLTaxBase & GQLTaxonomyEntity & GQLWithArticle & {
context?: Maybe<GQLTaxonomyContext>;
contextId?: Maybe<Scalars['String']>;
contexts: Array<GQLTaxonomyContext>;
htmlTitle?: Maybe<Scalars['String']>;
id: Scalars['String'];
language?: Maybe<Scalars['String']>;
learningpath?: Maybe<GQLLearningpath>;
Expand Down Expand Up @@ -2295,6 +2297,7 @@ export type GQLTopic = GQLTaxBase & GQLTaxonomyEntity & GQLWithArticle & {
contextId?: Maybe<Scalars['String']>;
contexts: Array<GQLTaxonomyContext>;
coreResources?: Maybe<Array<GQLResource>>;
htmlTitle?: Maybe<Scalars['String']>;
id: Scalars['String'];
isPrimary?: Maybe<Scalars['Boolean']>;
language?: Maybe<Scalars['String']>;
Expand Down Expand Up @@ -2424,6 +2427,7 @@ export type GQLWithArticle = {
article?: Maybe<GQLArticle>;
availability?: Maybe<Scalars['String']>;
contentUri?: Maybe<Scalars['String']>;
htmlTitle?: Maybe<Scalars['String']>;
meta?: Maybe<GQLMeta>;
};

Expand Down Expand Up @@ -3904,6 +3908,7 @@ export type GQLNodeResolvers<ContextType = any, ParentType extends GQLResolversP
contextId?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
contexts?: Resolver<Array<GQLResolversTypes['TaxonomyContext']>, ParentType, ContextType>;
grepCodes?: Resolver<Maybe<Array<GQLResolversTypes['String']>>, ParentType, ContextType>;
htmlTitle?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
id?: Resolver<GQLResolversTypes['String'], ParentType, ContextType>;
language?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
learningpath?: Resolver<Maybe<GQLResolversTypes['Learningpath']>, ParentType, ContextType>;
Expand Down Expand Up @@ -4133,6 +4138,7 @@ export type GQLResourceResolvers<ContextType = any, ParentType extends GQLResolv
context?: Resolver<Maybe<GQLResolversTypes['TaxonomyContext']>, ParentType, ContextType>;
contextId?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
contexts?: Resolver<Array<GQLResolversTypes['TaxonomyContext']>, ParentType, ContextType>;
htmlTitle?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
id?: Resolver<GQLResolversTypes['String'], ParentType, ContextType>;
language?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
learningpath?: Resolver<Maybe<GQLResolversTypes['Learningpath']>, ParentType, ContextType>;
Expand Down Expand Up @@ -4434,6 +4440,7 @@ export type GQLTopicResolvers<ContextType = any, ParentType extends GQLResolvers
contextId?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
contexts?: Resolver<Array<GQLResolversTypes['TaxonomyContext']>, ParentType, ContextType>;
coreResources?: Resolver<Maybe<Array<GQLResolversTypes['Resource']>>, ParentType, ContextType, Partial<GQLTopicCoreResourcesArgs>>;
htmlTitle?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
id?: Resolver<GQLResolversTypes['String'], ParentType, ContextType>;
isPrimary?: Resolver<Maybe<GQLResolversTypes['Boolean']>, ParentType, ContextType>;
language?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
Expand Down Expand Up @@ -4544,6 +4551,7 @@ export type GQLWithArticleResolvers<ContextType = any, ParentType extends GQLRes
article?: Resolver<Maybe<GQLResolversTypes['Article']>, ParentType, ContextType>;
availability?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
contentUri?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
htmlTitle?: Resolver<Maybe<GQLResolversTypes['String']>, ParentType, ContextType>;
meta?: Resolver<Maybe<GQLResolversTypes['Meta']>, ParentType, ContextType>;
};

Expand Down
Loading