Create UserTransformer

Transforms data into User objects and back again.

We added the UserParams interface to handle sending data back to the API in a uniform manner.

We also modified the User object to store the user's language and theme for simplicity's sake, since the app state wants this information today.
This commit is contained in:
Justin Edmund 2023-07-06 00:03:21 -07:00
parent f5ee806f8b
commit 881ed31dd1
3 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,26 @@
// Transforms API response to User object
export function toObject(data: any): User {
return {
id: data.id,
username: data.username,
avatar: {
picture: data.avatar.picture,
element: data.avatar.element,
},
gender: data.gender,
language: data.language,
theme: data.theme,
} as User
}
// Transforms User object into API parameters
export function toParams(data: User): UserParams {
return {
username: data.username,
picture: data.avatar.picture,
element: data.avatar.element,
language: data.language,
gender: data.gender,
theme: data.theme,
}
}

2
types/User.d.ts vendored
View file

@ -7,4 +7,6 @@ interface User {
element: string
}
gender: number
language: string
theme: string
}

8
types/UserParams.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
interface UserParams {
username?: string
picture?: string
element?: string
language?: string
gender?: number
theme?: string
}