projet
This commit is contained in:
@@ -4,8 +4,8 @@ const key = 'NWmMhlPAbPlVnaDqVGyX';
|
||||
const secret = 'hZPaoBiGiSwlCjARrbOICOpDuITwyJAm';
|
||||
const perPage = 100;
|
||||
|
||||
export async function discogsearch(query, type) {
|
||||
const url = `${baseUrlsearch}?q=${query}&type=${type}&per_page=${perPage}&key=${key}&secret=${secret}`;
|
||||
export async function discogsearch(query, type, page = 1) {
|
||||
const url = `${baseUrlsearch}?q=${query}&type=${type}&per_page=${perPage}&page=${page}&key=${key}&secret=${secret}`;
|
||||
const response = await fetch(url);
|
||||
return await response.json();
|
||||
}
|
||||
|
||||
@@ -16,6 +16,12 @@ import {
|
||||
setDoc
|
||||
} from "https://www.gstatic.com/firebasejs/9.6.1/firebase-firestore.js";
|
||||
|
||||
import {
|
||||
query,
|
||||
where,
|
||||
getDocs
|
||||
} from "https://www.gstatic.com/firebasejs/9.6.1/firebase-firestore.js";
|
||||
|
||||
const firebaseConfig = {
|
||||
apiKey: "AIzaSyBXKB6AGbTN95lOLrIVpWrSIK_uL_C6GUA",
|
||||
authDomain: "music-app-riotjs.firebaseapp.com",
|
||||
@@ -31,17 +37,22 @@ const auth = getAuth(app);
|
||||
const db = getFirestore(app);
|
||||
|
||||
export async function login(email, password) {
|
||||
await signInWithEmailAndPassword(auth, email, password);
|
||||
const userC = await signInWithEmailAndPassword(auth, email, password);
|
||||
localStorage.setItem("uid", userC.user.uid);
|
||||
return userC;
|
||||
}
|
||||
|
||||
export async function sign(email, password) {
|
||||
const userCred = await createUserWithEmailAndPassword(auth, email, password);
|
||||
await adduserdata(userCred.user.email);
|
||||
await adduserdata(userCred.user.email, userCred.user.uid);
|
||||
localStorage.setItem("uid", userC.user.uid);
|
||||
return userCred;
|
||||
}
|
||||
|
||||
export async function adduserdata(email_user) {
|
||||
export async function adduserdata(email_user, uid) {
|
||||
await addDoc(collection(db, "users"), {
|
||||
email: email_user
|
||||
email: email_user,
|
||||
uid: uid
|
||||
});
|
||||
}
|
||||
|
||||
@@ -53,32 +64,80 @@ window.observeAuthState = function(callback) {
|
||||
onAuthStateChanged(auth, callback);
|
||||
};
|
||||
|
||||
|
||||
export async function favorite(releaseId) {
|
||||
const user = auth.currentUser;
|
||||
if (!user) return;
|
||||
await addDoc(collection(db, "users", user.email, "favorites"), {
|
||||
id: releaseId
|
||||
const storedUid = localStorage.getItem("uid");
|
||||
|
||||
|
||||
|
||||
|
||||
const usersRef = collection(db, "users");
|
||||
const q = query(usersRef, where("uid", "==", storedUid));
|
||||
const querySnapshot = await getDocs(q);
|
||||
|
||||
|
||||
const userDoc = querySnapshot.docs[0];
|
||||
const userDocId = userDoc.id;
|
||||
|
||||
const favoritesRef = collection(db, "users", userDocId, "favorites");
|
||||
|
||||
await addDoc(favoritesRef, {
|
||||
releaseId: releaseId,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export async function getFavorites() {
|
||||
const user = auth.currentUser;
|
||||
if (!user) {
|
||||
console.warn("Aucun utilisateur connecté.");
|
||||
const storedUid = localStorage.getItem("uid");
|
||||
|
||||
if (!storedUid) {
|
||||
console.warn("Aucun UID trouvé dans localStorage.");
|
||||
return [];
|
||||
}
|
||||
|
||||
const userDocRef = doc(db, "users", user.email);
|
||||
const favsCollection = collection(userDocRef, "favorites");
|
||||
const usersRef = collection(db, "users");
|
||||
const q = query(usersRef, where("uid", "==", storedUid));
|
||||
const querySnapshot = await getDocs(q);
|
||||
|
||||
const snapshot = await getDocs(favsCollection);
|
||||
const favorites = snapshot.docs.map(doc => doc.data());
|
||||
if (querySnapshot.empty) {
|
||||
console.warn("Aucun document utilisateur trouvé avec cet UID.");
|
||||
return [];
|
||||
}
|
||||
|
||||
return favorites;
|
||||
const userDoc = querySnapshot.docs[0];
|
||||
const userDocId = userDoc.id;
|
||||
|
||||
const favoritesRef = collection(db, "users", userDocId, "favorites");
|
||||
const snapshot = await getDocs(favoritesRef);
|
||||
|
||||
return snapshot.docs.map(doc => doc.data().releaseId);
|
||||
}
|
||||
|
||||
export async function isFavorite(releaseId) {
|
||||
const storedUid = localStorage.getItem("uid");
|
||||
if (!storedUid) return false;
|
||||
|
||||
// Recherche l'utilisateur avec le bon uid
|
||||
const usersRef = collection(db, "users");
|
||||
const userQuery = query(usersRef, where("uid", "==", storedUid));
|
||||
const userSnapshot = await getDocs(userQuery);
|
||||
|
||||
if (userSnapshot.empty) return false;
|
||||
|
||||
const userDoc = userSnapshot.docs[0];
|
||||
const userDocId = userDoc.id;
|
||||
|
||||
// Recherche si le releaseId existe déjà dans les favoris
|
||||
const favoritesRef = collection(db, "users", userDocId, "favorites");
|
||||
const favQuery = query(favoritesRef, where("releaseId", "==", releaseId));
|
||||
const favSnapshot = await getDocs(favQuery);
|
||||
|
||||
return !favSnapshot.empty; // true = en favori, false = pas en favori
|
||||
}
|
||||
|
||||
window.login = login;
|
||||
window.sign = sign;
|
||||
window.logout = logout;
|
||||
window.favorite = favorite;
|
||||
window.getFavorites = getFavorites;
|
||||
window.getFavorites = getFavorites;
|
||||
window.isFavorite = isFavorite;
|
||||
Reference in New Issue
Block a user