Updated user get.

This commit is contained in:
Mike Cao 2023-11-28 10:22:24 -08:00
parent ea28511b3c
commit 02c9e0115e
2 changed files with 12 additions and 8 deletions

View File

@ -3,7 +3,7 @@ import debug from 'debug';
import redis from '@umami/redis-client'; import redis from '@umami/redis-client';
import { getAuthToken, parseShareToken } from 'lib/auth'; import { getAuthToken, parseShareToken } from 'lib/auth';
import { ROLES } from 'lib/constants'; import { ROLES } from 'lib/constants';
import { isUuid, secret } from 'lib/crypto'; import { secret } from 'lib/crypto';
import { findSession } from 'lib/session'; import { findSession } from 'lib/session';
import { import {
badRequest, badRequest,
@ -52,7 +52,7 @@ export const useAuth = createMiddleware(async (req, res, next) => {
let user = null; let user = null;
const { userId, authKey, grant } = payload || {}; const { userId, authKey, grant } = payload || {};
if (isUuid(userId)) { if (userId) {
user = await getUserById(userId); user = await getUserById(userId);
} else if (redis.enabled && authKey) { } else if (redis.enabled && authKey) {
const key = await redis.client.get(authKey); const key = await redis.client.get(authKey);
@ -61,7 +61,7 @@ export const useAuth = createMiddleware(async (req, res, next) => {
} }
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
log({ token, shareToken, payload, user, grant }); log('useAuth:', { token, shareToken, payload, user, grant });
} }
if (!user?.id && !shareToken) { if (!user?.id && !shareToken) {

View File

@ -11,13 +11,17 @@ export interface GetUserOptions {
} }
async function getUser( async function getUser(
where: Prisma.UserWhereInput | Prisma.UserWhereUniqueInput, where: Prisma.UserWhereUniqueInput,
options: GetUserOptions = {}, options: GetUserOptions = {},
): Promise<User> { ): Promise<User> {
const { includePassword = false, showDeleted = false } = options; const { includePassword = false, showDeleted = false } = options;
return prisma.client.user.findFirst({ if (showDeleted) {
where: { ...where, ...(showDeleted ? {} : { deletedAt: null }) }, where.deletedAt = null;
}
return prisma.client.user.findUnique({
where,
select: { select: {
id: true, id: true,
username: true, username: true,
@ -28,8 +32,8 @@ async function getUser(
}); });
} }
export async function getUserById(userId: string, options: GetUserOptions = {}) { export async function getUserById(id: string, options: GetUserOptions = {}) {
return getUser({ id: userId }, options); return getUser({ id }, options);
} }
export async function getUserByUsername(username: string, options: GetUserOptions = {}) { export async function getUserByUsername(username: string, options: GetUserOptions = {}) {