mirror of
https://github.com/woodchen-ink/Q58Connect.git
synced 2025-07-18 05:51:55 +08:00
refactor: update user field
This commit is contained in:
parent
b8f7fcf180
commit
ff0baffce8
@ -9,8 +9,10 @@ CREATE TABLE "users" (
|
||||
"name" TEXT,
|
||||
"avatarUrl" TEXT,
|
||||
"role" "UserRole" NOT NULL DEFAULT 'USER',
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"moderator" BOOLEAN NOT NULL DEFAULT false,
|
||||
"groups" TEXT[],
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
@ -26,6 +28,8 @@ CREATE TABLE "clients" (
|
||||
"clientId" TEXT NOT NULL,
|
||||
"clientSecret" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "clients_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
@ -19,6 +19,8 @@ model User {
|
||||
name String?
|
||||
avatarUrl String?
|
||||
role UserRole @default(USER)
|
||||
moderator Boolean @default(false)
|
||||
groups String[]
|
||||
|
||||
clients Client[]
|
||||
codes Code[]
|
||||
@ -26,8 +28,8 @@ model User {
|
||||
|
||||
authorizations Authorization[]
|
||||
|
||||
createdAt DateTime @default(now()) @map(name: "created_at")
|
||||
updatedAt DateTime @default(now()) @map(name: "updated_at")
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@map("users")
|
||||
}
|
||||
@ -51,6 +53,9 @@ model Client {
|
||||
|
||||
authorizations Authorization[]
|
||||
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@map("clients")
|
||||
}
|
||||
|
||||
|
@ -25,8 +25,10 @@ export async function GET(req: Request) {
|
||||
id: user.id,
|
||||
email: user.email,
|
||||
username: user.username,
|
||||
admin: user.role == UserRole.ADMIN,
|
||||
avatar_url: user.avatarUrl,
|
||||
name: user.name,
|
||||
admin: user.role == UserRole.ADMIN,
|
||||
moderator: user.moderator,
|
||||
groups: user.groups,
|
||||
});
|
||||
}
|
||||
|
@ -33,6 +33,8 @@ export async function discourseCallbackVerify(sso: string, sig: string) {
|
||||
const name = searchParams.get("name");
|
||||
const avatarUrl = searchParams.get("avatar_url");
|
||||
const isAdmin = searchParams.get("admin") == "true";
|
||||
const moderator = searchParams.get("moderator") == "true";
|
||||
const groups = searchParams.get("groups")?.split(",");
|
||||
if (!id || !email || !username) {
|
||||
throw new Error("User not found.");
|
||||
}
|
||||
@ -47,7 +49,8 @@ export async function discourseCallbackVerify(sso: string, sig: string) {
|
||||
name,
|
||||
avatarUrl,
|
||||
role: isAdmin ? UserRole.ADMIN : UserRole.USER,
|
||||
updatedAt: new Date(),
|
||||
moderator,
|
||||
groups,
|
||||
});
|
||||
} else {
|
||||
// 创建
|
||||
@ -58,8 +61,8 @@ export async function discourseCallbackVerify(sso: string, sig: string) {
|
||||
name,
|
||||
avatarUrl,
|
||||
role: isAdmin ? UserRole.ADMIN : UserRole.USER,
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
moderator,
|
||||
groups,
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ export async function getClientsByUserId(userId: string) {
|
||||
clientId: true,
|
||||
clientSecret: true,
|
||||
redirectUri: true,
|
||||
createdAt: true,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
@ -1,9 +1,7 @@
|
||||
import { User } from "@prisma/client";
|
||||
import { Prisma as PrismaType } from "@prisma/client";
|
||||
|
||||
import { prisma } from "../prisma";
|
||||
|
||||
export interface UpdateUserForm extends Omit<User, "id" | "createdAt"> {}
|
||||
|
||||
export const getUserById = async (id: string) => {
|
||||
try {
|
||||
const user = await prisma.user.findUnique({ where: { id } });
|
||||
@ -14,7 +12,10 @@ export const getUserById = async (id: string) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const updateUser = async (userId: string, data: UpdateUserForm) => {
|
||||
export const updateUser = async (
|
||||
userId: string,
|
||||
data: PrismaType.UserUpdateInput,
|
||||
) => {
|
||||
try {
|
||||
const session = await prisma.user.update({
|
||||
where: {
|
||||
@ -28,7 +29,7 @@ export const updateUser = async (userId: string, data: UpdateUserForm) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const createUser = async (data: User) => {
|
||||
export const createUser = async (data: PrismaType.UserCreateInput) => {
|
||||
try {
|
||||
const session = await prisma.user.create({
|
||||
data,
|
||||
|
Loading…
x
Reference in New Issue
Block a user