-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathprofile.js
78 lines (66 loc) · 2.64 KB
/
profile.js
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
document.getElementById('file-input').addEventListener('change', function(event) {
const file = event.target.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
document.getElementById('profile-img').src = e.target.result;
};
reader.readAsDataURL(file);
}
});
document.addEventListener('DOMContentLoaded', async () => {
const token = localStorage.getItem('authToken');
if (!token) {
alert("Please log in first!");
window.location.href = '/login.html';
return;
}
try {
const res = await fetch('http://localhost:5000/api/v1/users/profile', {
headers: { 'Authorization': `Bearer ${token}` }
});
const user = await res.json();
document.getElementById('username').value = user.username || '';
document.getElementById('email').value = user.email || '';
document.getElementById('phone').value = user.phone || '';
document.getElementById('title').value = user.title || '';
document.getElementById('linkedin').value = user.linkedin || '';
if (user.profilePic) {
document.getElementById('profile-img').src = user.profilePic;
}
} catch (err) {
console.error('Error fetching profile:', err);
}
});
document.getElementById('profile-form').addEventListener('submit', async (event) => {
event.preventDefault();
const formData = new FormData();
formData.append('name', document.getElementById('username').value);
formData.append('email', document.getElementById('email').value);
formData.append('phone', document.getElementById('phone').value);
formData.append('title', document.getElementById('title').value);
formData.append('linkedin', document.getElementById('linkedin').value);
const fileInput = document.getElementById('file-input');
if (fileInput.files.length > 0) {
formData.append('profilePic', fileInput.files[0]);
}
const token = localStorage.getItem('authToken');
if (!token) {
alert("Please log in first!");
return;
}
try {
const res = await fetch('http://localhost:5000/api/v1/users/profile', {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData
});
if (!res.ok) throw new Error('Profile update failed');
const data = await res.json();
// Update UI
document.getElementById('profile-img').src = data.user.profilePic;
alert("Profile updated successfully!");
} catch (err) {
console.error('Error updating profile:', err);
}
});