@@ -1,9 +1,9 @@
 | 
			
		||||
import { Authorized, Body, Delete, Get, JsonController, OnUndefined, Param, Post, Put } from 'routing-controllers';
 | 
			
		||||
import { OpenAPI, ResponseSchema } from 'routing-controllers-openapi';
 | 
			
		||||
import { getConnectionManager, Repository } from 'typeorm';
 | 
			
		||||
import { EntityFromBody } from 'typeorm-routing-controllers-extensions';
 | 
			
		||||
import { TrackIdsNotMatchingError, TrackLapTimeCantBeNegativeError, TrackNotFoundError } from "../errors/TrackErrors";
 | 
			
		||||
import { CreateTrack } from '../models/actions/CreateTrack';
 | 
			
		||||
import { UpdateTrack } from '../models/actions/UpdateTrack';
 | 
			
		||||
import { Track } from '../models/entities/Track';
 | 
			
		||||
import { ResponseEmpty } from '../models/responses/ResponseEmpty';
 | 
			
		||||
import { ResponseTrack } from '../models/responses/ResponseTrack';
 | 
			
		||||
@@ -64,19 +64,19 @@ export class TrackController {
 | 
			
		||||
	@ResponseSchema(TrackIdsNotMatchingError, { statusCode: 406 })
 | 
			
		||||
	@ResponseSchema(TrackLapTimeCantBeNegativeError, { statusCode: 406 })
 | 
			
		||||
	@OpenAPI({ description: "Update the track whose id you provided. <br> Please remember that ids can't be changed." })
 | 
			
		||||
	async put(@Param('id') id: number, @EntityFromBody() track: Track) {
 | 
			
		||||
	async put(@Param('id') id: number, @Body({ validate: true }) updateTrack: UpdateTrack) {
 | 
			
		||||
		let oldTrack = await this.trackRepository.findOne({ id: id });
 | 
			
		||||
 | 
			
		||||
		if (!oldTrack) {
 | 
			
		||||
			throw new TrackNotFoundError();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (oldTrack.id != track.id) {
 | 
			
		||||
		if (oldTrack.id != updateTrack.id) {
 | 
			
		||||
			throw new TrackIdsNotMatchingError();
 | 
			
		||||
		}
 | 
			
		||||
		await this.trackRepository.save(await updateTrack.updateTrack(oldTrack));
 | 
			
		||||
 | 
			
		||||
		await this.trackRepository.save(track);
 | 
			
		||||
		return new ResponseTrack(track);
 | 
			
		||||
		return new ResponseTrack(await this.trackRepository.findOne({ id: id }));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Delete('/:id')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user