diff --git a/transformers/GridCharacterTransformer.tsx b/transformers/GridCharacterTransformer.tsx new file mode 100644 index 00000000..1272a3d4 --- /dev/null +++ b/transformers/GridCharacterTransformer.tsx @@ -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, + } +} diff --git a/types/GridCharacter.d.ts b/types/GridCharacter.d.ts index 16089096..b0549ab0 100644 --- a/types/GridCharacter.d.ts +++ b/types/GridCharacter.d.ts @@ -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 } diff --git a/types/GridCharacterParams.d.ts b/types/GridCharacterParams.d.ts new file mode 100644 index 00000000..205d1ab0 --- /dev/null +++ b/types/GridCharacterParams.d.ts @@ -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 +}