frontend: introduce other api {response,payload} types

Pedro Lucas Porcellis porcellis@eletrotupi.com 1 month ago 2cac61aec19417cac5972c03ed16933d7f291846
Parents: bc168d7
2 file(s) changed
  • frontend/lib/api/client.ts +4 -4
  • frontend/lib/api/types.ts +16 -1
frontend/lib/api/client.ts
@@ -89,10 +89,10 @@ await this.storeToken(response.token);
89 89 return response;
90 90 }
91 91
92 - async signup(data: SignUpPayload): Promise<AuthResponse> {
92 + async signup(user: SignUpPayload): Promise<AuthResponse> {
93 93 const response = await this.request<AuthResponse>('/users', {
94 94 method: 'POST',
95 - body: JSON.stringify(data),
95 + body: JSON.stringify({ user }),
96 96 });
97 97
98 98 await this.storeToken(response.token);
@@ -135,7 +135,7 @@ body: JSON.stringify({ user })
135 135 })
136 136 }
137 137
138 - async avatar(formData: FormData): Promise<void> {
138 + async avatar(formData: FormData): Promise<User> {
139 139 return await this.request(`/users/me/avatar`, {
140 140 method: 'POST',
141 141 body: formData,
@@ -152,7 +152,7 @@ });
152 152 }
153 153
154 154 // Mood-related
155 - async createMoodEntry(moodEntry): Promise<void> {
155 + async createMoodEntry(mood: MoodEntryPayload): Promise<MoodEntryResponse> {
156 156 return await this.request(`/moods`, {
157 157 method: 'POST',
158 158 body: JSON.stringify({ mood: moodEntry })
frontend/lib/api/types.ts
@@ -52,7 +52,6 @@ component: string;
52 52 intensity: string;
53 53 };
54 54
55 -
56 55 export interface MoodEntryPayload {
57 56 annotation: string;
58 57 moment: Date;
@@ -63,6 +62,22 @@ stressLevel: number;
63 62 moodComponents: MoodComponentPayload[]
64 63 };
65 64
65 + export interface MoodComponentResponse {
66 + id: number;
67 + component: string;
68 + intensity: string;
69 + }
70 +
71 + export interface MoodEntryResponse {
72 + id: number;
73 + annotation: string;
74 + moment: Date;
75 + selectedMood: string;
76 + anxietyLevel: number;
77 + energyLevel: number;
78 + stressLevel: number;
79 + moodComponents: MoodComponentResponse[];
80 + }
66 81
67 82 // Generic stuff
68 83 export interface PaginatedResponse<T> {