mirror of
https://github.com/umami-software/umami.git
synced 2026-02-07 14:17:13 +01:00
Teams context settings.
This commit is contained in:
parent
4429198397
commit
8f853ddb97
77 changed files with 317 additions and 272 deletions
|
|
@ -1,7 +1,8 @@
|
|||
import { TeamUser } from '@prisma/client';
|
||||
import { Prisma, TeamUser } from '@prisma/client';
|
||||
import { uuid } from 'lib/crypto';
|
||||
import prisma from 'lib/prisma';
|
||||
import { FilterResult, TeamUserSearchFilter } from 'lib/types';
|
||||
import TeamUserFindManyArgs = Prisma.TeamUserFindManyArgs;
|
||||
|
||||
export async function getTeamUser(teamId: string, userId: string): Promise<TeamUser> {
|
||||
return prisma.client.teamUser.findFirst({
|
||||
|
|
@ -13,23 +14,29 @@ export async function getTeamUser(teamId: string, userId: string): Promise<TeamU
|
|||
}
|
||||
|
||||
export async function getTeamUsers(
|
||||
teamId: string,
|
||||
criteria: TeamUserFindManyArgs,
|
||||
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,
|
||||
},
|
||||
};
|
||||
|
||||
return prisma.pagedQuery(
|
||||
'teamUser',
|
||||
{
|
||||
where: {
|
||||
teamId,
|
||||
},
|
||||
include: {
|
||||
user: {
|
||||
select: {
|
||||
id: true,
|
||||
username: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
...criteria,
|
||||
where,
|
||||
},
|
||||
filters,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -28,37 +28,23 @@ export async function getWebsites(
|
|||
criteria: WebsiteFindManyArgs,
|
||||
filters: WebsiteSearchFilter,
|
||||
): Promise<FilterResult<Website[]>> {
|
||||
const { userId, teamId, query } = filters;
|
||||
const { query } = filters;
|
||||
const mode = prisma.getQueryMode();
|
||||
|
||||
const where: Prisma.WebsiteWhereInput = {
|
||||
...criteria.where,
|
||||
AND: [
|
||||
{
|
||||
OR: [
|
||||
{
|
||||
...(userId && { userId }),
|
||||
...(teamId && { teamId }),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
OR: query
|
||||
? [
|
||||
{
|
||||
name: { contains: query, mode },
|
||||
},
|
||||
{
|
||||
domain: { contains: query, mode },
|
||||
},
|
||||
]
|
||||
: [],
|
||||
},
|
||||
],
|
||||
name: {
|
||||
contains: query ? query : undefined,
|
||||
mode,
|
||||
},
|
||||
domain: {
|
||||
contains: query ? query : undefined,
|
||||
mode,
|
||||
},
|
||||
deletedAt: null,
|
||||
};
|
||||
|
||||
return prisma.pagedQuery('website', { where }, filters);
|
||||
return prisma.pagedQuery('website', { ...criteria, where }, filters);
|
||||
}
|
||||
|
||||
export async function getAllWebsites(userId: string) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue