feat: add IngredientsClassesGateway

WORK-RRE
Rémi REGNAULT 1 year ago
parent 3e2a04c1ef
commit 948045dced

@ -0,0 +1,36 @@
import { Connection } from "../database/connection"
import { IngredientsClasses } from "../types/ingredientsClasses"
export class IngredientsClassesGateway {
connection: Connection
constructor() {
this.connection = new Connection()
}
async getForIngredient(id: number): Promise<IngredientsClasses[]> {
const client = await this.connection.getPoolClient()
let classes : IngredientsClasses[] = []
const query = {
text: 'SELECT name FROM Composed, IngredientsClasses WHERE idIngredient = $1 AND idClass = id',
values: [id],
}
const res = await client.query(query)
client.release()
for (let row of res.rows) {
const classNameString: string = row.name;
const classNameEnum: IngredientsClasses = IngredientsClasses[classNameString as keyof typeof IngredientsClasses];
if (classNameEnum !== undefined) {
classes.push(classNameEnum);
}
}
return classes
}
}

@ -1,4 +1,4 @@
enum IngredientsClasses { export enum IngredientsClasses {
DairyFree = 'DAIRY_FREE', DairyFree = 'DAIRY_FREE',
GlutenFree = 'GLUTEN_FREE', GlutenFree = 'GLUTEN_FREE',
Porcless = 'PORCLESS', Porcless = 'PORCLESS',

Loading…
Cancel
Save