feat: searching for one ingredient in local db is working, searching for all ingredient in local db is working

pull/2/head
Rémi REGNAULT 1 year ago
parent 5885504c18
commit 337fd3ce96

@ -15,10 +15,12 @@
"morgan": "^1.10.0", "morgan": "^1.10.0",
"nodemon": "^3.0.1", "nodemon": "^3.0.1",
"pg": "^8.11.3", "pg": "^8.11.3",
"pg-promise": "^11.5.4",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"tsup": "^7.2.0", "tsup": "^7.2.0",
"typescript": "^5.2.2" "typescript": "^5.2.2"
},
"devDependencies": {
"@types/pg": "^8.10.9"
} }
}, },
"node_modules/@cspotcode/source-map-support": { "node_modules/@cspotcode/source-map-support": {
@ -522,6 +524,74 @@
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
} }
}, },
"node_modules/@types/pg": {
"version": "8.10.9",
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.10.9.tgz",
"integrity": "sha512-UksbANNE/f8w0wOMxVKKIrLCbEMV+oM1uKejmwXr39olg4xqcfBDbXxObJAt6XxHbDa4XTKOlUEcEltXDX+XLQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
"pg-protocol": "*",
"pg-types": "^4.0.1"
}
},
"node_modules/@types/pg/node_modules/pg-types": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.1.tgz",
"integrity": "sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g==",
"dev": true,
"dependencies": {
"pg-int8": "1.0.1",
"pg-numeric": "1.0.2",
"postgres-array": "~3.0.1",
"postgres-bytea": "~3.0.0",
"postgres-date": "~2.0.1",
"postgres-interval": "^3.0.0",
"postgres-range": "^1.1.1"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@types/pg/node_modules/postgres-array": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz",
"integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==",
"dev": true,
"engines": {
"node": ">=12"
}
},
"node_modules/@types/pg/node_modules/postgres-bytea": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz",
"integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==",
"dev": true,
"dependencies": {
"obuf": "~1.1.2"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/@types/pg/node_modules/postgres-date": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.0.1.tgz",
"integrity": "sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw==",
"dev": true,
"engines": {
"node": ">=12"
}
},
"node_modules/@types/pg/node_modules/postgres-interval": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz",
"integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==",
"dev": true,
"engines": {
"node": ">=12"
}
},
"node_modules/@types/qs": { "node_modules/@types/qs": {
"version": "6.9.10", "version": "6.9.10",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz",
@ -622,14 +692,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/assert-options": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.8.1.tgz",
"integrity": "sha512-5lNGRB5g5i2bGIzb+J1QQE1iKU/WEMVBReFIc5pPDWjcPj23otPL0eI6PB2v7QPi0qU6Mhym5D3y0ZiSIOf3GA==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/balanced-match": { "node_modules/balanced-match": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@ -1660,6 +1722,12 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/obuf": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
"integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
"dev": true
},
"node_modules/on-finished": { "node_modules/on-finished": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@ -1790,12 +1858,13 @@
"node": ">=4.0.0" "node": ">=4.0.0"
} }
}, },
"node_modules/pg-minify": { "node_modules/pg-numeric": {
"version": "1.6.3", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.3.tgz", "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz",
"integrity": "sha512-NoSsPqXxbkD8RIe+peQCqiea4QzXgosdTKY8p7PsbbGsh2F8TifDj/vJxfuR8qJwNYrijdSs7uf0tAe6WOyCsQ==", "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==",
"dev": true,
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=4"
} }
}, },
"node_modules/pg-pool": { "node_modules/pg-pool": {
@ -1806,20 +1875,6 @@
"pg": ">=8.0" "pg": ">=8.0"
} }
}, },
"node_modules/pg-promise": {
"version": "11.5.4",
"resolved": "https://registry.npmjs.org/pg-promise/-/pg-promise-11.5.4.tgz",
"integrity": "sha512-esYSkDt2h6NQOkfotGAm1Ld5OjoITJLpB88Z1PIlcAU/RQ0XQE2PxW0bLJEOMHPGV5iaRnj1Y7ARznXbgN4FNw==",
"dependencies": {
"assert-options": "0.8.1",
"pg": "8.11.3",
"pg-minify": "1.6.3",
"spex": "3.3.0"
},
"engines": {
"node": ">=14.0"
}
},
"node_modules/pg-protocol": { "node_modules/pg-protocol": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz",
@ -1930,6 +1985,12 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/postgres-range": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.3.tgz",
"integrity": "sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==",
"dev": true
},
"node_modules/proxy-addr": { "node_modules/proxy-addr": {
"version": "2.0.7", "version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@ -2241,14 +2302,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/spex": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/spex/-/spex-3.3.0.tgz",
"integrity": "sha512-VNiXjFp6R4ldPbVRYbpxlD35yRHceecVXlct1J4/X80KuuPnW2AXMq3sGwhnJOhKkUsOxAT6nRGfGE5pocVw5w==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/split2": { "node_modules/split2": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",

@ -17,9 +17,11 @@
"morgan": "^1.10.0", "morgan": "^1.10.0",
"nodemon": "^3.0.1", "nodemon": "^3.0.1",
"pg": "^8.11.3", "pg": "^8.11.3",
"pg-promise": "^11.5.4",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"tsup": "^7.2.0", "tsup": "^7.2.0",
"typescript": "^5.2.2" "typescript": "^5.2.2"
},
"devDependencies": {
"@types/pg": "^8.10.9"
} }
} }

@ -3,19 +3,20 @@ import { Router } from "express";
import { Exceptions } from "../utils/exception"; import { Exceptions } from "../utils/exception";
import { IIngredient } from "../types/ingredients"; import { IIngredient } from "../types/ingredients";
import { pool } from "../database/connection"; import { pool } from "../database/connection";
import { queryResult } from "pg-promise"; import { QueryResult } from "pg";
const IngredientsController = Router() const IngredientsController = Router()
/** To get all ingredients */ /** To get all ingredients */
IngredientsController.get('/', (req, res) => { IngredientsController.get('/', (req, res) => {
pool.query('SELECT * FROM Ingredients ORDER BY id', (error: Error, results: queryResult) => { pool.query({text:'SELECT * FROM Ingredients ORDER BY id'}, (error: Error, results: QueryResult) => {
if (error) { if (error) {
throw(error) throw(error)
} }
res.status(200); res.status(200);
res.send("Liste des ingredients").json(results); res.json(results.rows);
}) })
return res; return res;
@ -29,8 +30,19 @@ IngredientsController.get('/:id', (req, res) => {
throw new Exceptions.BadRequestException('id invalid !'); throw new Exceptions.BadRequestException('id invalid !');
} }
res.send(`Searching for ingredient with id = ${id}...`); pool.query({text:'SELECT * FROM Ingredients WHERE id =$1',
res.status(200); values: [id]}, (error: Error, results: QueryResult) => {
if (error) {
throw(error)
}
if (results.rowCount == 0) {
throw new Exceptions.NotFoundException('no ingredient with this id');
}
res.status(200)
res.json(results.rows)
})
return res; return res;
}) })

@ -3,6 +3,6 @@ export const pool = new Pool({
user: 'rgregnault', user: 'rgregnault',
host: 'localhost', host: 'localhost',
database: 'leftovers', database: 'leftovers',
password: 'Cl@ssicP@ssw0rd', password: 'motdepasse',
port: 5432, port: 5432,
}) })
Loading…
Cancel
Save