From 08f03a357f191ae622cf625a1c799ed2e241f98e Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 21 Nov 2023 13:54:11 +0000 Subject: [PATCH] WIP - Seasons Controller --- .../src/seasons/seasons.controller.ts | 23 +++++++++++++++--- .../src/seasons/seasons.service.ts | 24 +++++++++++++++---- 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/packages/bridge-server/src/seasons/seasons.controller.ts b/packages/bridge-server/src/seasons/seasons.controller.ts index 654a690..75cdc58 100644 --- a/packages/bridge-server/src/seasons/seasons.controller.ts +++ b/packages/bridge-server/src/seasons/seasons.controller.ts @@ -1,9 +1,26 @@ -import { Controller, Get } from '@nestjs/common'; +import { Body, Controller, Get, Param, Post } from '@nestjs/common'; +import { SeasonsService } from './seasons.service'; +import { get } from 'http'; @Controller('seasons') export class SeasonsController { + constructor( + private seasonsService: SeasonsService + ) {} + @Get() - findAll(): string { - return '' + findAll() { + return this.seasonsService.findAll(); + } + + @Get(':id') + findOne(@Param() params: any) { + return this.seasonsService.findOne(params.id); } + + @Post() + create(@Body() body: any) { + return this.seasonsService.create(body.title, body.subTitle, body.startingDate); + } + } diff --git a/packages/bridge-server/src/seasons/seasons.service.ts b/packages/bridge-server/src/seasons/seasons.service.ts index 038d1f7..0150e57 100644 --- a/packages/bridge-server/src/seasons/seasons.service.ts +++ b/packages/bridge-server/src/seasons/seasons.service.ts @@ -1,21 +1,37 @@ import { Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/sequelize'; import { Season } from './season.model'; -//import { SeasonStanding } from 'src/season-standings/season-standing.model'; -//import { Race } from 'src/races/race.model'; +import { SeasonStanding } from 'src/season-standings/season-standing.model'; +import { Race } from 'src/races/race.model'; +import { Sequelize } from 'sequelize-typescript'; @Injectable() export class SeasonsService { constructor( @InjectModel(Season) private seasonModel: typeof Season, + private sequelize: Sequelize ) {} async findAll() { - //return this.seasonModel.findAll(); + return this.seasonModel.findAll(); } async findOne(id: number) { - //return this.seasonModel.findOne({ where: {id: id}}/*, include:[Race, SeasonStanding] }*/) + return this.seasonModel.findOne({ where: {id: id} , include:[Race, SeasonStanding] }) + } + + async create(title: string, subTitle: string, startingDate: Date) { + try { + await this.sequelize.transaction( async t => { + const transactionHost = { transaction: t }; + await this.seasonModel.create( + { title: title, subTitle: subTitle, startingDate: startingDate }, + transactionHost + ); + }); + } catch (error) { + + } } }