Skip to content

Commit 28cc9a5

Browse files
committed
Run tag and waitpoint tags use startsWith for faster search
1 parent d860b97 commit 28cc9a5

3 files changed

Lines changed: 12 additions & 18 deletions

File tree

apps/webapp/app/presenters/v3/RunTagListPresenter.server.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { logger } from "~/services/logger.server";
21
import { BasePresenter } from "./basePresenter.server";
32

43
export type TagListOptions = {
@@ -24,14 +23,14 @@ export class RunTagListPresenter extends BasePresenter {
2423
page = 1,
2524
pageSize = DEFAULT_PAGE_SIZE,
2625
}: TagListOptions) {
27-
const hasFilters = name;
26+
const hasFilters = Boolean(name?.trim());
2827

2928
const tags = await this._replica.taskRunTag.findMany({
3029
where: {
3130
projectId,
3231
name: name
3332
? {
34-
contains: name,
33+
startsWith: name,
3534
mode: "insensitive",
3635
}
3736
: undefined,
@@ -43,12 +42,6 @@ export class RunTagListPresenter extends BasePresenter {
4342
skip: (page - 1) * pageSize,
4443
});
4544

46-
logger.log("tags", {
47-
tags,
48-
projectId,
49-
name,
50-
});
51-
5245
return {
5346
tags: tags
5447
.map((tag) => ({

apps/webapp/app/presenters/v3/WaitpointTagListPresenter.server.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import { logger } from "~/services/logger.server";
21
import { BasePresenter } from "./basePresenter.server";
32

43
export type TagListOptions = {
54
environmentId: string;
6-
names?: string[];
5+
name?: string;
76
//pagination
87
page?: number;
98
pageSize?: number;
@@ -17,19 +16,21 @@ export type TagListItem = TagList["tags"][number];
1716
export class WaitpointTagListPresenter extends BasePresenter {
1817
public async call({
1918
environmentId,
20-
names,
19+
name,
2120
page = 1,
2221
pageSize = DEFAULT_PAGE_SIZE,
2322
}: TagListOptions) {
24-
const hasFilters = names !== undefined && names.length > 0;
23+
const hasFilters = Boolean(name?.trim());
2524

2625
const tags = await this._replica.waitpointTag.findMany({
2726
where: {
2827
environmentId,
29-
OR:
30-
names && names.length > 0
31-
? names.map((name) => ({ name: { contains: name, mode: "insensitive" } }))
32-
: undefined,
28+
name: name
29+
? {
30+
startsWith: name,
31+
mode: "insensitive",
32+
}
33+
: undefined,
3334
},
3435
orderBy: {
3536
id: "desc",

apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tags.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
3131
const presenter = new WaitpointTagListPresenter();
3232
const result = await presenter.call({
3333
environmentId: environment.id,
34-
names: name ? [decodeURIComponent(name)] : undefined,
34+
name: name ? decodeURIComponent(name) : undefined,
3535
});
3636
return result;
3737
}

0 commit comments

Comments
 (0)