Add method to retrieve files for a specific machine
This commit introduces the `findFilesForMachine` method, which retrieves files associated with a given machine ID from the database. It includes functionality to limit and offset the results based on given parameters, and throws a `NotFoundException` if the machine ID is not found.
This commit is contained in:
parent
289ec09868
commit
3844153340
@ -1,7 +1,10 @@
|
|||||||
import { Injectable } from "@nestjs/common";
|
import { Injectable, NotFoundException } from "@nestjs/common";
|
||||||
import { DbService } from "apps/backend/src/app/db/db.service";
|
import { DbService } from "apps/backend/src/app/db/db.service";
|
||||||
import { MachinesTable } from "apps/backend/src/app/db/schema";
|
import {
|
||||||
import { ilike } from "drizzle-orm";
|
FilesForMachinesTable,
|
||||||
|
MachinesTable,
|
||||||
|
} from "apps/backend/src/app/db/schema";
|
||||||
|
import { eq, ilike } from "drizzle-orm";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class MachinesService {
|
export class MachinesService {
|
||||||
@ -35,5 +38,40 @@ export class MachinesService {
|
|||||||
|
|
||||||
//TODO a method to delete a machine and delete the associated FilesTypeForMachine row
|
//TODO a method to delete a machine and delete the associated FilesTypeForMachine row
|
||||||
|
|
||||||
//TODO a method to get the files of a group in the database by a specific search with limit, offset and a search field (can be blank)
|
/**
|
||||||
|
* Retrieves a list of files associated with a specific machine from the database.
|
||||||
|
*
|
||||||
|
* @param {number} limit - The maximum number of files to retrieve.
|
||||||
|
* @param {number} offset - The offset from which to start retrieving files.
|
||||||
|
* @param {string} searchField - The specific field to search within the files.
|
||||||
|
* @param {string} machineId - The unique identifier of the machine.
|
||||||
|
* @return {Promise<Array>} A promise that resolves to an array of file records for the machine.
|
||||||
|
* @throws {NotFoundException} If the machine with the given id is not found.
|
||||||
|
*/
|
||||||
|
async findFilesForMachine(
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
searchField: string,
|
||||||
|
machineId: string,
|
||||||
|
) {
|
||||||
|
const existingMachine = await this.database
|
||||||
|
.use()
|
||||||
|
.select()
|
||||||
|
.from(MachinesTable)
|
||||||
|
.where(eq(MachinesTable.id, machineId))
|
||||||
|
.prepare("findMachineById")
|
||||||
|
.execute();
|
||||||
|
if (existingMachine.length !== 1)
|
||||||
|
throw new NotFoundException("Machine id not found.");
|
||||||
|
|
||||||
|
return await this.database
|
||||||
|
.use()
|
||||||
|
.select()
|
||||||
|
.from(FilesForMachinesTable)
|
||||||
|
.where(eq(FilesForMachinesTable.machineId, machineId))
|
||||||
|
.limit(limit)
|
||||||
|
.offset(offset)
|
||||||
|
.prepare("findFilesForMachineId")
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user