From 7ffe30dcdb5b76ba61b7533eccb403cd92dfbf6e Mon Sep 17 00:00:00 2001
From: Laura Hausmann <laura@hausmann.dev>
Date: Fri, 7 Jul 2023 23:42:19 +0200
Subject: [PATCH] [mastodon-client] fix search type param

---
 .../server/api/mastodon/endpoints/search.ts   | 34 +++++++++++--------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/packages/backend/src/server/api/mastodon/endpoints/search.ts b/packages/backend/src/server/api/mastodon/endpoints/search.ts
index df35b91167..c2f828ad74 100644
--- a/packages/backend/src/server/api/mastodon/endpoints/search.ts
+++ b/packages/backend/src/server/api/mastodon/endpoints/search.ts
@@ -30,21 +30,25 @@ export function apiSearchMastodon(router: Router): void {
 		try {
 			const query: any = convertTimelinesArgsId(limitToInt(ctx.query));
 			const type = query.type;
-			if (type) {
-				const data = await client.search(query.q, type, query);
-				ctx.body = data.data.accounts.map((account) => convertAccount(account));
-			} else {
-				const acct = await client.search(query.q, "accounts", query);
-				const stat = await client.search(query.q, "statuses", query);
-				const tags = await client.search(query.q, "hashtags", query);
-				ctx.body = {
-					accounts: acct.data.accounts.map((account) =>
-						convertAccount(account),
-					),
-					statuses: stat.data.statuses.map((status) => convertStatus(status)),
-					hashtags: tags.data.hashtags,
-				};
-			}
+			const acct =
+				!type || type === "accounts"
+					? await client.search(query.q, "accounts", query)
+					: null;
+			const stat =
+				!type || type === "statuses"
+					? await client.search(query.q, "statuses", query)
+					: null;
+			const tags =
+				!type || type === "hashtags"
+					? await client.search(query.q, "hashtags", query)
+					: null;
+			ctx.body = {
+				accounts:
+					acct?.data?.accounts.map((account) => convertAccount(account)) ?? [],
+				statuses:
+					stat?.data?.statuses.map((status) => convertStatus(status)) ?? [],
+				hashtags: tags?.data?.hashtags ?? [],
+			};
 		} catch (e: any) {
 			console.error(e);
 			ctx.status = 401;