diff --git a/API-Project/src/controllers/ingredientsClasses.controller.ts b/API-Project/src/controllers/ingredientsClasses.controller.ts new file mode 100644 index 0000000..f03865a --- /dev/null +++ b/API-Project/src/controllers/ingredientsClasses.controller.ts @@ -0,0 +1,33 @@ +import { Router } from "express"; +import { IngredientsClassesGateway } from "../gateways/ingredientsClasses.gateway"; + + +const IngredientsClassesController = Router() + +const class_gw: IngredientsClassesGateway = new IngredientsClassesGateway() + + +IngredientsClassesController.get('/ofingr/:id', async (req, res) => { + const id = Number(req.params.id); + + if (!Number.isInteger(id)) { + res.status(400).send('invalid parameter or no parameter') + return + } + + try { + const classes = await class_gw.getForIngredient(Number(id)) + + if (classes.length == 0) { + res.status(404).send('not found') + } + else { + res.status(200).json(classes) + } + } catch (error) { + const error_error = error as Error + res.status(500).send(error_error.message) + } +}) + +export { IngredientsClassesController } \ No newline at end of file diff --git a/API-Project/src/server.ts b/API-Project/src/server.ts index 7519f9e..820fad2 100644 --- a/API-Project/src/server.ts +++ b/API-Project/src/server.ts @@ -4,6 +4,8 @@ import cors from "cors"; import { IngredientsController } from "./controllers/ingredients.controller"; import { RecipesController } from "./controllers/recipes.controller"; import { StepsController } from "./controllers/steps.controller"; +import { IngredientsClassesGateway } from "./gateways/ingredientsClasses.gateway"; +import { IngredientsClassesController } from "./controllers/ingredientsClasses.controller"; let helmet = require("helmet"); const app = express(); @@ -21,6 +23,7 @@ app.get('/', (req, res) => { app.use('/ingredients', IngredientsController); app.use('/recipes', RecipesController); app.use('/steps', StepsController); +app.use('/class', IngredientsClassesController); const port = Number(process.env.PORT) || 3000;