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:
parent
f5ee806f8b
commit
881ed31dd1
3 changed files with 36 additions and 0 deletions
26
transformers/UserTransformer.tsx
Normal file
26
transformers/UserTransformer.tsx
Normal 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
2
types/User.d.ts
vendored
|
|
@ -7,4 +7,6 @@ interface User {
|
|||
element: string
|
||||
}
|
||||
gender: number
|
||||
language: string
|
||||
theme: string
|
||||
}
|
||||
|
|
|
|||
8
types/UserParams.d.ts
vendored
Normal file
8
types/UserParams.d.ts
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
interface UserParams {
|
||||
username?: string
|
||||
picture?: string
|
||||
element?: string
|
||||
language?: string
|
||||
gender?: number
|
||||
theme?: string
|
||||
}
|
||||
Loading…
Reference in a new issue