Skip to content

Commit 6abd969

Browse files
committed
⚡ profile page events
1 parent a931d8c commit 6abd969

File tree

2 files changed

+38
-58
lines changed

2 files changed

+38
-58
lines changed

FrontEnd/event.html

+5-11
Original file line numberDiff line numberDiff line change
@@ -65,36 +65,33 @@
6565
}
6666
};
6767

68-
// const axios = require('axios');
6968

7069
const register = async (id) => {
7170
try {
72-
// Fetch the event details using the Eventbrite API
71+
7372
const eventResponse = await axios.get(`https://www.eventbriteapi.com/v3/events/${id}/`, {
7473
headers: {
7574
'Authorization': 'Bearer KCIV4OKXGX3FO6FDGVYC'
7675
}
7776
});
7877

79-
// Verify the structure of the API response and access the event name accordingly
8078
const eventName = eventResponse.data?.name?.text;
8179
if (!eventName) {
8280
console.error('Event name not found in the API response.');
8381
return;
8482
}
8583

86-
// Perform the PUT request with the eventName
84+
8785
await axios.put(baseUrl + `/event/${id}`, { eventName }, config);
8886

89-
// Get user email from the input field and validate it
9087
const userEmailInput = document.getElementById('userEmailInput');
9188
const userEmail = userEmailInput.value;
9289
if (!userEmail || !validateEmail(userEmail)) {
9390
alert("Please enter a valid email address.");
9491
return;
9592
}
9693

97-
// Perform the POST request to send the registration email
94+
9895
await axios.post(baseUrl + '/send-registration-email', { userEmail, eventName, eventId: id }, config);
9996

10097
alert("Registration successful");
@@ -103,11 +100,8 @@
103100
}
104101
};
105102

106-
// Validate email function (you should have this function defined)
107-
function validateEmail(email) {
108-
// Implement your email validation logic here
109-
// Return true if the email is valid, false otherwise
110-
}
103+
104+
111105

112106
function validateEmail(email) {
113107
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

FrontEnd/js/profile.js

+33-47
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// profile.js
1+
22
const fname = document.getElementById('fname');
33
const lname = document.getElementById('lname');
44
const email = document.getElementById('email');
@@ -8,7 +8,6 @@ const deleteUserBtn = document.getElementById('btn2');
88
const eventsList = document.getElementById('events-list');
99

1010
const baseUrl = 'http://localhost:8000/api/user';
11-
const eventbriteUrl = 'https://www.eventbriteapi.com/v3';
1211

1312
if (!localStorage.getItem('userToken')) {
1413
window.location.href = 'http://127.0.0.1:5500/Frontend/index.html';
@@ -21,13 +20,41 @@ const config = {
2120
},
2221
};
2322

24-
const fetchEventName = async (eventId) => {
23+
const fetchUser = async () => {
2524
try {
26-
const { data } = await axios.get(`${eventbriteUrl}/events/${eventId}`, config);
27-
return data.event.name.text;
25+
const response = await axios.get(baseUrl, config);
26+
const user = response.data.User;
27+
28+
29+
document.getElementById('username').innerText = user.firstName + ' ' + user.lastName;
30+
fname.innerText = user.firstName;
31+
lname.innerText = user.lastName;
32+
email.innerText = user.email;
33+
city.innerText = user.city;
34+
35+
eventsList.innerHTML = '';
36+
if (user.events && user.events.length > 0) {
37+
const eventsHTML = user.events.map(event => {
38+
return `<li>${event.eventName}</li>`;
39+
});
40+
eventsList.innerHTML = eventsHTML.join('');
41+
} else {
42+
eventsList.innerHTML = '<li>No events found.</li>';
43+
}
44+
45+
const interestsList = document.getElementById('interests-list');
46+
interestsList.innerHTML = '';
47+
if (user.interests && user.interests.length > 0) {
48+
user.interests.forEach(interest => {
49+
const li = document.createElement('li');
50+
li.textContent = interest;
51+
interestsList.appendChild(li);
52+
});
53+
} else {
54+
interestsList.innerHTML = '<li>No interests found.</li>';
55+
}
2856
} catch (error) {
2957
console.log(error);
30-
return "Event Not Found";
3158
}
3259
};
3360

@@ -58,46 +85,5 @@ deleteUserBtn.addEventListener('click', (e) => {
5885
deleteUser();
5986
});
6087

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 (event) => {
77-
const eventName = await fetchEventName(event.eventId);
78-
return `<li>${event.eventId} - ${eventName}</li>`;
79-
}));
80-
eventsList.innerHTML = eventsHTML.join('');
81-
} else {
82-
eventsList.innerHTML = '<li>No events found.</li>';
83-
}
84-
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-
};
10188

102-
// Call the fetchUser function to populate the profile page
10389
fetchUser();

0 commit comments

Comments
 (0)