From e0d4e24071ddaff2acb3d27d7e33138d79175036 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 14 May 2025 10:59:08 +0200 Subject: [PATCH] [Glitch] refactor: Prevent leading slashes in API urls Port c45ce549afe17cca1ba474a67112038e5966f68e to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/api.ts | 9 +++++---- app/javascript/flavours/glitch/api/accounts.ts | 2 +- app/javascript/flavours/glitch/api/polls.ts | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/javascript/flavours/glitch/api.ts b/app/javascript/flavours/glitch/api.ts index f0663ded40..912948f7d3 100644 --- a/app/javascript/flavours/glitch/api.ts +++ b/app/javascript/flavours/glitch/api.ts @@ -62,6 +62,7 @@ export default function api(withAuthorization = true) { }); } +type ApiUrl = `v${1 | 2}/${string}`; type RequestParamsOrData = Record; export async function apiRequest( @@ -84,28 +85,28 @@ export async function apiRequest( } export async function apiRequestGet( - url: string, + url: ApiUrl, params?: RequestParamsOrData, ) { return apiRequest('GET', url, { params }); } export async function apiRequestPost( - url: string, + url: ApiUrl, data?: RequestParamsOrData, ) { return apiRequest('POST', url, { data }); } export async function apiRequestPut( - url: string, + url: ApiUrl, data?: RequestParamsOrData, ) { return apiRequest('PUT', url, { data }); } export async function apiRequestDelete( - url: string, + url: ApiUrl, params?: RequestParamsOrData, ) { return apiRequest('DELETE', url, { params }); diff --git a/app/javascript/flavours/glitch/api/accounts.ts b/app/javascript/flavours/glitch/api/accounts.ts index ee3dd2a24b..3752150448 100644 --- a/app/javascript/flavours/glitch/api/accounts.ts +++ b/app/javascript/flavours/glitch/api/accounts.ts @@ -36,6 +36,6 @@ export const apiGetEndorsedAccounts = (id: string) => apiRequestGet(`v1/accounts/${id}/endorsements`); export const apiGetFamiliarFollowers = (id: string) => - apiRequestGet('/v1/accounts/familiar_followers', { + apiRequestGet('v1/accounts/familiar_followers', { id, }); diff --git a/app/javascript/flavours/glitch/api/polls.ts b/app/javascript/flavours/glitch/api/polls.ts index e4a31d8b80..1677c29437 100644 --- a/app/javascript/flavours/glitch/api/polls.ts +++ b/app/javascript/flavours/glitch/api/polls.ts @@ -2,9 +2,9 @@ import { apiRequestGet, apiRequestPost } from 'flavours/glitch/api'; import type { ApiPollJSON } from 'flavours/glitch/api_types/polls'; export const apiGetPoll = (pollId: string) => - apiRequestGet(`/v1/polls/${pollId}`); + apiRequestGet(`v1/polls/${pollId}`); export const apiPollVote = (pollId: string, choices: string[]) => - apiRequestPost(`/v1/polls/${pollId}/votes`, { + apiRequestPost(`v1/polls/${pollId}/votes`, { choices, });