From 4f03bec99eea9f157957c47348cceedca3c1aa10 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Mon, 11 Mar 2024 15:21:21 -0700 Subject: [PATCH 1/2] Fix decoding for FilterLink --- src/components/common/FilterLink.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/components/common/FilterLink.tsx b/src/components/common/FilterLink.tsx index 2a4747ff..ef278ed2 100644 --- a/src/components/common/FilterLink.tsx +++ b/src/components/common/FilterLink.tsx @@ -1,10 +1,9 @@ +import classNames from 'classnames'; +import { useMessages, useNavigation } from 'components/hooks'; +import { safeDecodeURIComponent } from 'next-basics'; +import Link from 'next/link'; import { ReactNode } from 'react'; import { Icon, Icons } from 'react-basics'; -import classNames from 'classnames'; -import Link from 'next/link'; -import { safeDecodeURI } from 'next-basics'; -import { useNavigation } from 'components/hooks'; -import { useMessages } from 'components/hooks'; import styles from './FilterLink.module.css'; export interface FilterLinkProps { @@ -40,7 +39,7 @@ export function FilterLink({ {!value && `(${label || formatMessage(labels.unknown)})`} {value && ( - {safeDecodeURI(label || value)} + {safeDecodeURIComponent(label || value)} )} {externalUrl && ( From 2b019796be9db9ab3e0146aa83628fe313271034 Mon Sep 17 00:00:00 2001 From: Brian Cao Date: Mon, 11 Mar 2024 15:44:48 -0700 Subject: [PATCH 2/2] Update endpoints. --- src/pages/api/teams/[teamId]/websites/index.ts | 13 +------------ src/pages/api/users/[userId]/teams.ts | 8 +------- src/pages/api/users/[userId]/websites.ts | 3 +-- 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/pages/api/teams/[teamId]/websites/index.ts b/src/pages/api/teams/[teamId]/websites/index.ts index dd2fdeff..fe244857 100644 --- a/src/pages/api/teams/[teamId]/websites/index.ts +++ b/src/pages/api/teams/[teamId]/websites/index.ts @@ -11,26 +11,15 @@ export interface TeamWebsiteRequestQuery extends SearchFilter { teamId: string; } -export interface TeamWebsiteRequestBody { - name: string; - domain: string; - shareId: string; -} - const schema = { GET: yup.object().shape({ teamId: yup.string().uuid().required(), ...pageInfo, }), - POST: yup.object().shape({ - name: yup.string().max(100).required(), - domain: yup.string().max(500).required(), - shareId: yup.string().max(50).nullable(), - }), }; export default async ( - req: NextApiRequestQueryBody, + req: NextApiRequestQueryBody, res: NextApiResponse, ) => { await useAuth(req, res); diff --git a/src/pages/api/users/[userId]/teams.ts b/src/pages/api/users/[userId]/teams.ts index 279df1e3..ad4af648 100644 --- a/src/pages/api/users/[userId]/teams.ts +++ b/src/pages/api/users/[userId]/teams.ts @@ -10,12 +10,6 @@ export interface UserTeamsRequestQuery extends SearchFilter { userId: string; } -export interface UserTeamsRequestBody { - name: string; - domain: string; - shareId: string; -} - const schema = { GET: yup.object().shape({ userId: yup.string().uuid().required(), @@ -24,7 +18,7 @@ const schema = { }; export default async ( - req: NextApiRequestQueryBody, + req: NextApiRequestQueryBody, res: NextApiResponse, ) => { await useCors(req, res); diff --git a/src/pages/api/users/[userId]/websites.ts b/src/pages/api/users/[userId]/websites.ts index 2d48c177..f443deb8 100644 --- a/src/pages/api/users/[userId]/websites.ts +++ b/src/pages/api/users/[userId]/websites.ts @@ -9,8 +9,7 @@ import * as yup from 'yup'; const schema = { GET: yup.object().shape({ userId: yup.string().uuid().required(), - includeTeams: yup.boolean(), - onlyTeams: yup.boolean(), + teamId: yup.string().uuid(), ...pageInfo, }), };