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
Reference in a new issue