Updated replica handling. Fixed types.
Some checks are pending
Create docker images / Build, push, and deploy (push) Waiting to run
Node.js CI / build (postgresql, 18.18, 10) (push) Waiting to run

This commit is contained in:
Mike Cao 2025-10-03 01:20:48 -07:00
parent b36cd48b4a
commit f70f98fed0
9 changed files with 83 additions and 168 deletions

View file

@ -1,7 +1,7 @@
import { Prisma, User } from '@/generated/prisma/client';
import { Prisma } from '@/generated/prisma/client';
import { ROLES } from '@/lib/constants';
import prisma from '@/lib/prisma';
import { PageResult, Role, QueryFilters } from '@/lib/types';
import { Role, QueryFilters } from '@/lib/types';
import { getRandomChars } from '@/lib/generate';
import UserFindManyArgs = Prisma.UserFindManyArgs;
@ -10,10 +10,7 @@ export interface GetUserOptions {
showDeleted?: boolean;
}
async function findUser(
criteria: Prisma.UserFindUniqueArgs,
options: GetUserOptions = {},
): Promise<User> {
async function findUser(criteria: Prisma.UserFindUniqueArgs, options: GetUserOptions = {}) {
const { includePassword = false, showDeleted = false } = options;
return prisma.client.user.findUnique({
@ -47,10 +44,7 @@ export async function getUserByUsername(username: string, options: GetUserOption
return findUser({ where: { username } }, options);
}
export async function getUsers(
criteria: UserFindManyArgs,
filters: QueryFilters = {},
): Promise<PageResult<User[]>> {
export async function getUsers(criteria: UserFindManyArgs, filters: QueryFilters = {}) {
const { search } = filters;
const where: Prisma.UserWhereInput = {
@ -78,11 +72,7 @@ export async function createUser(data: {
username: string;
password: string;
role: Role;
}): Promise<{
id: string;
username: string;
role: string;
}> {
}) {
return prisma.client.user.create({
data,
select: {
@ -93,7 +83,7 @@ export async function createUser(data: {
});
}
export async function updateUser(userId: string, data: Prisma.UserUpdateInput): Promise<User> {
export async function updateUser(userId: string, data: Prisma.UserUpdateInput) {
return prisma.client.user.update({
where: {
id: userId,
@ -108,21 +98,9 @@ export async function updateUser(userId: string, data: Prisma.UserUpdateInput):
});
}
export async function deleteUser(
userId: string,
): Promise<
[
Prisma.BatchPayload,
Prisma.BatchPayload,
Prisma.BatchPayload,
Prisma.BatchPayload,
Prisma.BatchPayload,
Prisma.BatchPayload,
User,
]
> {
export async function deleteUser(userId: string) {
const { client, transaction } = prisma;
const cloudMode = !!process.env.CLOUD_URL;
const cloudMode = !!process.env.CLOUD_MODE;
const websites = await client.website.findMany({
where: { userId },