mirror of
https://github.com/umami-software/umami.git
synced 2026-02-06 13:47:15 +01:00
Refactor filter handling for queries.
This commit is contained in:
parent
5b300f1ff5
commit
ee6c68d27c
107 changed files with 731 additions and 835 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import { Prisma, Report } from '@/generated/prisma/client';
|
||||
import prisma from '@/lib/prisma';
|
||||
import { PageResult, PageParams } from '@/lib/types';
|
||||
import { PageResult, QueryFilters } from '@/lib/types';
|
||||
import ReportFindManyArgs = Prisma.ReportFindManyArgs;
|
||||
|
||||
async function findReport(criteria: Prisma.ReportFindUniqueArgs): Promise<Report> {
|
||||
|
|
@ -17,9 +17,9 @@ export async function getReport(reportId: string): Promise<Report> {
|
|||
|
||||
export async function getReports(
|
||||
criteria: ReportFindManyArgs,
|
||||
pageParams: PageParams = {},
|
||||
filters: QueryFilters = {},
|
||||
): Promise<PageResult<Report[]>> {
|
||||
const { search } = pageParams;
|
||||
const { search } = filters;
|
||||
|
||||
const where: Prisma.ReportWhereInput = {
|
||||
...criteria.where,
|
||||
|
|
@ -45,12 +45,12 @@ export async function getReports(
|
|||
]),
|
||||
};
|
||||
|
||||
return prisma.pagedQuery('report', { ...criteria, where }, pageParams);
|
||||
return prisma.pagedQuery('report', { ...criteria, where }, filters);
|
||||
}
|
||||
|
||||
export async function getUserReports(
|
||||
userId: string,
|
||||
filters?: PageParams,
|
||||
filters?: QueryFilters,
|
||||
): Promise<PageResult<Report[]>> {
|
||||
return getReports(
|
||||
{
|
||||
|
|
@ -72,7 +72,7 @@ export async function getUserReports(
|
|||
|
||||
export async function getWebsiteReports(
|
||||
websiteId: string,
|
||||
filters: PageParams = {},
|
||||
filters: QueryFilters = {},
|
||||
): Promise<PageResult<Report[]>> {
|
||||
return getReports(
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { Prisma, Team } from '@/generated/prisma/client';
|
|||
import { ROLES } from '@/lib/constants';
|
||||
import { uuid } from '@/lib/crypto';
|
||||
import prisma from '@/lib/prisma';
|
||||
import { PageResult, PageParams } from '@/lib/types';
|
||||
import { PageResult, QueryFilters } from '@/lib/types';
|
||||
import TeamFindManyArgs = Prisma.TeamFindManyArgs;
|
||||
|
||||
export async function findTeam(criteria: Prisma.TeamFindUniqueArgs): Promise<Team> {
|
||||
|
|
@ -22,7 +22,7 @@ export async function getTeam(teamId: string, options: { includeMembers?: boolea
|
|||
|
||||
export async function getTeams(
|
||||
criteria: TeamFindManyArgs,
|
||||
filters: PageParams = {},
|
||||
filters: QueryFilters,
|
||||
): Promise<PageResult<Team[]>> {
|
||||
const { getSearchParameters } = prisma;
|
||||
const { search } = filters;
|
||||
|
|
@ -42,7 +42,7 @@ export async function getTeams(
|
|||
);
|
||||
}
|
||||
|
||||
export async function getUserTeams(userId: string, filters: PageParams = {}) {
|
||||
export async function getUserTeams(userId: string, filters: QueryFilters) {
|
||||
return getTeams(
|
||||
{
|
||||
where: {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Prisma, TeamUser } from '@/generated/prisma/client';
|
||||
import { uuid } from '@/lib/crypto';
|
||||
import prisma from '@/lib/prisma';
|
||||
import { PageResult, PageParams } from '@/lib/types';
|
||||
import { PageResult, QueryFilters } from '@/lib/types';
|
||||
import TeamUserFindManyArgs = Prisma.TeamUserFindManyArgs;
|
||||
|
||||
export async function findTeamUser(criteria: Prisma.TeamUserFindUniqueArgs): Promise<TeamUser> {
|
||||
|
|
@ -19,7 +19,7 @@ export async function getTeamUser(teamId: string, userId: string): Promise<TeamU
|
|||
|
||||
export async function getTeamUsers(
|
||||
criteria: TeamUserFindManyArgs,
|
||||
filters?: PageParams,
|
||||
filters?: QueryFilters,
|
||||
): Promise<PageResult<TeamUser[]>> {
|
||||
const { search } = filters;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Prisma, User } from '@/generated/prisma/client';
|
||||
import { ROLES } from '@/lib/constants';
|
||||
import prisma from '@/lib/prisma';
|
||||
import { PageResult, Role, PageParams } from '@/lib/types';
|
||||
import { PageResult, Role, QueryFilters } from '@/lib/types';
|
||||
import { getRandomChars } from '@/lib/crypto';
|
||||
import UserFindManyArgs = Prisma.UserFindManyArgs;
|
||||
|
||||
|
|
@ -49,9 +49,9 @@ export async function getUserByUsername(username: string, options: GetUserOption
|
|||
|
||||
export async function getUsers(
|
||||
criteria: UserFindManyArgs,
|
||||
pageParams?: PageParams,
|
||||
filters: QueryFilters = {},
|
||||
): Promise<PageResult<User[]>> {
|
||||
const { search } = pageParams;
|
||||
const { search } = filters;
|
||||
|
||||
const where: Prisma.UserWhereInput = {
|
||||
...criteria.where,
|
||||
|
|
@ -68,7 +68,7 @@ export async function getUsers(
|
|||
{
|
||||
orderBy: 'createdAt',
|
||||
sortDescending: true,
|
||||
...pageParams,
|
||||
...filters,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Prisma, Website } from '@/generated/prisma/client';
|
||||
import redis from '@/lib/redis';
|
||||
import prisma from '@/lib/prisma';
|
||||
import { PageResult, PageParams } from '@/lib/types';
|
||||
import { PageResult, QueryFilters } from '@/lib/types';
|
||||
import WebsiteFindManyArgs = Prisma.WebsiteFindManyArgs;
|
||||
import { ROLES } from '@/lib/constants';
|
||||
|
||||
|
|
@ -28,9 +28,9 @@ export async function getSharedWebsite(shareId: string) {
|
|||
|
||||
export async function getWebsites(
|
||||
criteria: WebsiteFindManyArgs,
|
||||
pageParams: PageParams,
|
||||
filters: QueryFilters,
|
||||
): Promise<PageResult<Website[]>> {
|
||||
const { search } = pageParams;
|
||||
const { search } = filters;
|
||||
|
||||
const where: Prisma.WebsiteWhereInput = {
|
||||
...criteria.where,
|
||||
|
|
@ -43,7 +43,7 @@ export async function getWebsites(
|
|||
deletedAt: null,
|
||||
};
|
||||
|
||||
return prisma.pagedQuery('website', { ...criteria, where }, pageParams);
|
||||
return prisma.pagedQuery('website', { ...criteria, where }, filters);
|
||||
}
|
||||
|
||||
export async function getAllWebsites(userId: string) {
|
||||
|
|
@ -90,7 +90,7 @@ export async function getAllUserWebsitesIncludingTeamOwner(userId: string) {
|
|||
|
||||
export async function getUserWebsites(
|
||||
userId: string,
|
||||
filters?: PageParams,
|
||||
filters?: QueryFilters,
|
||||
): Promise<PageResult<Website[]>> {
|
||||
return getWebsites(
|
||||
{
|
||||
|
|
@ -115,7 +115,7 @@ export async function getUserWebsites(
|
|||
|
||||
export async function getTeamWebsites(
|
||||
teamId: string,
|
||||
filters?: PageParams,
|
||||
filters?: QueryFilters,
|
||||
): Promise<PageResult<Website[]>> {
|
||||
return getWebsites(
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue