Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions apps/fruit-search/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.env
.git
.gitignore
.dockerignore
node_modules
Dockerfile
23 changes: 23 additions & 0 deletions apps/fruit-search/app/controllers/fruitController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const fs = require('fs');

const getFruits = () => {
const data = fs.readFileSync('app/fruits.json', 'utf8');
return JSON.parse(data);
};

const fetchFruits = (req, res) => {
try {
const fruits = getFruits();
const query = req.query.q ? req.query.q.toLowerCase() : '';

const filteredFruits = fruits.filter(fruit =>
fruit.name.toLowerCase().includes(query)
);

res.json(filteredFruits);
} catch (error) {
res.status(500).json({ error: 'Failed to load fruits' });
}
};

module.exports = { fetchFruits };
79 changes: 79 additions & 0 deletions apps/fruit-search/app/fruits.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
[
{ "name": "Apple" },
{ "name": "Apricot" },
{ "name": "Avocado" },
{ "name": "Banana" },
{ "name": "Blackberry" },
{ "name": "Blueberry" },
{ "name": "Boysenberry" },
{ "name": "Cantaloupe" },
{ "name": "Cherimoya" },
{ "name": "Cherry" },
{ "name": "Clementine" },
{ "name": "Coconut" },
{ "name": "Cranberry" },
{ "name": "Currant" },
{ "name": "Date" },
{ "name": "Dragonfruit" },
{ "name": "Durian" },
{ "name": "Elderberry" },
{ "name": "Eggfruit" },
{ "name": "Feijoa" },
{ "name": "Fig" },
{ "name": "Goji Berry" },
{ "name": "Gooseberry" },
{ "name": "Grapefruit" },
{ "name": "Grapes" },
{ "name": "Guava" },
{ "name": "Honeydew" },
{ "name": "Huckleberry" },
{ "name": "Hog Plum" },
{ "name": "Indian Fig" },
{ "name": "Illawarra Plum" },
{ "name": "Jackfruit" },
{ "name": "Jambul" },
{ "name": "Jujube" },
{ "name": "Kiwi" },
{ "name": "Kumquat" },
{ "name": "Kaffir Lime" },
{ "name": "Lemon" },
{ "name": "Lime" },
{ "name": "Longan" },
{ "name": "Loquat" },
{ "name": "Lychee" },
{ "name": "Mangosteen" },
{ "name": "Mandarin" },
{ "name": "Mango" },
{ "name": "Mulberry" },
{ "name": "Nectarine" },
{ "name": "Nance" },
{ "name": "Orange" },
{ "name": "Olive" },
{ "name": "Papaya" },
{ "name": "Passionfruit" },
{ "name": "Peach" },
{ "name": "Pear" },
{ "name": "Persimmon" },
{ "name": "Pineapple" },
{ "name": "Plum" },
{ "name": "Pomegranate" },
{ "name": "Quince" },
{ "name": "Raspberry" },
{ "name": "Redcurrant" },
{ "name": "Rambutan" },
{ "name": "Starfruit" },
{ "name": "Strawberry" },
{ "name": "Sapodilla" },
{ "name": "Tamarillo" },
{ "name": "Tangerine" },
{ "name": "Ugli Fruit" },
{ "name": "Umbu" },
{ "name": "Vanilla Bean" },
{ "name": "Voavanga" },
{ "name": "Watermelon" },
{ "name": "White Sapote" },
{ "name": "Xigua" },
{ "name": "Yangmei" },
{ "name": "Yellow Passionfruit" },
{ "name": "Ziziphus" }
]
8 changes: 8 additions & 0 deletions apps/fruit-search/app/routes/fruitRoutes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const express = require('express');
const { fetchFruits } = require('../controllers/fruitController');

const router = express.Router();

router.get('/fruits', fetchFruits);

module.exports = router;
Loading
Loading