diff --git a/src/containers/locationBuilder.ts b/src/containers/locationBuilder.ts index b67a1a8..7e55d84 100644 --- a/src/containers/locationBuilder.ts +++ b/src/containers/locationBuilder.ts @@ -19,6 +19,7 @@ export default class LocationBuilder { private url?: string; private location?: string; private menu?: string; + private image?: URL; private coordinates?: ICoordinate; private acceptsOnlineOrders?: boolean; private times?: ITimeRange[]; @@ -71,6 +72,11 @@ export default class LocationBuilder { this.description = $("div.description p").text().trim(); this.menu = $("div.navItems > a#getMenu").attr("href"); this.location = $("div.location a").text().trim(); + + const conceptImageUrl = $(".conceptImage").children("img").first().prop("src"); + // assert(conceptImageUrl != undefined, `concept ${this.url} did not have a Concept Image!`) + this.image = conceptImageUrl ? new URL(conceptImageUrl) : undefined; + this.acceptsOnlineOrders = $("div.navItems.orderOnline").toArray().length > 0; @@ -102,7 +108,8 @@ export default class LocationBuilder { this.url === undefined || this.location === undefined || this.conceptId === undefined || - this.name === undefined + this.name === undefined || + this.image === undefined ) { throw Error( "Didn't finish configuring location before building metadata!" @@ -121,6 +128,7 @@ export default class LocationBuilder { url: this.url, location: this.location, menu: this.menu, + image: this.image, coordinates: this.coordinates, acceptsOnlineOrders: this.acceptsOnlineOrders, times: this.times, diff --git a/src/types.ts b/src/types.ts index 0a5cef5..7a32421 100644 --- a/src/types.ts +++ b/src/types.ts @@ -5,6 +5,7 @@ export interface ILocation { description: string; url: string; menu?: string; + image: URL; location: string; coordinates?: ICoordinate; acceptsOnlineOrders: boolean;