Project: Mall App Client: Maiora
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

75 行
2.1 KiB

  1. import Offer from './offer';
  2. import MenuItem from './menu-item';
  3. export enum OutletType {
  4. FOOD = 'FOOD',
  5. SHOP = 'SHOP',
  6. };
  7. class Outlet {
  8. id: string;
  9. image_url?: string;
  10. name: string;
  11. description: string;
  12. offers: Array<Offer>;
  13. tags: Array<string>;
  14. menu_items: Array<MenuItem>;
  15. outlet_type: OutletType;
  16. is_bookmarked: boolean;
  17. rating: number;
  18. constructor(initializationObject: any) {
  19. if (!initializationObject.hasOwnProperty('id')) {
  20. throw new Error('Missing ID');
  21. }
  22. if (!initializationObject.hasOwnProperty('name')) {
  23. throw new Error('Missing name');
  24. }
  25. if (!initializationObject.hasOwnProperty('description')) {
  26. throw new Error('Missing description');
  27. }
  28. if (!initializationObject.hasOwnProperty('offers')) {
  29. throw new Error('Missing Offers');
  30. }
  31. if (!initializationObject.hasOwnProperty('tags')) {
  32. throw new Error('Missing tags');
  33. }
  34. if (!initializationObject.hasOwnProperty('menu_items')) {
  35. throw new Error('Missing Menu Items');
  36. }
  37. if (!initializationObject.hasOwnProperty('outlet_type')) {
  38. throw new Error('Missing Outlet type');
  39. }
  40. if (!initializationObject.hasOwnProperty('is_bookmarked')) {
  41. throw new Error('Missing Bookmarked flag');
  42. }
  43. if (!initializationObject.hasOwnProperty('rating')) {
  44. throw new Error('Missing Rating');
  45. }
  46. this.id = initializationObject.id;
  47. this.name = initializationObject.name;
  48. this.description = initializationObject.description;
  49. this.offers = initializationObject.offers;
  50. this.tags = initializationObject.tags;
  51. this.menu_items = initializationObject.menu_items;
  52. this.outlet_type = initializationObject.outlet_type;
  53. this.is_bookmarked = initializationObject.is_bookmarked;
  54. this.rating = initializationObject.rating;
  55. if (initializationObject.hasOwnProperty('image_url')) {
  56. this.image_url = initializationObject.image_url;
  57. }
  58. }
  59. }
  60. export default Outlet;