chore: implemented feedback + a small refactoring

This commit is contained in:
Catalin Pit
2023-12-11 14:33:30 +02:00
parent 66c0db91da
commit 8ecd8a7d10
6 changed files with 42 additions and 39 deletions

View File

@ -3,7 +3,7 @@ import crypto from 'crypto';
import { prisma } from '@documenso/prisma';
// temporary choice for testing only
import { ONE_WEEK } from '../../constants/time';
import { ONE_YEAR } from '../../constants/time';
type CreateApiTokenInput = {
userId: number;
@ -22,7 +22,7 @@ export const createApiToken = async ({ userId, tokenName }: CreateApiTokenInput)
token: tokenHash,
name: tokenName,
userId,
expires: new Date(Date.now() + ONE_WEEK),
expires: new Date(Date.now() + ONE_YEAR),
},
});

View File

@ -1,7 +1,7 @@
import { prisma } from '@documenso/prisma';
export const checkUserFromToken = async ({ token }: { token: string }) => {
const user = await prisma.user.findFirstOrThrow({
const user = await prisma.user.findFirst({
where: {
ApiToken: {
some: {
@ -9,7 +9,20 @@ export const checkUserFromToken = async ({ token }: { token: string }) => {
},
},
},
include: {
ApiToken: true,
},
});
if (!user) {
throw new Error('Token not found');
}
const tokenObject = user.ApiToken.find((apiToken) => apiToken.token === token);
if (!tokenObject || new Date(tokenObject.expires) < new Date()) {
throw new Error('The API token has expired');
}
return user;
};