Updated search queries.

This commit is contained in:
Mike Cao 2024-02-03 23:19:29 -08:00
parent 80a58cbdd1
commit e971f2533d
12 changed files with 90 additions and 147 deletions

View file

@ -20,68 +20,30 @@ export async function getReports(
criteria: ReportFindManyArgs,
filters: ReportSearchFilter = {},
): Promise<FilterResult<Report[]>> {
const mode = prisma.getQueryMode();
const { query, userId, websiteId } = filters;
const { query } = filters;
const where: Prisma.ReportWhereInput = {
userId,
websiteId,
...criteria.where,
AND: [
...prisma.getSearchParameters(query, [
{ name: 'contains' },
{ description: 'contains' },
{ type: 'contains' },
{
OR: [
{
userId,
},
],
user: {
username: 'contains',
},
},
{
OR: [
{
name: {
contains: query,
mode,
},
},
{
description: {
contains: query,
mode,
},
},
{
type: {
contains: query,
mode,
},
},
{
user: {
username: {
contains: query,
mode,
},
},
},
{
website: {
name: {
contains: query,
mode,
},
},
},
{
website: {
domain: {
contains: query,
mode,
},
},
},
],
website: {
name: 'contains',
},
},
],
{
website: {
domain: 'contains',
},
},
]),
};
return prisma.pagedQuery('report', { ...criteria, where }, filters);

View file

@ -24,41 +24,12 @@ export async function getTeams(
criteria: TeamFindManyArgs,
filters: TeamSearchFilter = {},
): Promise<FilterResult<Team[]>> {
const mode = prisma.getQueryMode();
const { userId, query } = filters;
const { getSearchParameters } = prisma;
const { query } = filters;
const where: Prisma.TeamWhereInput = {
...criteria.where,
...(userId && {
teamUser: {
some: { userId },
},
}),
...(query && {
AND: {
OR: [
{
name: {
startsWith: query,
mode,
},
},
{
teamUser: {
some: {
role: ROLES.teamOwner,
user: {
username: {
startsWith: query,
mode,
},
},
},
},
},
],
},
}),
...getSearchParameters(query, [{ name: 'contains' }]),
};
return prisma.pagedQuery<TeamFindManyArgs>(

View file

@ -18,18 +18,10 @@ export async function getTeamUsers(
filters?: TeamUserSearchFilter,
): Promise<FilterResult<TeamUser[]>> {
const { query } = filters;
const mode = prisma.getQueryMode();
const where: Prisma.TeamUserWhereInput = {
...criteria.where,
user: {
username: query
? {
contains: query,
mode,
}
: undefined,
},
...prisma.getSearchParameters(query, [{ user: { username: 'contains' } }]),
};
return prisma.pagedQuery(

View file

@ -52,29 +52,11 @@ export async function getUsers(
criteria: UserFindManyArgs,
filters?: UserSearchFilter,
): Promise<FilterResult<User[]>> {
const { teamId, query } = filters;
const mode = prisma.getQueryMode();
const { query } = filters;
const where: Prisma.UserWhereInput = {
...(teamId && {
teamUser: {
some: {
teamId,
},
},
}),
...(query && {
AND: {
OR: [
{
username: {
contains: query,
mode,
},
},
],
},
}),
...criteria.where,
...prisma.getSearchParameters(query, [{ username: 'contains' }]),
deletedAt: null,
};