Login feature API
This commit is contained in:
		
							parent
							
								
									8d0da111eb
								
							
						
					
					
						commit
						2eecf17d42
					
				
					 1 changed files with 59 additions and 13 deletions
				
			
		|  | @ -22,12 +22,19 @@ interface API { | |||
|     token: string, | ||||
|   ): Promise<APIResponse<Project>>; | ||||
|   /** Submit a weekly report */ | ||||
|   submitWeeklyReport(project: NewWeeklyReport, token: string): Promise<APIResponse<Project>>; | ||||
|   submitWeeklyReport( | ||||
|     project: NewWeeklyReport, | ||||
|     token: string, | ||||
|   ): Promise<APIResponse<Project>>; | ||||
|   /** Renew the token */ | ||||
|   renewToken(token: string): Promise<APIResponse<string>>; | ||||
|   /** Gets all the projects of a user*/ | ||||
|   getUserProjects(username: string, token: string): Promise<APIResponse<Project[]>>; | ||||
|    | ||||
|   getUserProjects( | ||||
|     username: string, | ||||
|     token: string, | ||||
|   ): Promise<APIResponse<Project[]>>; | ||||
|   /** Login */ | ||||
|   login(NewUser: NewUser): Promise<APIResponse<JSON>>; | ||||
| } | ||||
| 
 | ||||
| // Export an instance of the API
 | ||||
|  | @ -55,7 +62,7 @@ export const api: API = { | |||
| 
 | ||||
|   async removeUser( | ||||
|     username: string, | ||||
|     token: string | ||||
|     token: string, | ||||
|   ): Promise<APIResponse<User>> { | ||||
|     try { | ||||
|       const response = await fetch("/api/userdelete", { | ||||
|  | @ -80,7 +87,7 @@ export const api: API = { | |||
| 
 | ||||
|   async createProject( | ||||
|     project: NewProject, | ||||
|     token: string | ||||
|     token: string, | ||||
|   ): Promise<APIResponse<Project>> { | ||||
|     try { | ||||
|       const response = await fetch("/api/project", { | ||||
|  | @ -135,18 +142,26 @@ export const api: API = { | |||
|       }); | ||||
| 
 | ||||
|       if (!response.ok) { | ||||
|         return Promise.resolve({ success: false, message: "Failed to get user projects" }); | ||||
|         return Promise.resolve({ | ||||
|           success: false, | ||||
|           message: "Failed to get user projects", | ||||
|         }); | ||||
|       } else { | ||||
|         const data = (await response.json()) as Project[]; | ||||
|         return Promise.resolve({ success: true, data }); | ||||
|       } | ||||
|     } | ||||
|     catch (e) { | ||||
|       return Promise.resolve({ success: false, message: "Failed to get user projects" }); | ||||
|     } catch (e) { | ||||
|       return Promise.resolve({ | ||||
|         success: false, | ||||
|         message: "Failed to get user projects", | ||||
|       }); | ||||
|     } | ||||
|   }, | ||||
|    | ||||
|   submitWeeklyReport: function (project: NewWeeklyReport, token: string): Promise<APIResponse<Project>> { | ||||
| 
 | ||||
|   async submitWeeklyReport( | ||||
|     project: NewWeeklyReport, | ||||
|     token: string, | ||||
|   ): Promise<APIResponse<Project>> { | ||||
|     try { | ||||
|       return fetch("/api/submitWeeklyReport", { | ||||
|         method: "POST", | ||||
|  | @ -158,7 +173,10 @@ export const api: API = { | |||
|       }) | ||||
|         .then((response) => { | ||||
|           if (!response.ok) { | ||||
|             return { success: false, message: "Failed to submit weekly report" }; | ||||
|             return { | ||||
|               success: false, | ||||
|               message: "Failed to submit weekly report", | ||||
|             }; | ||||
|           } else { | ||||
|             return response.json(); | ||||
|           } | ||||
|  | @ -167,7 +185,35 @@ export const api: API = { | |||
|           return { success: true, data }; | ||||
|         }); | ||||
|     } catch (e) { | ||||
|       return Promise.resolve({ success: false, message: "Failed to submit weekly report" }); | ||||
|       return Promise.resolve({ | ||||
|         success: false, | ||||
|         message: "Failed to submit weekly report", | ||||
|       }); | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   async login(NewUser: NewUser): Promise<APIResponse<JSON>> { | ||||
|     try { | ||||
|       const response = await fetch("/api/login", { | ||||
|         method: "POST", | ||||
|         headers: { | ||||
|           "Content-Type": "application/json", | ||||
|         }, | ||||
|         body: JSON.stringify(NewUser), | ||||
|       }); | ||||
| 
 | ||||
|       if (response) { | ||||
|         if (!response.ok) { | ||||
|           return { success: false, message: "Failed to login" }; | ||||
|         } else { | ||||
|           const data = await response.json(); | ||||
|           return { success: true, data }; | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       return { success: false, message: "Failed to login" }; // Add return statement
 | ||||
|     } catch (e) { | ||||
|       return Promise.resolve({ success: false, message: "Failed to login" }); | ||||
|     } | ||||
|   } | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 al8763be
						al8763be