From 688f04600ce64282ad7ddc8eac26e8dc60740dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Sat, 7 Sep 2024 19:58:02 +0200 Subject: [PATCH] pl-api: Fix suggestion schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- packages/pl-api/lib/entities/suggestion.ts | 21 ++++++++++++++++++--- packages/pl-api/package.json | 2 +- packages/pl-fe/package.json | 2 +- packages/pl-fe/yarn.lock | 8 ++++---- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/packages/pl-api/lib/entities/suggestion.ts b/packages/pl-api/lib/entities/suggestion.ts index 97c365112..9f568ea3e 100644 --- a/packages/pl-api/lib/entities/suggestion.ts +++ b/packages/pl-api/lib/entities/suggestion.ts @@ -8,15 +8,30 @@ const suggestionSchema = z.preprocess((suggestion: any) => { * Support `/api/v1/suggestions` * @see {@link https://docs.joinmastodon.org/methods/suggestions/#v1} */ + if (!suggestion) return null; + if (suggestion?.acct) return { source: 'staff', - sources: 'featured', + sources: ['featured'], account: suggestion, }; + + if (!suggestion.sources) { + suggestion.sources = []; + switch (suggestion.source) { + case 'staff': + suggestion.sources.push('staff'); + break; + case 'global': + suggestion.sources.push('most_interactions'); + break; + } + } + return suggestion; }, z.object({ - source: z.string(), - sources: z.array(z.string()), + source: z.string().nullable().catch(null), + sources: z.array(z.string()).catch([]), account: accountSchema, })); diff --git a/packages/pl-api/package.json b/packages/pl-api/package.json index c44d9242f..35a50e9d8 100644 --- a/packages/pl-api/package.json +++ b/packages/pl-api/package.json @@ -1,6 +1,6 @@ { "name": "pl-api", - "version": "0.0.27", + "version": "0.0.28", "type": "module", "homepage": "https://github.com/mkljczk/pl-fe/tree/fork/packages/pl-api", "repository": { diff --git a/packages/pl-fe/package.json b/packages/pl-fe/package.json index 4f4a40e38..522498912 100644 --- a/packages/pl-fe/package.json +++ b/packages/pl-fe/package.json @@ -133,7 +133,7 @@ "multiselect-react-dropdown": "^2.0.25", "object-to-formdata": "^4.5.1", "path-browserify": "^1.0.1", - "pl-api": "^0.0.27", + "pl-api": "^0.0.28", "postcss": "^8.4.29", "process": "^0.11.10", "punycode": "^2.1.1", diff --git a/packages/pl-fe/yarn.lock b/packages/pl-fe/yarn.lock index 70ca27281..988329622 100644 --- a/packages/pl-fe/yarn.lock +++ b/packages/pl-fe/yarn.lock @@ -8378,10 +8378,10 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -pl-api@^0.0.27: - version "0.0.27" - resolved "https://registry.yarnpkg.com/pl-api/-/pl-api-0.0.27.tgz#8a9d52594a0d35da9364bbf769b84233827366e1" - integrity sha512-7u/mUexOcBwCa1d4LKZzhFp2bAYqGzfxVXh/RmgMVFd5+d57Kx6Itpzk3dHBJ4aHiE7NV2llEeG/SaYr7mUzuA== +pl-api@^0.0.28: + version "0.0.28" + resolved "https://registry.yarnpkg.com/pl-api/-/pl-api-0.0.28.tgz#b8ad56706fa31c163e05f0610257953e76ddd720" + integrity sha512-j2j0yloxPgpQtyBehOR+aJ7LKKjwDrZLYMDg4ZojsjYi9qIS5PO9jRRpi9DSB4kFyrpQagyLbJKXY3DbeHS70w== dependencies: blurhash "^2.0.5" http-link-header "^1.1.3"