mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Updated redis calls.
This commit is contained in:
parent
bb5affe29a
commit
62a8b29453
@ -77,7 +77,7 @@
|
|||||||
"@react-spring/web": "^9.7.3",
|
"@react-spring/web": "^9.7.3",
|
||||||
"@tanstack/react-query": "^5.28.6",
|
"@tanstack/react-query": "^5.28.6",
|
||||||
"@umami/prisma-client": "^0.14.0",
|
"@umami/prisma-client": "^0.14.0",
|
||||||
"@umami/redis-client": "^0.21.0",
|
"@umami/redis-client": "^0.24.0",
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"chart.js": "^4.4.2",
|
"chart.js": "^4.4.2",
|
||||||
"chartjs-adapter-date-fns": "^3.0.0",
|
"chartjs-adapter-date-fns": "^3.0.0",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Report } from '@prisma/client';
|
import { Report } from '@prisma/client';
|
||||||
import redis from '@umami/redis-client';
|
import { getClient } from '@umami/redis-client';
|
||||||
import debug from 'debug';
|
import debug from 'debug';
|
||||||
import { PERMISSIONS, ROLE_PERMISSIONS, SHARE_TOKEN_HEADER, ROLES } from 'lib/constants';
|
import { PERMISSIONS, ROLE_PERMISSIONS, SHARE_TOKEN_HEADER } from 'lib/constants';
|
||||||
import { secret } from 'lib/crypto';
|
import { secret } from 'lib/crypto';
|
||||||
import { NextApiRequest } from 'next';
|
import { NextApiRequest } from 'next';
|
||||||
import { createSecureToken, ensureArray, getRandomChars, parseToken } from 'next-basics';
|
import { createSecureToken, ensureArray, getRandomChars, parseToken } from 'next-basics';
|
||||||
@ -14,10 +14,12 @@ const cloudMode = process.env.CLOUD_MODE;
|
|||||||
export async function saveAuth(data: any, expire = 0) {
|
export async function saveAuth(data: any, expire = 0) {
|
||||||
const authKey = `auth:${getRandomChars(32)}`;
|
const authKey = `auth:${getRandomChars(32)}`;
|
||||||
|
|
||||||
await redis.client.set(authKey, data);
|
const redis = getClient();
|
||||||
|
|
||||||
|
await redis.set(authKey, data);
|
||||||
|
|
||||||
if (expire) {
|
if (expire) {
|
||||||
await redis.client.expire(authKey, expire);
|
await redis.expire(authKey, expire);
|
||||||
}
|
}
|
||||||
|
|
||||||
return createSecureToken({ authKey }, secret());
|
return createSecureToken({ authKey }, secret());
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
import { getWebsiteSession, getWebsite } from 'queries';
|
import { getWebsiteSession, getWebsite } from 'queries';
|
||||||
import { Website, Session } from '@prisma/client';
|
import { Website, Session } from '@prisma/client';
|
||||||
import redis from '@umami/redis-client';
|
import { getClient, redisEnabled } from '@umami/redis-client';
|
||||||
|
|
||||||
export async function fetchWebsite(websiteId: string): Promise<Website> {
|
export async function fetchWebsite(websiteId: string): Promise<Website> {
|
||||||
let website = null;
|
let website = null;
|
||||||
|
|
||||||
if (redis.enabled) {
|
if (redisEnabled) {
|
||||||
website = await redis.client.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400);
|
const redis = getClient();
|
||||||
|
|
||||||
|
website = await redis.fetch(`website:${websiteId}`, () => getWebsite(websiteId), 86400);
|
||||||
} else {
|
} else {
|
||||||
website = await getWebsite(websiteId);
|
website = await getWebsite(websiteId);
|
||||||
}
|
}
|
||||||
@ -21,8 +23,10 @@ export async function fetchWebsite(websiteId: string): Promise<Website> {
|
|||||||
export async function fetchSession(websiteId: string, sessionId: string): Promise<Session> {
|
export async function fetchSession(websiteId: string, sessionId: string): Promise<Session> {
|
||||||
let session = null;
|
let session = null;
|
||||||
|
|
||||||
if (redis.enabled) {
|
if (redisEnabled) {
|
||||||
session = await redis.client.fetch(
|
const redis = getClient();
|
||||||
|
|
||||||
|
session = await redis.fetch(
|
||||||
`session:${sessionId}`,
|
`session:${sessionId}`,
|
||||||
() => getWebsiteSession(websiteId, sessionId),
|
() => getWebsiteSession(websiteId, sessionId),
|
||||||
86400,
|
86400,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
import debug from 'debug';
|
import debug from 'debug';
|
||||||
import redis from '@umami/redis-client';
|
import { getClient, redisEnabled } 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 { secret } from 'lib/crypto';
|
import { secret } from 'lib/crypto';
|
||||||
@ -54,8 +54,10 @@ export const useAuth = createMiddleware(async (req, res, next) => {
|
|||||||
|
|
||||||
if (userId) {
|
if (userId) {
|
||||||
user = await getUser(userId);
|
user = await getUser(userId);
|
||||||
} else if (redis.enabled && authKey) {
|
} else if (redisEnabled && authKey) {
|
||||||
const key = await redis.client.get(authKey);
|
const redis = getClient();
|
||||||
|
|
||||||
|
const key = await redis.get(authKey);
|
||||||
|
|
||||||
if (key?.userId) {
|
if (key?.userId) {
|
||||||
user = await getUser(key.userId);
|
user = await getUser(key.userId);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import redis from '@umami/redis-client';
|
import { redisEnabled } from '@umami/redis-client';
|
||||||
import { saveAuth } from 'lib/auth';
|
import { saveAuth } from 'lib/auth';
|
||||||
import { secret } from 'lib/crypto';
|
import { secret } from 'lib/crypto';
|
||||||
import { useValidate } from 'lib/middleware';
|
import { useValidate } from 'lib/middleware';
|
||||||
@ -49,7 +49,7 @@ export default async (
|
|||||||
const user = await getUserByUsername(username, { includePassword: true });
|
const user = await getUserByUsername(username, { includePassword: true });
|
||||||
|
|
||||||
if (user && checkPassword(password, user.password)) {
|
if (user && checkPassword(password, user.password)) {
|
||||||
if (redis.enabled) {
|
if (redisEnabled) {
|
||||||
const token = await saveAuth({ userId: user.id });
|
const token = await saveAuth({ userId: user.id });
|
||||||
|
|
||||||
return ok(res, { token, user });
|
return ok(res, { token, user });
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { methodNotAllowed, ok } from 'next-basics';
|
import { methodNotAllowed, ok } from 'next-basics';
|
||||||
import redis from '@umami/redis-client';
|
import { getClient, redisEnabled } from '@umami/redis-client';
|
||||||
import { useAuth } from 'lib/middleware';
|
import { useAuth } from 'lib/middleware';
|
||||||
import { getAuthToken } from 'lib/auth';
|
import { getAuthToken } from 'lib/auth';
|
||||||
import { NextApiRequest, NextApiResponse } from 'next';
|
import { NextApiRequest, NextApiResponse } from 'next';
|
||||||
@ -8,8 +8,10 @@ export default async (req: NextApiRequest, res: NextApiResponse) => {
|
|||||||
await useAuth(req, res);
|
await useAuth(req, res);
|
||||||
|
|
||||||
if (req.method === 'POST') {
|
if (req.method === 'POST') {
|
||||||
if (redis.enabled) {
|
if (redisEnabled) {
|
||||||
await redis.client.del(getAuthToken(req));
|
const redis = getClient();
|
||||||
|
|
||||||
|
await redis.del(getAuthToken(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok(res);
|
return ok(res);
|
||||||
|
@ -2,13 +2,13 @@ import { NextApiRequestAuth } from 'lib/types';
|
|||||||
import { useAuth } from 'lib/middleware';
|
import { useAuth } from 'lib/middleware';
|
||||||
import { NextApiResponse } from 'next';
|
import { NextApiResponse } from 'next';
|
||||||
import { badRequest, ok } from 'next-basics';
|
import { badRequest, ok } from 'next-basics';
|
||||||
import redis from '@umami/redis-client';
|
import { redisEnabled } from '@umami/redis-client';
|
||||||
import { saveAuth } from 'lib/auth';
|
import { saveAuth } from 'lib/auth';
|
||||||
|
|
||||||
export default async (req: NextApiRequestAuth, res: NextApiResponse) => {
|
export default async (req: NextApiRequestAuth, res: NextApiResponse) => {
|
||||||
await useAuth(req, res);
|
await useAuth(req, res);
|
||||||
|
|
||||||
if (redis.enabled && req.auth.user) {
|
if (redisEnabled && req.auth.user) {
|
||||||
const token = await saveAuth({ userId: req.auth.user.id }, 86400);
|
const token = await saveAuth({ userId: req.auth.user.id }, 86400);
|
||||||
|
|
||||||
return ok(res, { user: req.auth.user, token });
|
return ok(res, { user: req.auth.user, token });
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Prisma, Website } from '@prisma/client';
|
import { Prisma, Website } from '@prisma/client';
|
||||||
import redis from '@umami/redis-client';
|
import { getClient } from '@umami/redis-client';
|
||||||
import prisma from 'lib/prisma';
|
import prisma from 'lib/prisma';
|
||||||
import { PageResult, PageParams } from 'lib/types';
|
import { PageResult, PageParams } from 'lib/types';
|
||||||
import WebsiteFindManyArgs = Prisma.WebsiteFindManyArgs;
|
import WebsiteFindManyArgs = Prisma.WebsiteFindManyArgs;
|
||||||
@ -182,7 +182,9 @@ export async function resetWebsite(
|
|||||||
}),
|
}),
|
||||||
]).then(async data => {
|
]).then(async data => {
|
||||||
if (cloudMode) {
|
if (cloudMode) {
|
||||||
await redis.client.set(`website:${websiteId}`, data[3]);
|
const redis = getClient();
|
||||||
|
|
||||||
|
await redis.set(`website:${websiteId}`, data[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
@ -225,7 +227,9 @@ export async function deleteWebsite(
|
|||||||
}),
|
}),
|
||||||
]).then(async data => {
|
]).then(async data => {
|
||||||
if (cloudMode) {
|
if (cloudMode) {
|
||||||
await redis.client.del(`website:${websiteId}`);
|
const redis = getClient();
|
||||||
|
|
||||||
|
await redis.del(`website:${websiteId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
@ -3326,10 +3326,10 @@
|
|||||||
chalk "^4.1.2"
|
chalk "^4.1.2"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
||||||
"@umami/redis-client@^0.21.0":
|
"@umami/redis-client@^0.24.0":
|
||||||
version "0.21.0"
|
version "0.24.0"
|
||||||
resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.21.0.tgz#96426b28860b8b06fae8825fc2f2d9575b64e863"
|
resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.24.0.tgz#8af489250396be76bc0906766343620589774c4b"
|
||||||
integrity sha512-PpdJunvT4sAsVWIeEl+cHU6iSV2r/Df9dof2gdUwSigfD88ACsVs1/BvlWERxk/T93rTgVJWSpLvdw/oMYvkcw==
|
integrity sha512-yUZmC87H5QZKNA6jD9k/7d8WDaXQTDROlpyK7S+V2csD96eAnMNi7JsWAVWx9T/584QKD8DsSIy87PTWq1HNPw==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
redis "^4.5.1"
|
redis "^4.5.1"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user