WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Function buildTextSearchFilter

    • Builds Prisma text search filter for multiple fields with case-insensitive matching.

      This utility creates a Prisma where clause that searches for the given text across multiple specified fields using case-insensitive contains matching. It generates an OR condition that matches any of the specified fields, enabling flexible full-text search capabilities.

      Parameters

      • search: string

        Search term to look for

      • fields: string[]

        Array of field names to search within

      Returns
          | { OR?: undefined }
          | { OR: { [key: string]: { contains: string; mode: "insensitive" } }[] }

      Prisma where clause object with OR conditions

      // Search across course name and description
      const searchFilter = buildTextSearchFilter('javascript', ['name', 'description']);
      // Returns: {
      // OR: [
      // { name: { contains: 'javascript', mode: 'insensitive' } },
      // { description: { contains: 'javascript', mode: 'insensitive' } }
      // ]
      // }
      // Empty search or no fields returns empty object
      const emptyFilter = buildTextSearchFilter('', ['name']);
      // Returns: {}