Updated teams button.

This commit is contained in:
Mike Cao 2024-02-16 18:58:15 -08:00
parent 8048bc7866
commit 44393472cf
12 changed files with 46 additions and 55 deletions

View file

@ -2,16 +2,11 @@ import { NextApiRequestAuth } from 'lib/types';
import { useAuth } from 'lib/middleware';
import { NextApiResponse } from 'next';
import { ok } from 'next-basics';
import { getUserTeams } from 'queries/admin/team';
export default async (req: NextApiRequestAuth, res: NextApiResponse) => {
await useAuth(req, res);
const { user } = req.auth;
const teams = await getUserTeams(user.id);
user['teams'] = teams.data.map(n => n);
return ok(res, user);
};

View file

@ -3,7 +3,7 @@ import { NextApiRequestQueryBody } from 'lib/types';
import { pageInfo } from 'lib/schema';
import { NextApiResponse } from 'next';
import { methodNotAllowed } from 'next-basics';
import userTeams from 'pages/api/users/[userId]/teams';
import userTeamsRoute from 'pages/api/users/[userId]/teams';
import * as yup from 'yup';
const schema = {
@ -20,7 +20,7 @@ export default async (req: NextApiRequestQueryBody, res: NextApiResponse) => {
if (req.method === 'GET') {
req.query.userId = req.auth.user.id;
return userTeams(req, res);
return userTeamsRoute(req, res);
}
return methodNotAllowed(res);

View file

@ -3,7 +3,7 @@ import { NextApiRequestQueryBody } from 'lib/types';
import { pageInfo } from 'lib/schema';
import { NextApiResponse } from 'next';
import { methodNotAllowed } from 'next-basics';
import userWebsites from 'pages/api/users/[userId]/websites';
import userWebsitesRoute from 'pages/api/users/[userId]/websites';
import * as yup from 'yup';
const schema = {
@ -20,7 +20,7 @@ export default async (req: NextApiRequestQueryBody, res: NextApiResponse) => {
if (req.method === 'GET') {
req.query.userId = req.auth.user.id;
return userWebsites(req, res);
return userWebsitesRoute(req, res);
}
return methodNotAllowed(res);

View file

@ -1,3 +1,4 @@
import * as yup from 'yup';
import { Team } from '@prisma/client';
import { canCreateTeam } from 'lib/auth';
import { uuid } from 'lib/crypto';
@ -6,8 +7,7 @@ import { NextApiRequestQueryBody, SearchFilter } from 'lib/types';
import { pageInfo } from 'lib/schema';
import { NextApiResponse } from 'next';
import { getRandomChars, methodNotAllowed, ok, unauthorized } from 'next-basics';
import { createTeam, getUserTeams } from 'queries';
import * as yup from 'yup';
import { createTeam } from 'queries';
export interface TeamsRequestQuery extends SearchFilter {}
export interface TeamsRequestBody {
@ -34,18 +34,6 @@ export default async (
user: { id: userId },
} = req.auth;
if (req.method === 'GET') {
const { page, query, pageSize } = req.query;
const results = await getUserTeams(userId, {
page,
query,
pageSize,
});
return ok(res, results);
}
if (req.method === 'POST') {
if (!(await canCreateTeam(req.auth))) {
return unauthorized(res);

View file

@ -32,10 +32,10 @@ export default async (
await useValidate(schema, req, res);
const { user } = req.auth;
const { id: userId } = req.query;
const { userId } = req.query;
if (req.method === 'GET') {
if (!user.isAdmin && user.id !== userId) {
if (!user.isAdmin && (!userId || user.id !== userId)) {
return unauthorized(res);
}

View file

@ -5,7 +5,7 @@ import { NextApiRequestQueryBody, SearchFilter } from 'lib/types';
import { NextApiResponse } from 'next';
import { methodNotAllowed, ok, unauthorized } from 'next-basics';
import { createWebsite } from 'queries';
import userWebsites from 'pages/api/users/[userId]/websites';
import userWebsitesRoute from 'pages/api/users/[userId]/websites';
import * as yup from 'yup';
import { pageInfo } from 'lib/schema';
@ -47,7 +47,7 @@ export default async (
req.query.userId = userId;
}
return userWebsites(req, res);
return userWebsitesRoute(req, res);
}
if (req.method === 'POST') {