Skip to content

Commit eec5a5c

Browse files
committed
⚡ profile
1 parent 251e010 commit eec5a5c

File tree

3 files changed

+63
-55
lines changed

3 files changed

+63
-55
lines changed

FrontEnd/js/nav.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ const setItems=()=>{
66
html=`<li class="nav-item mx-3">
77
<a class="nav-link" href="event.html">Events</a>
88
</li>
9-
<li class="nav-item mx-3">
10-
<a class="nav-link" href="interest.html">Interests</a>
11-
</li>
9+
1210
<li class="nav-item mx-3" id="navbar-items">
1311
<a class="nav-link" href="profile.html">Profile</a>
1412
</li>`;

FrontEnd/js/profile.js

Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
1+
// profile.js
22
const fname = document.getElementById('fname');
33
const lname = document.getElementById('lname');
44
const email = document.getElementById('email');
55
const city = document.getElementById('city');
66
const logoutBtn = document.getElementById('btn1');
77
const deleteUserBtn = document.getElementById('btn2');
8+
const eventsList = document.getElementById('events-list');
89

910
const baseUrl = 'http://localhost:8000/api/user';
11+
const eventbriteUrl='https://www.eventbriteapi.com/v3';
1012

1113
if (!localStorage.getItem('userToken')) {
1214
window.location.href = 'http://127.0.0.1:5500/Frontend/index.html';
@@ -19,12 +21,15 @@ const config = {
1921
},
2022
};
2123

22-
23-
24-
const eventsList = document.getElementById('events-list');
25-
26-
27-
24+
const fetchEventName = async (eventId) => {
25+
try {
26+
const { data } = await axios.get(`${eventbriteUrl}/events/${eventId}`, config);
27+
return data.event.name.text;
28+
} catch (error) {
29+
console.log(error);
30+
return "Event Not Found";
31+
}
32+
};
2833

2934
const logout = () => {
3035
localStorage.removeItem('userToken');
@@ -53,41 +58,45 @@ deleteUserBtn.addEventListener('click', (e) => {
5358
deleteUser();
5459
});
5560

56-
57-
const fetchEventName = async (eventId) => {
58-
try {
59-
const { data } = await axios.get(`${baseUrl}/event/${eventId}`, config);
60-
return data.event.name.text;
61-
} catch (error) {
62-
console.log(error);
63-
return "Event Not Found";
61+
const fetchUser = async () => {
62+
try {
63+
const { data } = await axios.get(baseUrl, config);
64+
const user = data.User;
65+
66+
// Update profile information
67+
document.getElementById('username').innerText = user.firstName + ' ' + user.lastName;
68+
fname.innerText = user.firstName;
69+
lname.innerText = user.lastName;
70+
email.innerText = user.email;
71+
city.innerText = user.city;
72+
73+
// Update events list
74+
eventsList.innerHTML = '';
75+
if (user.events && user.events.length > 0) {
76+
const eventsHTML = await Promise.all(user.events.map(async (eventId) => {
77+
const eventName = await fetchEventName(eventId);
78+
return `<li>${eventId} - ${eventName}</li>`;
79+
}));
80+
eventsList.innerHTML = eventsHTML.join('');
81+
} else {
82+
eventsList.innerHTML = '<li>No events found.</li>';
6483
}
65-
};
66-
67-
const fetchUser = async () => {
68-
try {
69-
const { data } = await axios.get(baseUrl, config);
70-
const user = data.User;
71-
fname.innerText = user.firstName;
72-
lname.innerText = user.lastName;
73-
email.innerText = user.email;
74-
city.innerText = user.city;
75-
76-
if (user.events && user.events.length > 0) {
77-
const eventsHTML = await Promise.all(user.events.map(async (eventId) => {
78-
const eventName = await fetchEventName(eventId);
79-
return `<li>${eventId} - ${eventName}</li>`;
80-
}));
81-
eventsList.innerHTML = eventsHTML.join('');
82-
} else {
83-
eventsList.innerHTML = '<li>No events found.</li>';
84-
}
85-
} catch (error) {
86-
console.log(error);
87-
}
88-
};
89-
9084

91-
85+
// Update interests list
86+
const interestsList = document.getElementById('interests-list');
87+
interestsList.innerHTML = '';
88+
if (user.interests && user.interests.length > 0) {
89+
user.interests.forEach(interest => {
90+
const li = document.createElement('li');
91+
li.textContent = interest;
92+
interestsList.appendChild(li);
93+
});
94+
} else {
95+
interestsList.innerHTML = '<li>No interests found.</li>';
96+
}
97+
} catch (error) {
98+
console.log(error);
99+
}
100+
};
92101

93102
fetchUser();

FrontEnd/profile.html

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@ <h5 id="username">
7777
<p id="city">Loading...</p>
7878
</div>
7979
</div>
80+
<div class="row">
81+
<div class="col-md-6">
82+
<label>Intetests</label>
83+
</div>
84+
<div class="col-md-6">
85+
<ul id="interests-list">
86+
<!-- Interests will be added dynamically here -->
87+
</ul>
88+
</div>
89+
</div>
90+
8091
<div class="row">
8192
<div class="col-md-6">
8293
<label>Events</label>
@@ -89,17 +100,7 @@ <h5 id="username">
89100
</div>
90101
</div>
91102

92-
<div>
93-
<h4>Interests : </h4>
94-
<input type="checkbox" id="interest1" onclick="addInterest('63d61ea5a1d10147d40c9d31','Cooking')" name="interest1" value="Cooking">
95-
<label for="interest1" onclick="addInterest('63d61ea5a1d10147d40c9d31','Cooking')" id="lab1">Cooking</label><br>
96-
<input type="checkbox" onclick="addInterest('63d61eaca1d10147d40c9d33','Reading')" id="interest2" name="interest2" value="Reading">
97-
<label for="interest2" onclick="addInterest('63d61eaca1d10147d40c9d33','Reading')" id="lab2"> Reading</label><br>
98-
<input type="checkbox" onclick="addInterest('63d61eb2a1d10147d40c9d35','Coding')" id="interest3" name="interest3" value="Coding">
99-
<label for="interest3" onclick="addInterest('63d61eb2a1d10147d40c9d35','Coding')" id="lab3"> Coding</label><br>
100-
<input type="checkbox" onclick="addInterest('63d61ebca1d10147d40c9d37','Treking')" id="interest4" name="interest4" value="Treking">
101-
<label for="interest4" onclick="addInterest('63d61ebca1d10147d40c9d37','Treking')" id="lab4"> Treking</label><br>
102-
</div>
103+
103104
<hr>
104105
<button id="btn1">Log out</button>
105106
<button id="btn2">Delete user</button>

0 commit comments

Comments
 (0)