diff --git a/server/routers/client/listClients.ts b/server/routers/client/listClients.ts index 9ba7c684..b7eec8e4 100644 --- a/server/routers/client/listClients.ts +++ b/server/routers/client/listClients.ts @@ -20,9 +20,9 @@ import { asc, desc, eq, - ilike, inArray, isNull, + like, or, sql, type SQL @@ -305,7 +305,14 @@ export async function listClients( } if (query) { - conditions.push(or(ilike(clients.name, "%" + query + "%"))); + conditions.push( + or( + like( + sql`LOWER(${clients.name})`, + "%" + query.toLowerCase() + "%" + ) + ) + ); } const baseQuery = queryClientsBase().where(and(...conditions)); diff --git a/server/routers/client/listUserDevices.ts b/server/routers/client/listUserDevices.ts index 65dba7e6..83012fa1 100644 --- a/server/routers/client/listUserDevices.ts +++ b/server/routers/client/listUserDevices.ts @@ -20,10 +20,10 @@ import { asc, desc, eq, - ilike, inArray, isNotNull, isNull, + like, or, sql, type SQL @@ -287,8 +287,14 @@ export async function listUserDevices( if (query) { conditions.push( or( - ilike(clients.name, "%" + query + "%"), - ilike(users.email, "%" + query + "%") + like( + sql`LOWER(${clients.name})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${users.email})`, + "%" + query.toLowerCase() + "%" + ) ) ); } diff --git a/server/routers/resource/listResources.ts b/server/routers/resource/listResources.ts index 090ea971..66778723 100644 --- a/server/routers/resource/listResources.ts +++ b/server/routers/resource/listResources.ts @@ -1,39 +1,37 @@ -import { Request, Response, NextFunction } from "express"; -import { z } from "zod"; import { db, resourceHeaderAuth, - resourceHeaderAuthExtendedCompatibility -} from "@server/db"; -import { - resources, - userResources, - roleResources, + resourceHeaderAuthExtendedCompatibility, resourcePassword, resourcePincode, + resources, + roleResources, + targetHealthCheck, targets, - targetHealthCheck + userResources } from "@server/db"; import response from "@server/lib/response"; +import logger from "@server/logger"; +import { OpenAPITags, registry } from "@server/openApi"; import HttpCode from "@server/types/HttpCode"; -import createHttpError from "http-errors"; +import type { PaginatedResponse } from "@server/types/Pagination"; import { - sql, - eq, - or, - inArray, and, - count, - ilike, asc, - not, + count, + eq, + inArray, isNull, + like, + not, + or, + sql, type SQL } from "drizzle-orm"; -import logger from "@server/logger"; +import { NextFunction, Request, Response } from "express"; +import createHttpError from "http-errors"; +import { z } from "zod"; import { fromZodError } from "zod-validation-error"; -import { OpenAPITags, registry } from "@server/openApi"; -import type { PaginatedResponse } from "@server/types/Pagination"; const listResourcesParamsSchema = z.strictObject({ orgId: z.string() @@ -278,8 +276,14 @@ export async function listResources( if (query) { conditions.push( or( - ilike(resources.name, "%" + query + "%"), - ilike(resources.fullDomain, "%" + query + "%") + like( + sql`LOWER(${resources.name})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${resources.fullDomain})`, + "%" + query.toLowerCase() + "%" + ) ) ); } diff --git a/server/routers/site/listSites.ts b/server/routers/site/listSites.ts index cc292499..0bd96cac 100644 --- a/server/routers/site/listSites.ts +++ b/server/routers/site/listSites.ts @@ -1,28 +1,25 @@ -import { db, exitNodes, newts } from "@server/db"; -import { orgs, roleSites, sites, userSites } from "@server/db"; -import { remoteExitNodes } from "@server/db"; -import logger from "@server/logger"; -import HttpCode from "@server/types/HttpCode"; -import response from "@server/lib/response"; import { - and, - asc, - count, - desc, - eq, - ilike, - inArray, - or, - sql -} from "drizzle-orm"; + db, + exitNodes, + newts, + orgs, + remoteExitNodes, + roleSites, + sites, + userSites +} from "@server/db"; +import cache from "@server/lib/cache"; +import response from "@server/lib/response"; +import logger from "@server/logger"; +import { OpenAPITags, registry } from "@server/openApi"; +import HttpCode from "@server/types/HttpCode"; +import type { PaginatedResponse } from "@server/types/Pagination"; +import { and, asc, desc, eq, inArray, like, or, sql } from "drizzle-orm"; import { NextFunction, Request, Response } from "express"; import createHttpError from "http-errors"; +import semver from "semver"; import { z } from "zod"; import { fromError } from "zod-validation-error"; -import { OpenAPITags, registry } from "@server/openApi"; -import semver from "semver"; -import cache from "@server/lib/cache"; -import type { PaginatedResponse } from "@server/types/Pagination"; async function getLatestNewtVersion(): Promise { try { @@ -233,8 +230,14 @@ export async function listSites( if (query) { conditions.push( or( - ilike(sites.name, "%" + query + "%"), - ilike(sites.niceId, "%" + query + "%") + like( + sql`LOWER(${sites.name})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${sites.niceId})`, + "%" + query.toLowerCase() + "%" + ) ) ); } diff --git a/server/routers/siteResource/listAllSiteResourcesByOrg.ts b/server/routers/siteResource/listAllSiteResourcesByOrg.ts index f15d2ecc..1b376741 100644 --- a/server/routers/siteResource/listAllSiteResourcesByOrg.ts +++ b/server/routers/siteResource/listAllSiteResourcesByOrg.ts @@ -1,15 +1,14 @@ -import { Request, Response, NextFunction } from "express"; -import { z } from "zod"; -import { db, resources } from "@server/db"; -import { siteResources, sites, SiteResource } from "@server/db"; +import { db, SiteResource, siteResources, sites } from "@server/db"; import response from "@server/lib/response"; -import HttpCode from "@server/types/HttpCode"; -import createHttpError from "http-errors"; -import { eq, and, asc, ilike, or } from "drizzle-orm"; -import { fromError } from "zod-validation-error"; import logger from "@server/logger"; import { OpenAPITags, registry } from "@server/openApi"; +import HttpCode from "@server/types/HttpCode"; import type { PaginatedResponse } from "@server/types/Pagination"; +import { and, asc, eq, like, or, sql } from "drizzle-orm"; +import { NextFunction, Request, Response } from "express"; +import createHttpError from "http-errors"; +import { z } from "zod"; +import { fromError } from "zod-validation-error"; const listAllSiteResourcesByOrgParamsSchema = z.strictObject({ orgId: z.string() @@ -118,11 +117,26 @@ export async function listAllSiteResourcesByOrg( if (query) { conditions.push( or( - ilike(siteResources.name, "%" + query + "%"), - ilike(siteResources.destination, "%" + query + "%"), - ilike(siteResources.alias, "%" + query + "%"), - ilike(siteResources.aliasAddress, "%" + query + "%"), - ilike(sites.name, "%" + query + "%") + like( + sql`LOWER(${siteResources.name})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${siteResources.destination})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${siteResources.alias})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${siteResources.aliasAddress})`, + "%" + query.toLowerCase() + "%" + ), + like( + sql`LOWER(${sites.name})`, + "%" + query.toLowerCase() + "%" + ) ) ); }