You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
50 lines
1.0 KiB
export class Kanji {
|
|
private _character: string;
|
|
private _meaning: string;
|
|
private _image: string;
|
|
|
|
constructor(character: string, meaning: string, image: string) {
|
|
this._character = character;
|
|
this._meaning = meaning;
|
|
this._image = image;
|
|
}
|
|
|
|
get character(): string {
|
|
return this._character;
|
|
}
|
|
|
|
get meaning(): string {
|
|
return this._meaning;
|
|
}
|
|
|
|
get image(): string {
|
|
return this._image;
|
|
}
|
|
|
|
toObject() {
|
|
return {
|
|
character: this._character,
|
|
meaning: this._meaning,
|
|
image: this._image
|
|
};
|
|
}
|
|
|
|
}
|
|
|
|
export class KanjiMapper {
|
|
|
|
static ApiJsonToKanji(json: any): Kanji {
|
|
console.log(typeof json)
|
|
return new Kanji(json.kanji.character, json.kanji.meaning.english, json.kanji.video.poster);
|
|
}
|
|
|
|
// @ts-ignore
|
|
static SerializedObjectToKanji(obj): Kanji | null {
|
|
if (!obj) return null;
|
|
return new Kanji(obj.character, obj.meaning, obj.image);
|
|
}
|
|
|
|
}
|
|
|
|
|