-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUserInfo.js
103 lines (96 loc) · 3.28 KB
/
UserInfo.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
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
const mysql = require('mysql');
const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'spotitip' });
async function getAllMyUsers(userId) {
return new Promise((resolve, reject) => {
const sql = 'SELECT name, email, password, followers, following FROM user WHERE id = ?';
connection.query(sql, [userId], (err, results) => {
if (err) { reject(err);
} else { resolve(results);
}
});
});
}
async function getAllMyUserArtistFollow(userId) {
return new Promise((resolve, reject) => {
const sql = `
SELECT a.name FROM user_artist_follow uaf
JOIN artist a ON uaf.artist_id = a.id
WHERE uaf.user_id = ?
`;
connection.query(sql, [userId], (err, results) => {
if (err) { reject(err);
} else { resolve(results); }
});
});
}
async function getAllMyUserAlbumFollow(userId) {
return new Promise((resolve, reject) => {
const sql = `
SELECT a.name, ar.name artistName
FROM user_album_follow uaf
JOIN album a ON uaf.album_id = a.id
JOIN album_artist_has aah ON a.id = aah.album_id
JOIN artist ar ON aah.artist_id = ar.id
WHERE uaf.user_id = ?
`;
connection.query(sql, [userId], (err, results) => {
if (err) { reject(err);
} else { resolve(results); }
});
});
}
async function getAllMyUserCreatePlaylist(userId) {
return new Promise((resolve, reject) => {
const sql = `
SELECT p.name, us.name creator_name
FROM user_playlist_create upc
JOIN playlist p ON upc.playlist_id = p.id
JOIN user us ON upc.user_id = us.id
WHERE upc.user_id = ?
`;
connection.query(sql, [userId], (err, results) => {
if (err) { reject(err);
} else { resolve(results); }
});
});
}
async function getAllMyUserFollowPlaylist(userId) {
return new Promise((resolve, reject) => {
const sql = `
SELECT p.name, u.name creator_name
FROM user_playlist_follow upf
JOIN user_playlist_create upc ON upf.playlist_id = upc.playlist_id
JOIN playlist p ON upf.playlist_id = p.id
JOIN user u ON upc.user_id = u.id
WHERE upf.user_id = ?
`;
connection.query(sql, [userId], (err, results) => {
if (err) { reject(err);
} else { resolve(results); }
});
});
}
async function getAllMyUserLikedSong(userId) {
return new Promise((resolve, reject) => {
const sql = `
SELECT s.name, ar.name artistName
FROM user_song_liked usl
JOIN song s ON usl.song_id = s.id
JOIN song_artist_sing sas ON s.id = sas.song_id
JOIN artist ar ON sas.artist_id = ar.id
WHERE usl.user_id = ?
`;
connection.query(sql, [userId], (err, results) => {
if (err) { reject(err);
} else { resolve(results); }
});
});
}
module.exports = {
getAllMyUsers,
getAllMyUserArtistFollow,
getAllMyUserAlbumFollow,
getAllMyUserCreatePlaylist,
getAllMyUserFollowPlaylist,
getAllMyUserLikedSong
}