Add method to search machines with limit and offset
Implemented `findMany` method to fetch machines based on a search field, applying limit and offset for pagination. Includes console logs for tracking search parameters and results.
This commit is contained in:
parent
52870aeb0d
commit
289ec09868
@ -1,11 +1,35 @@
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import { DbService } from "apps/backend/src/app/db/db.service";
|
||||
import { MachinesTable } from "apps/backend/src/app/db/schema";
|
||||
import { ilike } from "drizzle-orm";
|
||||
|
||||
@Injectable()
|
||||
export class MachinesService {
|
||||
constructor(private readonly database: DbService) {}
|
||||
|
||||
//TODO a method to fetch machines in the database by a specific search with limit, offset and a search field (can be blank)
|
||||
/**
|
||||
* Finds and returns a list of machines based on the given search parameters.
|
||||
*
|
||||
* @param {number} limit - The maximum number of machines to return.
|
||||
* @param {number} offset - The number of machines to skip before starting to collect the result set.
|
||||
* @param {string} searchField - The field to search within the machine names.
|
||||
*
|
||||
* @return {Promise<Array>} A promise that resolves to an array of found machines.
|
||||
*/
|
||||
async findMany(limit: number, offset: number, searchField: string) {
|
||||
console.log(`Searching machines. \nSearch : ${searchField}`);
|
||||
const machines = await this.database
|
||||
.use()
|
||||
.select()
|
||||
.from(MachinesTable)
|
||||
.where(ilike(MachinesTable.machineName, String(`%${searchField}%`)))
|
||||
.limit(limit)
|
||||
.offset(offset)
|
||||
.prepare("findMachineByName")
|
||||
.execute();
|
||||
console.log(`Found ${machines.length} machines.`);
|
||||
return machines;
|
||||
}
|
||||
|
||||
//TODO The method to create a machine
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user