Add transformer for Job classes

This commit is contained in:
Justin Edmund 2023-07-06 23:48:32 -07:00
parent fe32a49bc4
commit f73787c23d
6 changed files with 68 additions and 9 deletions

View file

@ -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,
}
}

View file

@ -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,
}
}

View file

@ -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,
}
}

View file

@ -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,

12
types/Job.d.ts vendored
View file

@ -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
}

View file

@ -1,6 +1,6 @@
interface JobAccessory {
id: string
granblue_id: string
granblueId: string
job: Job
name: {
[key: string]: string