Guest User

Untitled

a guest
Feb 13th, 2022
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class ArtGallery {
  2.     listOFArticles = [];
  3.     guests = [];
  4.  
  5.     constructor(creator) {
  6.         this.creator = creator;
  7.         this.possibleArticles = {
  8.             picture: 200,
  9.             photo: 50,
  10.             item: 250
  11.         };
  12.     }
  13.  
  14.     addArticle(articleModel, articleName, quantity) {
  15.         if (!this.possibleArticles[articleModel.toLowerCase()]) {
  16.             throw new Error(`This article model is not included in this gallery!`);
  17.         }
  18.  
  19.  
  20.         if (!this.listOFArticles.some(x => x.articleName == articleName)) {
  21.             let articleModelToAdd = articleModel.toLowerCase();
  22.             let article = {
  23.                 articleModelToAdd,
  24.                 articleName,
  25.                 quantity
  26.             }
  27.             this.listOFArticles.push(article);
  28.         } else {
  29.             this.listOFArticles.find(x => x.articleName == articleName).quantity += quantity // article не съществува, трябва да го вземеш от масива
  30.         }
  31.         return `Successfully added article ${articleName} with a new quantity- ${quantity}.`;
  32.  
  33.     }
  34.     inviteGuest(guestName, personality) {
  35.  
  36.         if (this.guests.some(x => x.guestName == guestName)) {
  37.             throw new Error(`${guestName} has already been invited.`);
  38.         }
  39.        
  40.         let guest = {
  41.             guestName,
  42.             points : 0,    //не можеш да зададеш points, защото го няма дефинирано
  43.             purchaseArticle: 0
  44.         }
  45.         if (personality === 'Vip') {
  46.             guest.points = 500;
  47.         } else if (personality === 'Middle') {
  48.             guest.points = 250;
  49.         } else {
  50.             guest.points = 50;
  51.         }
  52.         this.guests.push(guest);  // не добавяш гостите в масива
  53.  
  54.  
  55.         return `You have successfully invited ${guestName}!`;
  56.     }
  57.  
  58.     buyArticle(articleModel, articleName, guestName) {
  59.         if (!this.listOFArticles.some(x => x.articleName == articleName && x.articleModelToAdd == articleModel)) { // твоето проверява дали има елемент с това име и след това с този модел, а не елемент с двете заедно
  60.             throw new Error(`This article is not found.`);
  61.         }
  62.         let articleToBuy = this.listOFArticles.find(x => x.articleModelToAdd == articleModel && x.articleName == articleName);
  63.  
  64.         if (articleToBuy.quantity <= 0) {
  65.             throw new Error(`The {articleName} is not available.`);
  66.         }
  67.         if (!this.guests.some(x => x.guestName == guestName)) {
  68.             throw new Error(`This guest is not invited.`);
  69.         }
  70.  
  71.         let guest = this.guests.find(x => x.guestName == guestName); // тук твоето търси първия, който не е undefined, а трябва да намери елемента с това име
  72.  
  73.         if (guest.points < this.possibleArticles[articleModel.toLowerCase()]) { // тук не знам какво си се опитал да направиш
  74.             return `You need to more points to purchase the article.`;
  75.         } else {
  76.             guest.points -= this.possibleArticles[articleModel.toLowerCase()]; // тук не знам какво си се опитал да направиш
  77.             articleToBuy.quantity--;
  78.             guest.purchaseArticle++;
  79.         }
  80.         return `${guestName} successfully purchased the article worth ${this.possibleArticles[articleModel.toLowerCase()]} points.`; // тук не знам какво си се опитал да направиш
  81.     }
  82.  
  83.     showGalleryInfo(criteria) {
  84.         if (criteria === 'article') {
  85.             return `Articles information:\n${this.listOFArticles // тук имаш грешка в изписването с малка буква, вместо голяма
  86.                 .map(
  87.                     article =>
  88.                         `${article.articleModelToAdd} - ${article.articleName} - ${article.quantity}` // тук грешно взимат property, което го няма в този масив
  89.                 )
  90.                 .join('\n')}`;
  91.         }
  92.  
  93.         if (criteria === 'guest') {
  94.             return `Guests information:\n${this.guests
  95.                 .map(guest => `${guest.guestName} - ${guest.purchaseArticle}`)
  96.                 .join('\n')}`;
  97.         }
  98.     }
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment