product rating 100% complated

pull/420/head
Fitsumhelina 10 months ago
parent 721ad7cf91
commit ecbb5332a0

@ -30,86 +30,86 @@
const users = [
{
_id: 'ab12ex',
username: 'Alex',
email: 'alex@alex.com',
password: '123123',
createdAt: '08/01/2020 9:00 AM',
_id: "ab12ex",
username: "Alex",
email: "alex@alex.com",
password: "123123",
createdAt: "08/01/2020 9:00 AM",
isLoggedIn: false,
},
{
_id: 'fg12cy',
username: 'Asab',
email: 'asab@asab.com',
password: '123456',
createdAt: '08/01/2020 9:30 AM',
_id: "fg12cy",
username: "Asab",
email: "asab@asab.com",
password: "123456",
createdAt: "08/01/2020 9:30 AM",
isLoggedIn: true,
},
{
_id: 'zwf8md',
username: 'Brook',
email: 'brook@brook.com',
password: '123111',
createdAt: '08/01/2020 9:45 AM',
_id: "zwf8md",
username: "Brook",
email: "brook@brook.com",
password: "123111",
createdAt: "08/01/2020 9:45 AM",
isLoggedIn: true,
},
{
_id: 'eefamr',
username: 'Martha',
email: 'martha@martha.com',
password: '123222',
createdAt: '08/01/2020 9:50 AM',
_id: "eefamr",
username: "Martha",
email: "martha@martha.com",
password: "123222",
createdAt: "08/01/2020 9:50 AM",
isLoggedIn: false,
},
{
_id: 'ghderc',
username: 'Thomas',
email: 'thomas@thomas.com',
password: '123333',
createdAt: '08/01/2020 10:00 AM',
_id: "ghderc",
username: "Thomas",
email: "thomas@thomas.com",
password: "123333",
createdAt: "08/01/2020 10:00 AM",
isLoggedIn: false,
},
]
];
const products = [
{
_id: 'eedfcf',
name: 'mobile phone',
description: 'Huawei Honor',
_id: "eedfcf",
name: "mobile phone",
description: "Huawei Honor",
price: 200,
ratings: [
{ userId: 'fg12cy', rate: 5 },
{ userId: 'zwf8md', rate: 4.5 },
{ userId: "fg12cy", rate: 5 },
{ userId: "zwf8md", rate: 4.5 },
],
likes: [],
},
{
_id: 'aegfal',
name: 'Laptop',
description: 'MacPro: System Darwin',
_id: "aegfal",
name: "Laptop",
description: "MacPro: System Darwin",
price: 2500,
ratings: [],
likes: ['fg12cy'],
likes: ["fg12cy"],
},
{
_id: 'hedfcg',
name: 'TV',
description: 'Smart TV:Procaster',
_id: "hedfcg",
name: "TV",
description: "Smart TV:Procaster",
price: 400,
ratings: [{ userId: 'fg12cy', rate: 5 }],
likes: ['fg12cy'],
ratings: [{ userId: "fg12cy", rate: 5 }],
likes: ["fg12cy"],
},
]
];
// Imagine you are getting the above users collection from a MongoDB database.
// a. Create a function called signUp which allows user to add to the collection. If user exists, inform the user that he has already an account.
const newuser = {
_id: 'eedfcf',
username: 'John Doe',
email: 'johndoe@johndoe.com',
password: '123456',
createdAt: '08/01/2020 10:15 AM',
isLoggedIn: null,
};
// a. Create a function called signUp which allows user to add to the collection. If user exists, inform the user that he has already an account.
const newuser = {
_id: "eedfcf",
username: "John Doe",
email: "johndoe@johndoe.com",
password: "123456",
createdAt: "08/01/2020 10:15 AM",
isLoggedIn: null,
};
// const signUp = (newuser) => {
@ -138,69 +138,64 @@ const products = [
// }
// }
// signUp(newuser);
// b. Create a function called signIn which allows user to sign in to the application
const signIn = (newuser) => {
const exists = users.find(user => user._id === newuser._id);
if (exists){
exists.isLoggedIn = true;
console.log ("user signIn success")
}
else{
exists.isLoggedIn = false;
console.log ("account does not exist")
}
}
// b. Create a function called signIn which allows user to sign in to the application
const signIn = (newuser) => {
const exists = users.find((user) => user._id === newuser._id);
if (exists) {
exists.isLoggedIn = true;
console.log("user signIn success");
} else {
exists.isLoggedIn = false;
console.log("account does not exist");
}
};
// The products array has three elements and each of them has six properties.
const product =[
{
_id: 'eedfcf',
name: 'Mobile phone',
description: 'Huawei Honor',
price: 200,
ratings: [
{ userId: 'fg12cy', rate: 5 },
{ userId: 'zwf8md', rate: 4.5 },
],
likes: [],
},
{
_id: 'aegfal',
name: 'Laptop',
description: 'MacPro: System Darwin',
price: 2500,
ratings: [],
likes: ['fg12cy'],
},
{
_id: 'hedfcg',
name: 'TV',
description: 'Smart TV: Procaster',
price: 400,
ratings: [{ userId: 'fg12cy', rate: 5 }],
likes: ['fg12cy'],
},
]
const product = [
{
_id: "eedfcf",
name: "Mobile phone",
description: "Huawei Honor",
price: 200,
ratings: [
{ userId: "fg12cy", rate: 5 },
{ userId: "zwf8md", rate: 4.5 },
],
likes: [],
},
{
_id: "aegfal",
name: "Laptop",
description: "MacPro: System Darwin",
price: 2500,
ratings: [],
likes: ["fg12cy"],
},
{
_id: "hedfcg",
name: "TV",
description: "Smart TV: Procaster",
price: 400,
ratings: [{ userId: "fg12cy", rate: 5 }],
likes: ["fg12cy"],
},
];
// a. Create a function called rateProduct which rates the product
const rateproduct = (productId , userid , rate ) => {
const product = product.find (item=>productId===item._id)
if (product){
const exixst = product.ratings.find(rating => userid===rating.userId)
if(exixst){
console.log("user already rated this product")
}
else{
product.rating.push({userid ,rate})
}
}
else{
console.log("product not found")
}
// a. Create a function called rateProduct which rates the product
const rateproduct = (productId, userid, rate) => {
const product = product.find((item) => productId === item._id);
if (product) {
const exixst = product.ratings.find((rating) => userid === rating.userId);
if (exixst) {
console.log("user already rated this product");
} else {
product.rating.push({ userid, rate });
}
// b. Create a function called averageRating which calculate the average rating of a product
} else {
console.log("product not found");
}
};
// b. Create a function called averageRating which calculate the average rating of a product
// Create a function called likeProduct. This function will helps to like to the product if it is not liked and remove like if it was liked.
// Create a function called likeProduct. This function will helps to like to the product if it is not liked and remove like if it was liked.

Loading…
Cancel
Save