From f73787c23d3866611ce83a4e74be5439438592cd Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Thu, 6 Jul 2023 23:48:32 -0700 Subject: [PATCH] Add transformer for Job classes --- transformers/JobAccessoryTransformer.tsx | 15 +++++++++++++++ transformers/JobSkillTransformer.tsx | 20 ++++++++++++++++++++ transformers/JobTransformer.tsx | 22 ++++++++++++++++++++++ transformers/PartyTransformer.tsx | 6 ++++-- types/Job.d.ts | 12 ++++++------ types/JobAccessory.d.ts | 2 +- 6 files changed, 68 insertions(+), 9 deletions(-) create mode 100644 transformers/JobAccessoryTransformer.tsx create mode 100644 transformers/JobSkillTransformer.tsx create mode 100644 transformers/JobTransformer.tsx diff --git a/transformers/JobAccessoryTransformer.tsx b/transformers/JobAccessoryTransformer.tsx new file mode 100644 index 00000000..d6ceedf2 --- /dev/null +++ b/transformers/JobAccessoryTransformer.tsx @@ -0,0 +1,15 @@ +import * as Job from './JobTransformer' + +// Transforms API response to JobAccessory object +export function toObject(data: any): JobAccessory { + return { + id: data.id, + granblueId: data.granblue_id, + name: { + en: data.name.en, + ja: data.name.jp, + }, + job: Job.toObject(data.job), + rarity: data.rarity, + } +} diff --git a/transformers/JobSkillTransformer.tsx b/transformers/JobSkillTransformer.tsx new file mode 100644 index 00000000..1c40a162 --- /dev/null +++ b/transformers/JobSkillTransformer.tsx @@ -0,0 +1,20 @@ +import * as Job from './JobTransformer' + +// Transforms API response to JobSkill object +export function toObject(data: any): JobSkill { + return { + id: data.id, + name: { + en: data.name.en, + ja: data.name.jp, + }, + job: Job.toObject(data.job), + slug: data.slug, + color: data.color, + main: data.main, + base: data.base, + sub: data.sub, + emp: data.emp, + order: data.order, + } +} diff --git a/transformers/JobTransformer.tsx b/transformers/JobTransformer.tsx new file mode 100644 index 00000000..a836e2a1 --- /dev/null +++ b/transformers/JobTransformer.tsx @@ -0,0 +1,22 @@ +// Transforms API response to Job object +export function toObject(data: any): Job { + return { + id: data.id, + granblueId: data.granblue_id, + name: { + en: data.name.en, + ja: data.name.jp, + }, + baseJob: toObject(data.base_job), + row: data.row, + order: data.order, + masterLevel: data.master_level, + ultimateMastery: data.ultimate_mastery, + proficiency: { + proficiency1: data.proficiency1, + proficiency2: data.proficiency2, + }, + accessory: data.accessory, + accessory_type: data.accessory_type, + } +} diff --git a/transformers/PartyTransformer.tsx b/transformers/PartyTransformer.tsx index 30a03408..65df9bfc 100644 --- a/transformers/PartyTransformer.tsx +++ b/transformers/PartyTransformer.tsx @@ -1,3 +1,5 @@ +import * as Job from './JobTransformer' +import * as JobAccessory from './JobAccessoryTransformer' import * as Raid from './RaidTransformer' import * as User from './UserTransformer' @@ -22,11 +24,11 @@ export function toObject(data: any): Party { chainCount: data.chain_count, }, protagonist: { - job: data.job, + job: Job.toObject(data.job), skills: data.job_skills, masterLevel: data.master_level, ultimateMastery: data.ultimate_mastery, - accessory: data.accessory, + accessory: JobAccessory.toObject(data.accessory), }, social: { favorited: data.favorited, diff --git a/types/Job.d.ts b/types/Job.d.ts index 1f435177..64fb1b14 100644 --- a/types/Job.d.ts +++ b/types/Job.d.ts @@ -1,10 +1,7 @@ interface Job { id: string - granblue_id: string - row: string - master_level: boolean - ultimate_mastery: boolean - order: number + granblueId: string + baseJob?: Job name: { [key: string]: string en: string @@ -14,7 +11,10 @@ interface Job { proficiency1: number proficiency2: number } - base_job?: Job + row: string + masterLevel: boolean + ultimateMastery: boolean + order: number accessory: boolean accessory_type: number } diff --git a/types/JobAccessory.d.ts b/types/JobAccessory.d.ts index 1b0b3d8e..9998067a 100644 --- a/types/JobAccessory.d.ts +++ b/types/JobAccessory.d.ts @@ -1,6 +1,6 @@ interface JobAccessory { id: string - granblue_id: string + granblueId: string job: Job name: { [key: string]: string