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

Lines changed: 5 additions & 11 deletions
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

Lines changed: 33 additions & 47 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy