Add transformer for GridCharacter

This commit is contained in:
Justin Edmund 2023-07-06 23:20:27 -07:00
parent 511d7ee0ec
commit 7cd87bd4a7
3 changed files with 63 additions and 8 deletions

View file

@ -0,0 +1,39 @@
import * as Character from './CharacterTransformer'
// Transforms API response to GridCharacter object
export function toObject(data: any): GridCharacter {
return {
id: data.id,
object: Character.toObject(data.object),
position: data.position,
uncapLevel: data.uncap_level,
transcendenceStep: data.transcendence_step,
mastery: {
overMastery: data.over_mastery,
aetherialMastery: data.aetherial_mastery,
awakening: {
type: Awakening.toObject(data.awakening.type),
level: data.awakening.awakening_level,
},
perpetuity: data.perpetuity,
},
}
}
// Transforms User object into API parameters
export function toParams(data: GridCharacter): GridCharacterParams {
return {
character_id: data.id,
position: data.position,
uncap_level: data.uncapLevel,
transcendence_step: data.transcendenceStep,
ring1: data.mastery.overMastery[1],
ring2: data.mastery.overMastery[2],
ring3: data.mastery.overMastery[3],
ring4: data.mastery.overMastery[4],
earring: data.mastery.aetherialMastery,
awakening_id: data.mastery.awakening.type.id,
awakening_level: data.mastery.awakening.level,
perpetuity: data.mastery.perpetuity,
}
}

View file

@ -2,13 +2,15 @@ interface GridCharacter {
id: string
position: number
object: Character
uncap_level: number
transcendence_step: number
over_mastery: CharacterOverMastery
aetherial_mastery: ExtendedMastery
awakening: {
type: Awakening
level: number
uncapLevel: number
transcendenceStep: number
mastery: {
overMastery: CharacterOverMastery
aetherialMastery: ExtendedMastery
awakening: {
type: Awakening
level: number
}
perpetuity: boolean
}
perpetuity: boolean
}

14
types/GridCharacterParams.d.ts vendored Normal file
View file

@ -0,0 +1,14 @@
interface GridCharacterParams {
character_id: string
position?: number
uncap_level?: number
transcendence_step?: number
ring1?: ExtendedMastery
ring2?: ExtendedMastery
ring3?: ExtendedMastery
ring4?: ExtendedMastery
earring: ExtendedMastery
awakening_id?: string
awakening_level?: number
perpetuity?: boolean
}