From 8ef2bf76e3d21822772960ebf35401a903b3bf47 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Thu, 6 Jul 2023 23:33:51 -0700 Subject: [PATCH] Add transformer for GridWeapon --- transformers/GridWeaponTransformer.tsx | 39 ++++++++++++++++++++++++++ types/GridWeapon.d.ts | 8 +++--- types/GridWeaponParams.d.ts | 15 ++++++++++ 3 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 transformers/GridWeaponTransformer.tsx create mode 100644 types/GridWeaponParams.d.ts diff --git a/transformers/GridWeaponTransformer.tsx b/transformers/GridWeaponTransformer.tsx new file mode 100644 index 00000000..9d73cce2 --- /dev/null +++ b/transformers/GridWeaponTransformer.tsx @@ -0,0 +1,39 @@ +import * as Element from './ElementTransformer' +import * as Weapon from './WeaponTransformer' + +// Transforms API response to GridWeapon object +export function toObject(data: any): GridWeapon { + return { + id: data.id, + object: Weapon.toObject(data.object), + position: data.position, + mainhand: data.mainhand, + uncapLevel: data.uncap_level, + element: Element.toObject(data.element), + weaponKeys: data.weapon_keys.map((key: any) => WeaponKey.toObject(key)), + ax: data.ax, + awakening: { + type: Awakening.toObject(data.awakening.type), + level: data.awakening.awakening_level, + }, + } +} + +// Transforms User object into API parameters +export function toParams(data: GridWeapon): GridWeaponParams { + return { + weapon_id: data.id, + position: data.position, + uncap_level: data.uncapLevel, + element: data.element.id, + weapon_key1_id: data.weaponKeys?.[0].id, + weapon_key2_id: data.weaponKeys?.[1].id, + weapon_key3_id: data.weaponKeys?.[2].id, + ax_modifier1: data.ax?.[0].modifier, + ax_modifier2: data.ax?.[1].modifier, + ax_strength1: data.ax?.[0].strength, + ax_strength2: data.ax?.[1].strength, + awakening_id: data.awakening?.type.id, + awakening_level: data.awakening?.level, + } +} diff --git a/types/GridWeapon.d.ts b/types/GridWeapon.d.ts index 11929744..eb4cad6c 100644 --- a/types/GridWeapon.d.ts +++ b/types/GridWeapon.d.ts @@ -3,10 +3,10 @@ interface GridWeapon { mainhand: boolean position: number object: Weapon - uncap_level: number - element: number - weapon_keys?: Array - ax?: Array + uncapLevel: number + element: GranblueElement + weaponKeys?: WeaponKey[] + ax?: SimpleAxSkill[] awakening?: { type: Awakening level: number diff --git a/types/GridWeaponParams.d.ts b/types/GridWeaponParams.d.ts new file mode 100644 index 00000000..27d5e15d --- /dev/null +++ b/types/GridWeaponParams.d.ts @@ -0,0 +1,15 @@ +interface GridWeaponParams { + weapon_id: string + position?: number + uncap_level?: number + element?: number + weapon_key1_id?: string + weapon_key2_id?: string + weapon_key3_id?: string + ax_modifier1?: number + ax_modifier2?: number + ax_strength1?: number + ax_strength2?: number + awakening_id?: string + awakening_level?: number +}