diff --git a/data/stub.ts b/data/stub.ts new file mode 100644 index 0000000..c2c79dd --- /dev/null +++ b/data/stub.ts @@ -0,0 +1,188 @@ +export class City { + private _name: string; + private _latitude: number; + private _longitude: number; + + constructor(name: string, latitude: number, longitude: number) { + this._name = name; + this._latitude = latitude; + this._longitude = longitude; + } + + get name(): string { + return this._name; + } + + set name(value: string) { + this._name = value; + } + + get latitude(): number { + return this._latitude; + } + + set latitude(value: number) { + this._latitude = value; + } + + get longitude(): number { + return this._longitude; + } + + set longitude(value: number) { + this._longitude = value; + } +} + +export class Weather { + private _at: string; + private _visibility: number; + private _weatherType: string; + private _weatherDescription: string; + private _temperature: number; + private _temperatureFeelsLike: number; + private _humidity: number; + private _windSpeed: number; + private _pressure: number; + private _city: City; + + constructor(at: string, visibility: number, weatherType: string, weatherDescription: string, temperature: number, temperatureFeelsLike: number, humidity: number, windSpeed: number, pressure: number, city: City) { + this._at = at; + this._visibility = visibility; + this._weatherType = weatherType; + this._weatherDescription = weatherDescription; + this._temperature = temperature; + this._temperatureFeelsLike = temperatureFeelsLike; + this._humidity = humidity; + this._windSpeed = windSpeed; + this._pressure = pressure; + this._city = city; + } + + get at(): string { + return this._at; + } + + set at(value: string) { + this._at = value; + } + + get visibility(): number { + return this._visibility; + } + + set visibility(value: number) { + this._visibility = value; + } + + get weatherType(): string { + return this._weatherType; + } + + set weatherType(value: string) { + this._weatherType = value; + } + + get weatherDescription(): string { + return this._weatherDescription; + } + + set weatherDescription(value: string) { + this._weatherDescription = value; + } + + get temperature(): number { + return this._temperature; + } + + set temperature(value: number) { + this._temperature = value; + } + + get temperatureFeelsLike(): number { + return this._temperatureFeelsLike; + } + + set temperatureFeelsLike(value: number) { + this._temperatureFeelsLike = value; + } + + get humidity(): number { + return this._humidity; + } + + set humidity(value: number) { + this._humidity = value; + } + + get windSpeed(): number { + return this._windSpeed; + } + + set windSpeed(value: number) { + this._windSpeed = value; + } + + get pressure(): number { + return this._pressure; + } + + set pressure(value: number) { + this._pressure = value; + } + + get city(): City { + return this._city; + } + + set city(value: City) { + this._city = value; + } +} + +export const CITIES_DATA: City[] = [ + new City("Paris", 48.866667, 2.333333), + new City("Clermont-Ferrand", 45.777222, 3.087025), + new City("Lyon", 45.764043, 4.835659), + new City("Marseille", 43.296482, 5.36978), + new City("Bruxelles", 50.85034, 4.35171), +]; + +export const FAVORITE_CITY_DATA = + new City("Clermont-Ferrand", 45.777222, 3.087025); + +export const DEFAULT_SELECTED_CITY_DATA: City = + new City("Paris", 48.866667, 2.333333); + +export const WEATHER_DATA: Weather[] = [ + new Weather("2023-01-22 09:55:59", 10000, "Nuageux", + "couvert", 0.52, -4.34, + 82, 5.14, 1032, + new City("Paris", 48.866667, 2.333333) + ), + new Weather("2023-01-22 09:55:59", 10000, "Nuageux", + "couvert", 0.52, -4.34, + 82, 5.14, 1032, + new City("Clermont-Ferrand", 45.777222, 3.087025) + ), + new Weather("2023-01-22 09:55:59", 10000, "Nuageux", + "couvert", 0.52, -4.34, + 82, 5.14, 1032, + new City("Lyon", 45.764043, 4.835659) + ), + new Weather("2023-01-22 09:55:59", 10000, "Nuageux", + "couvert", 0.52, -4.34, + 82, 5.14, 1032, + new City("Marseille", 43.296482, 5.36978) + ), + new Weather("2023-01-22 09:55:59", 10000, "Nuageux", + "couvert", 0.52, -4.34, + 82, 5.14, 1032, + new City("Bruxelles", 50.85034, 4.35171) + ), +]; + +export const getCurrentWeather = (cityName: string) => { + if (cityName === undefined) return {}; + return WEATHER_DATA.filter(elt => elt.city.name === cityName)[0]; +}