-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi.js
More file actions
104 lines (84 loc) · 2.4 KB
/
Copy pathapi.js
File metadata and controls
104 lines (84 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
const transformHeaders = (endpoint) => {
const sessionId = localStorage.getItem("sessionid");
if (!sessionId) {
window.location.replace("/login.html")
return;
}
return {
"Accept": "application.json",
"Content-Type": "application/json",
}
}
const transformEndpoint = (endpoint) => {
return "http://heron.cs.umanitoba.ca:8081/" + endpoint;
}
const postRequest = (endpoint, requestBody) => {
return fetch(transformEndpoint(endpoint), {
method: "POST",
headers: {
Accept: "application.json",
"Content-Type": "application/json",
},
body: JSON.stringify(requestBody),
}).catch(res => {
if (res.status === 401) {
window.location.replace("/login.html");
}
})
}
const getRequest = (endpoint) => {
return fetch(transformEndpoint(endpoint)).catch(res => {
if (res.status === 401) {
window.localStorage.replace("/login.html");
}
})
}
// #region SIGN UP PORTION
const signUpForm = document.getElementById("sign-up-form");
signUpForm?.addEventListener("submit", (e) => {
e.preventDefault();
const emailDiv = document.getElementById("email");
const passwordDiv = document.getElementById("password");
signUp(emailDiv.value, passwordDiv.value);
})
const signUp = (userEmail, userPwd) => {
const requestBody = {
username: userEmail,
password: userPwd,
};
const response = postRequest("/login/new", requestBody)
.then((res) => res.json())
.then((out) => {
localStorage.setItem("sessionid", "User has signed up")
window.location.replace("/dashboard.html")
});
}
// #endregion
// #region LOGIN PORTION
const loginForm = document.getElementById("login-form");
loginForm?.addEventListener("submit", (e) => {
e.preventDefault();
const emailDiv = document.getElementById("email");
const passwordDiv = document.getElementById("password");
login(emailDiv.value, passwordDiv.value);
})
function login(userEmail, userPwd) {
const requestBody = {
username: userEmail,
password: userPwd,
};
const response = fetch("http://heron.cs.umanitoba.ca:8081/" + "login", {
method: "POST",
headers: {
Accept: "application.json",
"Content-Type": "application/json",
},
body: JSON.stringify(requestBody),
})
.then((res) => res.json())
.then((out) => {
localStorage.setItem("sessionid", out["sessionid"])
window.location.replace("/dashboard.html")
});
}
// #endregion