Add query types.

This commit is contained in:
Brian Cao 2023-08-10 22:50:41 -07:00
parent dcf8b2edaa
commit cbe1a21e67
5 changed files with 31 additions and 10 deletions

View File

@ -42,7 +42,7 @@ export function SettingsTable({
delay={1000}
value={filter}
placeholder="Search"
style={{ maxWidth: '300px', 'margin-bottom': '10px' }}
style={{ maxWidth: '300px', marginBottom: '10px' }}
/>
)}
{value.length === 0 && filterValue && (

View File

@ -1,10 +1,15 @@
import { useCors } from 'lib/middleware';
import { NextApiRequestQueryBody } from 'lib/types';
import { NextApiRequestQueryBody, SearchFilter, TeamSearchFilterType } from 'lib/types';
import { NextApiResponse } from 'next';
import { methodNotAllowed } from 'next-basics';
import userTeams from 'pages/api/users/[id]/teams';
export default async (req: NextApiRequestQueryBody, res: NextApiResponse) => {
export interface MyTeamsRequestQuery extends SearchFilter<TeamSearchFilterType> {}
export default async (
req: NextApiRequestQueryBody<MyTeamsRequestQuery, any>,
res: NextApiResponse,
) => {
await useCors(req, res);
if (req.method === 'GET') {

View File

@ -1,11 +1,16 @@
import { useAuth, useCors } from 'lib/middleware';
import { NextApiRequestQueryBody } from 'lib/types';
import { NextApiRequestQueryBody, WebsiteSearchFilterType } from 'lib/types';
import { NextApiResponse } from 'next';
import { methodNotAllowed } from 'next-basics';
import userWebsites from 'pages/api/users/[id]/websites';
export default async (req: NextApiRequestQueryBody, res: NextApiResponse) => {
export interface MyWebsitesRequestQuery extends SearchFilter<WebsiteSearchFilterType> {}
export default async (
req: NextApiRequestQueryBody<MyWebsitesRequestQuery, any>,
res: NextApiResponse,
) => {
await useCors(req, res);
await useAuth(req, res);

View File

@ -1,17 +1,21 @@
import { useAuth, useCors } from 'lib/middleware';
import { NextApiRequestQueryBody } from 'lib/types';
import { NextApiRequestQueryBody, SearchFilter, TeamSearchFilterType } from 'lib/types';
import { NextApiResponse } from 'next';
import { methodNotAllowed, ok, unauthorized } from 'next-basics';
import { getUserTeams } from 'queries';
import { getTeamsByUserId } from 'queries';
export interface UserWebsitesRequestBody {
export interface UserTeamsRequestQuery extends SearchFilter<TeamSearchFilterType> {
id: string;
}
export interface UserTeamsRequestBody {
name: string;
domain: string;
shareId: string;
}
export default async (
req: NextApiRequestQueryBody<any, UserWebsitesRequestBody>,
req: NextApiRequestQueryBody<any, UserTeamsRequestBody>,
res: NextApiResponse,
) => {
await useCors(req, res);
@ -25,7 +29,13 @@ export default async (
return unauthorized(res);
}
const teams = await getUserTeams(userId);
const { page, filter, pageSize } = req.query;
const teams = await getTeamsByUserId(userId, {
page,
filter,
pageSize: +pageSize || null,
});
return ok(res, teams);
}

View File

@ -19,6 +19,7 @@ export default async (
) => {
await useCors(req, res);
await useAuth(req, res);
const { user } = req.auth;
const { id: userId, page, filter, pageSize, includeTeams } = req.query;