From 56441dac01894e5d3f44eecbfd68006106b7d44b Mon Sep 17 00:00:00 2001 From: Vic Date: Thu, 19 May 2022 22:56:58 +0200 Subject: [PATCH] small fixes --- package.json | 6 ++- src/handlers/products.ts | 42 ++++++++++++++----- src/server.ts | 3 ++ src/tests/handlers/products_spec.ts | 1 + .../tests => tests/models}/product_spec.ts | 2 +- 5 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 src/tests/handlers/products_spec.ts rename src/{models/tests => tests/models}/product_spec.ts (96%) diff --git a/package.json b/package.json index 59e15f2..f77595c 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,21 @@ { - "name": "storefront_backend", + "name": "Shelf_backend", "version": "0.1.0", "description": "", "main": "server.ts", "scripts": { "start": "nodemon src/server.ts", + "dev": "db-migrate --env dev up && nodemon src/server.ts", "watch": "tsc-watch --esModuleInterop src/server.ts --outDir ./dist --onSuccess \"node ./dist/server.js\"", "test": "db-migrate --env test up && ENV=test jasmine-ts --config jasmine.json && db-migrate --env test down", "build": "npx tsc", + "up": "db-migrate up", + "down": "db-migrate down", "lint": "eslint --ext .ts", "prettier": "prettier \"src/**/*.ts\" --write", "tsc": "tsc" }, + "author": "AnisB", "license": "ISC", "dependencies": { diff --git a/src/handlers/products.ts b/src/handlers/products.ts index 393d541..84f02c1 100644 --- a/src/handlers/products.ts +++ b/src/handlers/products.ts @@ -4,28 +4,43 @@ import { Product, ProductStore } from '../models/product' const productRoutes = (app: express.Application) => { app.get('/products', index) app.get('/products/:id', show) - app.post('/products', create) + app.post('/products/create', create) + app.put('/products/:id', update) app.delete('/products/:id', destroy) } const store = new ProductStore() -const index = async (_req: Request, res: Response) => { +const index = async (req: Request, res: Response) => { + try { const products = await store.index(); res.json(products); + console.log('working products index') + } catch (err) { + console.log('error products index') + res.status(400) + res.json(err) + } + } const show = async (req: Request, res: Response) => { - const product = await store.show(req.params.id) + try { + const product = await store.show(parseInt(req.params.id)) res.json(product) + } catch (err) { + res.status(400) + res.json(err) + } + } const create = async (req: Request, res: Response) => { try { const productInfo: Product = { - name: request.body.name, - price: request.body.price, + name: req.body.name, + price: req.body.price, } const newProduct = await store.create(productInfo); @@ -41,17 +56,24 @@ const update = async (req: Request, res: Response) => { try { const product = await store.update(req.body); res.json({ - name: request.body.name, - price: request.body.price, + name: req.body.name, + price: req.body.price, }) } catch (err) { - throw new Error(`Can't update product. ${err}`) + res.status(400) + res.json(err) } } const destroy = async (req: Request, res: Response) => { - const deleted = await store.delete(req.body.id) - res.json(deleted) + try { + const deleted = await store.delete(req.body.id) + res.json(deleted) + } catch (err) { + res.status(400) + res.json(err) + } + } diff --git a/src/server.ts b/src/server.ts index 39089b2..e5ca115 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,5 +1,6 @@ import express, { Request, Response } from 'express' import bodyParser from 'body-parser' + import productRoutes from './handlers/products' const app: express.Application = express() @@ -20,4 +21,6 @@ app.listen(port, function () { console.log(`starting app on: ${address}`) }) + + export default app; diff --git a/src/tests/handlers/products_spec.ts b/src/tests/handlers/products_spec.ts new file mode 100644 index 0000000..a2aee43 --- /dev/null +++ b/src/tests/handlers/products_spec.ts @@ -0,0 +1 @@ +import sueprtest from "supertest" \ No newline at end of file diff --git a/src/models/tests/product_spec.ts b/src/tests/models/product_spec.ts similarity index 96% rename from src/models/tests/product_spec.ts rename to src/tests/models/product_spec.ts index 18645e5..f6d3f2f 100644 --- a/src/models/tests/product_spec.ts +++ b/src/tests/models/product_spec.ts @@ -1,4 +1,4 @@ -import { Product, ProductStore } from '../product' +import { Product, ProductStore } from '../../models/product' const store = new ProductStore()