Added basic response calss for runner cards

ref #77
This commit is contained in:
Nicolai Ort 2021-01-09 11:15:29 +01:00
parent 52eb7b1afe
commit af3a9e5ce2
2 changed files with 49 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import {
IsString
} from "class-validator";
import { Column, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm";
import { ResponseRunnerCard } from '../responses/ResponseRunnerCard';
import { Runner } from "./Runner";
import { TrackScan } from "./TrackScan";
@ -62,6 +63,6 @@ export class RunnerCard {
* Turns this entity into it's response class.
*/
public toResponse() {
return new Error("NotImplemented");
return new ResponseRunnerCard(this);
}
}

View File

@ -0,0 +1,47 @@
import { IsBoolean, IsEAN, IsInt, IsNotEmpty, IsObject, IsString } from "class-validator";
import { RunnerCard } from '../entities/RunnerCard';
import { ResponseRunner } from './ResponseRunner';
/**
* Defines the runner card response.
*/
export class ResponseRunnerCard {
/**
* The card's id.
*/
@IsInt()
id: number;;
/**
* The card's associated runner.
* This is important to link scans to runners.
*/
@IsObject()
runner: ResponseRunner;
/**
* The card's code.
*/
@IsEAN()
@IsString()
@IsNotEmpty()
code: string;
/**
* Is the enabled valid (for fraud reasons).
* The determination of validity will work differently for every child class.
*/
@IsBoolean()
enabled: boolean = true;
/**
* Creates a ResponseRunnerCard object from a runner card.
* @param card The card the response shall be build for.
*/
public constructor(card: RunnerCard) {
this.id = card.id;
this.runner = card.runner.toResponse() || null;
this.code = card.code;
this.enabled = card.enabled;
}
}