Split queries into prisma and sql.
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-09-29 16:55:07 -07:00
parent 1a66e3df73
commit b9fbbc6453
69 changed files with 117 additions and 115 deletions

View file

@ -1,7 +1,7 @@
import { z } from 'zod';
import { createSecureToken } from '@/lib/jwt';
import redis from '@/lib/redis';
import { getUserByUsername } from '@/queries';
import { getUserByUsername } from '@/queries/prisma';
import { json, unauthorized } from '@/lib/response';
import { parseRequest } from '@/lib/request';
import { saveAuth } from '@/lib/auth';

View file

@ -1,6 +1,6 @@
import { parseRequest } from '@/lib/request';
import { json } from '@/lib/response';
import { getAllUserTeams } from '@/queries';
import { getAllUserTeams } from '@/queries/prisma';
export async function POST(request: Request) {
const { auth, error } = await parseRequest(request);

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { canUpdateLink, canDeleteLink, canViewLink } from '@/permissions';
import { parseRequest } from '@/lib/request';
import { ok, json, unauthorized, serverError, badRequest } from '@/lib/response';
import { deleteLink, getLink, updateLink } from '@/queries';
import { deleteLink, getLink, updateLink } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ linkId: string }> }) {
const { auth, error } = await parseRequest(request);

View file

@ -4,7 +4,7 @@ import { json, unauthorized } from '@/lib/response';
import { uuid } from '@/lib/crypto';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, searchParams } from '@/lib/schema';
import { createLink, getUserLinks } from '@/queries';
import { createLink, getUserLinks } from '@/queries/prisma';
export async function GET(request: Request) {
const schema = z.object({

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { pagingParams } from '@/lib/schema';
import { getUserTeams } from '@/queries';
import { getUserTeams } from '@/queries/prisma';
import { json } from '@/lib/response';
import { getQueryFilters, parseRequest } from '@/lib/request';

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { pagingParams } from '@/lib/schema';
import { getAllUserWebsitesIncludingTeamOwner, getUserWebsites } from '@/queries';
import { getAllUserWebsitesIncludingTeamOwner, getUserWebsites } from '@/queries/prisma';
import { json } from '@/lib/response';
import { parseRequest, getQueryFilters } from '@/lib/request';

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { canUpdatePixel, canDeletePixel, canViewPixel } from '@/permissions';
import { parseRequest } from '@/lib/request';
import { ok, json, unauthorized, serverError, badRequest } from '@/lib/response';
import { deletePixel, getPixel, updatePixel } from '@/queries';
import { deletePixel, getPixel, updatePixel } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ pixelId: string }> }) {
const { auth, error } = await parseRequest(request);

View file

@ -4,7 +4,7 @@ import { json, unauthorized } from '@/lib/response';
import { uuid } from '@/lib/crypto';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, searchParams } from '@/lib/schema';
import { createPixel, getUserPixels } from '@/queries';
import { createPixel, getUserPixels } from '@/queries/prisma';
export async function GET(request: Request) {
const schema = z.object({

View file

@ -1,5 +1,5 @@
import { json, unauthorized } from '@/lib/response';
import { getRealtimeData } from '@/queries';
import { getRealtimeData } from '@/queries/sql';
import { canViewWebsite } from '@/permissions';
import { startOfMinute, subMinutes } from 'date-fns';
import { REALTIME_RANGE } from '@/lib/constants';

View file

@ -1,5 +1,5 @@
import { parseRequest } from '@/lib/request';
import { deleteReport, getReport, updateReport } from '@/queries';
import { deleteReport, getReport, updateReport } from '@/queries/prisma';
import { canDeleteReport, canUpdateReport, canViewReport } from '@/permissions';
import { unauthorized, json, notFound, ok } from '@/lib/response';
import { reportSchema } from '@/lib/schema';

View file

@ -1,7 +1,7 @@
import { canViewWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
import { getQueryFilters, parseRequest, setWebsiteDate } from '@/lib/request';
import { BreakdownParameters, getBreakdown } from '@/queries';
import { BreakdownParameters, getBreakdown } from '@/queries/sql';
import { reportResultSchema } from '@/lib/schema';
export async function POST(request: Request) {

View file

@ -1,7 +1,7 @@
import { canViewWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
import { parseRequest, getQueryFilters, setWebsiteDate } from '@/lib/request';
import { FunnelParameters, getFunnel } from '@/queries';
import { FunnelParameters, getFunnel } from '@/queries/sql';
import { reportResultSchema } from '@/lib/schema';
export async function POST(request: Request) {

View file

@ -1,7 +1,7 @@
import { canViewWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { getJourney } from '@/queries';
import { getJourney } from '@/queries/sql';
import { reportResultSchema } from '@/lib/schema';
export async function POST(request: Request) {

View file

@ -1,7 +1,7 @@
import { canViewWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
import { parseRequest, getQueryFilters, setWebsiteDate } from '@/lib/request';
import { getRetention, RetentionParameters } from '@/queries';
import { getRetention, RetentionParameters } from '@/queries/sql';
import { reportResultSchema } from '@/lib/schema';
export async function POST(request: Request) {

View file

@ -4,7 +4,7 @@ import { pagingParams, reportSchema } from '@/lib/schema';
import { parseRequest } from '@/lib/request';
import { canViewWebsite, canUpdateWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
import { getReports, createReport } from '@/queries';
import { getReports, createReport } from '@/queries/prisma';
export async function GET(request: Request) {
const schema = z.object({

View file

@ -1,7 +1,7 @@
import { canViewWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
import { getQueryFilters, parseRequest, setWebsiteDate } from '@/lib/request';
import { getUTM, UTMParameters } from '@/queries';
import { getUTM, UTMParameters } from '@/queries/sql';
import { reportResultSchema } from '@/lib/schema';
import { UTM_PARAMS } from '@/lib/constants';

View file

@ -12,7 +12,7 @@ import { secret, uuid, hash } from '@/lib/crypto';
import { COLLECTION_TYPE, EVENT_TYPE } from '@/lib/constants';
import { anyObjectParam, urlOrPathParam } from '@/lib/schema';
import { safeDecodeURI, safeDecodeURIComponent } from '@/lib/url';
import { createSession, saveEvent, saveSessionData } from '@/queries';
import { createSession, saveEvent, saveSessionData } from '@/queries/sql';
const log = debug('umami:send');

View file

@ -1,7 +1,7 @@
import { json, notFound } from '@/lib/response';
import { createToken } from '@/lib/jwt';
import { secret } from '@/lib/crypto';
import { getSharedWebsite } from '@/queries';
import { getSharedWebsite } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ shareId: string }> }) {
const { shareId } = await params;

View file

@ -3,7 +3,7 @@ import { unauthorized, json } from '@/lib/response';
import { canViewTeam } from '@/permissions';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, searchParams } from '@/lib/schema';
import { getTeamLinks } from '@/queries';
import { getTeamLinks } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) {
const schema = z.object({

View file

@ -3,7 +3,7 @@ import { unauthorized, json } from '@/lib/response';
import { canViewTeam } from '@/permissions';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, searchParams } from '@/lib/schema';
import { getTeamPixels } from '@/queries';
import { getTeamPixels } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) {
const schema = z.object({

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { unauthorized, json, notFound, ok } from '@/lib/response';
import { canDeleteTeam, canUpdateTeam, canViewTeam } from '@/permissions';
import { parseRequest } from '@/lib/request';
import { deleteTeam, getTeam, updateTeam } from '@/queries';
import { deleteTeam, getTeam, updateTeam } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) {
const { auth, error } = await parseRequest(request);

View file

@ -1,7 +1,7 @@
import { canDeleteTeamUser, canUpdateTeam } from '@/permissions';
import { parseRequest } from '@/lib/request';
import { badRequest, json, ok, unauthorized } from '@/lib/response';
import { deleteTeamUser, getTeamUser, updateTeamUser } from '@/queries';
import { deleteTeamUser, getTeamUser, updateTeamUser } from '@/queries/prisma';
import { z } from 'zod';
export async function GET(

View file

@ -3,7 +3,7 @@ import { unauthorized, json, badRequest } from '@/lib/response';
import { canAddUserToTeam, canViewTeam } from '@/permissions';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, teamRoleParam, searchParams } from '@/lib/schema';
import { createTeamUser, getTeamUser, getTeamUsers } from '@/queries';
import { createTeamUser, getTeamUser, getTeamUsers } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) {
const schema = z.object({

View file

@ -3,7 +3,7 @@ import { unauthorized, json } from '@/lib/response';
import { canViewTeam } from '@/permissions';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, searchParams } from '@/lib/schema';
import { getTeamWebsites } from '@/queries';
import { getTeamWebsites } from '@/queries/prisma';
export async function GET(request: Request, { params }: { params: Promise<{ teamId: string }> }) {
const schema = z.object({

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { json, badRequest, notFound } from '@/lib/response';
import { parseRequest } from '@/lib/request';
import { ROLES } from '@/lib/constants';
import { createTeamUser, findTeam, getTeamUser } from '@/queries';
import { createTeamUser, findTeam, getTeamUser } from '@/queries/prisma';
export async function POST(request: Request) {
const schema = z.object({

View file

@ -4,7 +4,7 @@ import { unauthorized, json } from '@/lib/response';
import { canCreateTeam } from '@/permissions';
import { uuid } from '@/lib/crypto';
import { parseRequest } from '@/lib/request';
import { createTeam } from '@/queries';
import { createTeam } from '@/queries/prisma';
export async function POST(request: Request) {
const schema = z.object({

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { canUpdateUser, canViewUser, canDeleteUser } from '@/permissions';
import { getUser, getUserByUsername, updateUser, deleteUser } from '@/queries';
import { getUser, getUserByUsername, updateUser, deleteUser } from '@/queries/prisma';
import { json, unauthorized, badRequest, ok } from '@/lib/response';
import { hashPassword } from '@/lib/password';
import { parseRequest } from '@/lib/request';

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { pagingParams } from '@/lib/schema';
import { getUserTeams } from '@/queries';
import { getUserTeams } from '@/queries/prisma';
import { unauthorized, json } from '@/lib/response';
import { parseRequest } from '@/lib/request';

View file

@ -5,7 +5,7 @@ import { ROLES } from '@/lib/constants';
import { uuid } from '@/lib/crypto';
import { parseRequest } from '@/lib/request';
import { unauthorized, json, badRequest } from '@/lib/response';
import { createUser, getUserByUsername } from '@/queries';
import { createUser, getUserByUsername } from '@/queries/prisma';
export async function POST(request: Request) {
const schema = z.object({

View file

@ -1,6 +1,6 @@
import { canViewWebsite } from '@/permissions';
import { json, unauthorized } from '@/lib/response';
import { getActiveVisitors } from '@/queries';
import { getActiveVisitors } from '@/queries/sql';
import { parseRequest } from '@/lib/request';
export async function GET(

View file

@ -1,5 +1,5 @@
import { canViewWebsite } from '@/permissions';
import { getWebsiteDateRange } from '@/queries';
import { getWebsiteDateRange } from '@/queries/sql';
import { json, unauthorized } from '@/lib/response';
import { parseRequest } from '@/lib/request';

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getEventDataFields } from '@/queries';
import { getEventDataFields } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getEventDataProperties } from '@/queries';
import { getEventDataProperties } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getEventDataStats } from '@/queries';
import { getEventDataStats } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getEventDataValues } from '@/queries';
import { getEventDataValues } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -3,7 +3,7 @@ import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { dateRangeParams, pagingParams, filterParams, searchParams } from '@/lib/schema';
import { getWebsiteEvents } from '@/queries';
import { getWebsiteEvents } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -3,7 +3,7 @@ import { parseRequest, getQueryFilters } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { filterParams, timezoneParam, unitParam } from '@/lib/schema';
import { getEventStats } from '@/queries';
import { getEventStats } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -5,7 +5,7 @@ import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { pagingParams, dateRangeParams } from '@/lib/schema';
import { getEventMetrics, getPageviewMetrics, getSessionMetrics } from '@/queries';
import { getEventMetrics, getPageviewMetrics, getSessionMetrics } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -8,7 +8,7 @@ import {
getEventExpandedMetrics,
getPageviewExpandedMetrics,
getSessionExpandedMetrics,
} from '@/queries';
} from '@/queries/sql';
import { z } from 'zod';
export async function GET(

View file

@ -7,7 +7,7 @@ import {
getEventMetrics,
getPageviewMetrics,
getSessionMetrics,
} from '@/queries';
} from '@/queries/sql';
import { z } from 'zod';
import { dateRangeParams, filterParams, searchParams } from '@/lib/schema';

View file

@ -4,7 +4,7 @@ import { getQueryFilters, parseRequest } from '@/lib/request';
import { dateRangeParams, filterParams } from '@/lib/schema';
import { getCompareDate } from '@/lib/date';
import { unauthorized, json } from '@/lib/response';
import { getPageviewStats, getSessionStats } from '@/queries';
import { getPageviewStats, getSessionStats } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { canViewWebsite } from '@/permissions';
import { getReports } from '@/queries';
import { getReports } from '@/queries/prisma';
import { filterParams, pagingParams } from '@/lib/schema';
import { parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';

View file

@ -1,5 +1,5 @@
import { canUpdateWebsite } from '@/permissions';
import { resetWebsite } from '@/queries';
import { resetWebsite } from '@/queries/prisma';
import { unauthorized, ok } from '@/lib/response';
import { parseRequest } from '@/lib/request';

View file

@ -3,7 +3,7 @@ import { canUpdateWebsite, canDeleteWebsite, canViewWebsite } from '@/permission
import { SHARE_ID_REGEX } from '@/lib/constants';
import { parseRequest } from '@/lib/request';
import { ok, json, unauthorized, serverError, badRequest } from '@/lib/response';
import { deleteWebsite, getWebsite, updateWebsite } from '@/queries';
import { deleteWebsite, getWebsite, updateWebsite } from '@/queries/prisma';
export async function GET(
request: Request,

View file

@ -2,7 +2,7 @@ import { canDeleteWebsite, canUpdateWebsite, canViewWebsite } from '@/permission
import { parseRequest } from '@/lib/request';
import { json, notFound, ok, unauthorized } from '@/lib/response';
import { anyObjectParam, segmentTypeParam } from '@/lib/schema';
import { deleteSegment, getSegment, updateSegment } from '@/queries';
import { deleteSegment, getSegment, updateSegment } from '@/queries/prisma';
import { z } from 'zod';
export async function GET(

View file

@ -3,7 +3,7 @@ import { uuid } from '@/lib/crypto';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { json, unauthorized } from '@/lib/response';
import { segmentTypeParam, searchParams, anyObjectParam } from '@/lib/schema';
import { createSegment, getWebsiteSegments } from '@/queries';
import { createSegment, getWebsiteSegments } from '@/queries/prisma';
import { z } from 'zod';
export async function GET(

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getSessionDataProperties } from '@/queries';
import { getSessionDataProperties } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -1,7 +1,7 @@
import { canViewWebsite } from '@/permissions';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { json, unauthorized } from '@/lib/response';
import { getSessionDataValues } from '@/queries';
import { getSessionDataValues } from '@/queries/sql';
import { z } from 'zod';
export async function GET(

View file

@ -2,7 +2,7 @@ import { z } from 'zod';
import { parseRequest, getQueryFilters } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getSessionActivity } from '@/queries';
import { getSessionActivity } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -1,6 +1,6 @@
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getSessionData } from '@/queries';
import { getSessionData } from '@/queries/sql';
import { parseRequest } from '@/lib/request';
export async function GET(

View file

@ -1,6 +1,6 @@
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { getWebsiteSession } from '@/queries';
import { getWebsiteSession } from '@/queries/sql';
import { parseRequest } from '@/lib/request';
export async function GET(

View file

@ -3,7 +3,7 @@ import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { dateRangeParams, filterParams, pagingParams, searchParams } from '@/lib/schema';
import { getWebsiteSessions } from '@/queries';
import { getWebsiteSessions } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -3,7 +3,7 @@ import { parseRequest, getQueryFilters } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { filterParams } from '@/lib/schema';
import { getWebsiteSessionStats } from '@/queries';
import { getWebsiteSessionStats } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -3,7 +3,7 @@ import { getQueryFilters, parseRequest } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { filterParams, pagingParams, timezoneParam } from '@/lib/schema';
import { getWeeklyTraffic } from '@/queries';
import { getWeeklyTraffic } from '@/queries/sql';
export async function GET(
request: Request,

View file

@ -3,7 +3,7 @@ import { parseRequest, getQueryFilters } from '@/lib/request';
import { unauthorized, json } from '@/lib/response';
import { canViewWebsite } from '@/permissions';
import { dateRangeParams, filterParams } from '@/lib/schema';
import { getWebsiteStats } from '@/queries';
import { getWebsiteStats } from '@/queries/sql';
import { getCompareDate } from '@/lib/date';
export async function GET(

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { canTransferWebsiteToTeam, canTransferWebsiteToUser } from '@/permissions';
import { updateWebsite } from '@/queries';
import { updateWebsite } from '@/queries/prisma';
import { parseRequest } from '@/lib/request';
import { badRequest, unauthorized, json } from '@/lib/response';

View file

@ -2,7 +2,8 @@ import { canViewWebsite } from '@/permissions';
import { EVENT_COLUMNS, FILTER_COLUMNS, SEGMENT_TYPES, SESSION_COLUMNS } from '@/lib/constants';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { badRequest, json, unauthorized } from '@/lib/response';
import { getWebsiteSegments, getValues } from '@/queries';
import { getValues } from '@/queries/sql';
import { getWebsiteSegments } from '@/queries/prisma';
import { z } from 'zod';
import { dateRangeParams, fieldsParam, searchParams } from '@/lib/schema';

View file

@ -4,7 +4,7 @@ import { json, unauthorized } from '@/lib/response';
import { uuid } from '@/lib/crypto';
import { getQueryFilters, parseRequest } from '@/lib/request';
import { pagingParams, searchParams } from '@/lib/schema';
import { createWebsite } from '@/queries';
import { createWebsite } from '@/queries/prisma';
import { getAllUserWebsitesIncludingTeamOwner, getUserWebsites } from '@/queries/prisma/website';
export async function GET(request: Request) {