Skip to content

Commit ff02a2b

Browse files
feat(blog): angular in depth category bff (#308)
Co-authored-by: mateuszbasinski <[email protected]>
1 parent d15b444 commit ff02a2b

File tree

7 files changed

+11
-7
lines changed

7 files changed

+11
-7
lines changed

libs/blog-bff/articles/api/src/lib/api.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ app.get('/', async (c) => {
2929
queryParams.category && (query.category_slug = queryParams.category);
3030
queryParams.excludeRecent &&
3131
(query.exclude_recent = queryParams.excludeRecent);
32+
queryParams.excludeCategory &&
33+
(query.exclude_category = queryParams.excludeCategory);
3234

3335
const result = await client.getPosts(query);
3436

@@ -43,7 +45,6 @@ app.get('/:slug', async (c) => {
4345
const client = new WpPosts(c.var.createWPClient({ namespace: 'al/v1' }));
4446

4547
const result = await client.getBySlug(slug);
46-
4748
return c.json(toArticle(result.data));
4849
});
4950

libs/blog-bff/articles/api/src/lib/dtos.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export interface WPPostDto {
1515
};
1616
acf: {
1717
reading_time: string | number;
18-
difficulty: string;
18+
difficulty: 'beginner' | 'intermediate' | 'advanced';
1919
};
2020
}
2121

libs/blog-bff/articles/api/src/lib/mappers.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ export const toArticlePreviewList = (dtos: WPPostDto[]): ArticlePreview[] => {
4343

4444
export const toArticle = (dto?: WPPostDetailsDto): Article => {
4545
const title = cheerio.load(dto.title.rendered || '');
46+
4647
const content = sanitizeHtml(dto?.content.rendered || '', {
47-
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),
48+
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img', 'iframe']),
4849
allowedAttributes: {
4950
img: [
5051
'src',
@@ -58,6 +59,7 @@ export const toArticle = (dto?: WPPostDetailsDto): Article => {
5859
'sizes',
5960
],
6061
a: ['href'],
62+
iframe: ['src'],
6163
},
6264
allowedClasses: {
6365
pre: ['lang:*'],

libs/blog-bff/authors/api/src/lib/api.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ app.get('/', async (c) => {
2626
queryParams['sortedTitles'] &&
2727
(query['sorted_titles'] = queryParams['sortedTitles']);
2828

29+
queryParams['acfFormat'] && (query['acf_format'] = queryParams['acfFormat']);
30+
2931
const result = await client.getAuthors(query);
3032

3133
return c.json(<ArrayResponse<Author>>{

libs/blog-bff/authors/api/src/lib/dtos.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export interface WPAuthorDto {
55
description: string;
66
acf: {
77
al_position: string;
8+
acf_avatar: string;
89
al_github_nickname: string;
910
al_twitter_handle: string;
1011
al_linkedin_id: string;

libs/blog-bff/authors/api/src/lib/mappers.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ export const toAuthor = (dto: WPAuthorDto): Author => {
1010
pl: dto.acf.user_description_pl,
1111
en: dto.acf.user_description_en,
1212
},
13-
avatarUrl:
14-
Object.entries(dto.avatar_urls).find(([, url]) =>
15-
url.includes('96'),
16-
)?.[1] || Object.values(dto.avatar_urls)[0],
13+
avatarUrl: dto.acf.acf_avatar,
1714
position: dto.acf.al_position,
1815
github: dto.acf.al_github_nickname || null,
1916
twitter: dto.acf.al_twitter_handle || null,

libs/blog-bff/authors/api/src/lib/wp-authors.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export class WpAuthors {
1818
return this._wpClient.get<WPAuthorDto[]>('users', {
1919
slug: slug,
2020
_fields: 'id,type,slug,name,description,avatar_urls,acf',
21+
acf_format: 'standard',
2122
});
2223
}
2324
}

0 commit comments

Comments
 (0)