diff --git a/package.json b/package.json index 04766fd..32a7c31 100644 --- a/package.json +++ b/package.json @@ -1,69 +1,70 @@ { - "name": "@lfk/backend", - "version": "1.0.0", - "main": "src/app.ts", - "repository": "https://git.odit.services/lfk/backend", - "author": { - "name": "ODIT.Services", - "email": "info@odit.services", - "url": "https://odit.services" + "name": "@lfk/backend", + "version": "1.0.0", + "main": "src/app.ts", + "repository": "https://git.odit.services/lfk/backend", + "author": { + "name": "ODIT.Services", + "email": "info@odit.services", + "url": "https://odit.services" + }, + "contributors": [ + { + "name": "Philipp Dormann", + "email": "philipp@philippdormann.de", + "url": "https://philippdormann.de" }, - "contributors": [ - { - "name": "Philipp Dormann", - "email": "philipp@philippdormann.de", - "url": "https://philippdormann.de" - }, - { - "name": "Nicolai Ort", - "email": "info@nicolai-ort.com", - "url": "https://nicolai-ort.com" - } - ], - "license": "CC-BY-NC-SA-4.0", - "dependencies": { - "body-parser": "^1.19.0", - "class-transformer": "^0.3.1", - "class-validator": "^0.12.2", - "consola": "^2.15.0", - "cors": "^2.8.5", - "express": "^4.17.1", - "helmet": "^4.2.0", - "jsonwebtoken": "^8.5.1", - "multer": "^1.4.2", - "mysql": "^2.18.1", - "pg": "^8.5.1", - "reflect-metadata": "^0.1.13", - "routing-controllers": "^0.9.0-alpha.6", - "routing-controllers-openapi": "^2.1.0", - "swagger-ui-express": "^4.1.5", - "typeorm": "^0.2.29" - }, - "devDependencies": { - "@types/cors": "^2.8.8", - "@types/dotenv-safe": "^8.1.1", - "@types/express": "^4.17.9", - "@types/jsonwebtoken": "^8.5.0", - "@types/node": "^14.14.9", - "@types/multer": "^1.4.4", - "@types/swagger-ui-express": "^4.1.2", - "dotenv-safe": "^8.2.0", - "husky": "^4.3.0", - "nodemon": "^2.0.6", - "prettier": "^2.2.0", - "pretty-quick": "^3.1.0", - "sqlite3": "^5.0.0", - "ts-node": "^9.0.0", - "typescript": "^4.1.2" - }, - "scripts": { - "dev": "nodemon src/app.ts", - "build": "tsc", - "format": "pretty-quick" - }, - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged" - } + { + "name": "Nicolai Ort", + "email": "info@nicolai-ort.com", + "url": "https://nicolai-ort.com" } + ], + "license": "CC-BY-NC-SA-4.0", + "dependencies": { + "body-parser": "^1.19.0", + "class-transformer": "^0.3.1", + "class-validator": "^0.12.2", + "consola": "^2.15.0", + "cors": "^2.8.5", + "express": "^4.17.1", + "helmet": "^4.2.0", + "jsonwebtoken": "^8.5.1", + "multer": "^1.4.2", + "mysql": "^2.18.1", + "pg": "^8.5.1", + "reflect-metadata": "^0.1.13", + "routing-controllers": "^0.9.0-alpha.6", + "routing-controllers-openapi": "^2.1.0", + "swagger-ui-express": "^4.1.5", + "typeorm": "^0.2.29", + "typeorm-routing-controllers-extensions": "^0.2.0" + }, + "devDependencies": { + "@types/cors": "^2.8.8", + "@types/dotenv-safe": "^8.1.1", + "@types/express": "^4.17.9", + "@types/jsonwebtoken": "^8.5.0", + "@types/multer": "^1.4.4", + "@types/node": "^14.14.9", + "@types/swagger-ui-express": "^4.1.2", + "dotenv-safe": "^8.2.0", + "husky": "^4.3.0", + "nodemon": "^2.0.6", + "prettier": "^2.2.0", + "pretty-quick": "^3.1.0", + "sqlite3": "^5.0.0", + "ts-node": "^9.0.0", + "typescript": "^4.1.2" + }, + "scripts": { + "dev": "nodemon src/app.ts", + "build": "tsc", + "format": "pretty-quick" + }, + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged" + } + } } diff --git a/src/controllers/TrackController.ts b/src/controllers/TrackController.ts index 2b8011a..be3b32f 100644 --- a/src/controllers/TrackController.ts +++ b/src/controllers/TrackController.ts @@ -7,29 +7,34 @@ import { Put, Delete, } from "routing-controllers"; -import { OpenAPI } from "routing-controllers-openapi"; -import { getConnection, Repository } from "typeorm"; +import { getConnectionManager, Repository } from "typeorm"; +import { + EntityFromParam, + EntityFromBody, +} from "typeorm-routing-controllers-extensions"; import { Track } from "../models/Track"; @JsonController("/track") export class TrackController { - private repo(): Repository { - return getConnection().getRepository(Track); + private trackRepository: Repository; + + constructor() { + this.trackRepository = getConnectionManager().get().getRepository(Track); } @Get("/track") async getAll() { - return await this.repo().find(); + return await this.trackRepository.find(); } @Get("/track/:id") - async getOne(@Param("id") id: number) { - return await this.repo().findOne({ id: id }); + async getOne(@EntityFromParam("id") track: Track) { + return track; } @Post("/track") - post(@Body() user: any) { - return "Saving user..."; + post(@EntityFromBody() track: Track) { + return this.trackRepository.save(track); } @Put("/track/:id") @@ -38,7 +43,7 @@ export class TrackController { } @Delete("/track/:id") - remove(@Param("id") id: number) { - return "Removing user..."; + remove(@EntityFromParam("id") track: Track) { + return this.trackRepository.delete(track); } }