backend/src/models/responses/ResponseRunnerCard.ts
2021-01-09 12:24:05 +01:00

54 lines
1.3 KiB
TypeScript

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 | null;
/**
* 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;
if (!card.runner) { this.runner = null }
else { this.runner = card.runner.toResponse(); }
try {
this.code = card.code;
} catch (error) {
this.code = "0000000000000"
}
this.enabled = card.enabled;
}
}