Skip to content
This repository has been archived by the owner on Feb 1, 2022. It is now read-only.

migrate food service #84

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ object Griebnitzsee : CanteenData(Id("mensaGriebnitzsee"), 62) {

private fun OpenMensaMeal.categoryMatches(string: String) = category.startsWith(string, ignoreCase = true)
override fun findCounter(meal: OpenMensaMeal): String? = when {
// TODO: translations
meal.categoryMatches("Angebot 1") -> "1"
meal.categoryMatches("Angebot 2") -> "2"
meal.categoryMatches("Angebot 3") -> "3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ import de.hpi.cloud.common.entity.Entity
import de.hpi.cloud.common.entity.Id
import de.hpi.cloud.common.entity.Wrapper
import de.hpi.cloud.common.protobuf.builder
import de.hpi.cloud.common.serializers.json.UriSerializer
import de.hpi.cloud.common.serializers.json.UrlSerializer
import de.hpi.cloud.common.types.L10n
import kotlinx.serialization.Serializable
import java.net.URI
import java.net.URL
import de.hpi.cloud.food.v1test.Counter as ProtoCounter

@Serializable
data class Counter(
val restaurantId: Id<Restaurant>,
val title: L10n<String>,
val iconUri: @Serializable(UriSerializer::class) URI? = null
val iconUrl: @Serializable(UrlSerializer::class) URL? = null
) : Entity<Counter>() {
companion object : Entity.Companion<Counter>("counter")

Expand All @@ -27,7 +27,7 @@ data class Counter(
ProtoCounter.newBuilder().builder(entity) {
restaurantId = it.restaurantId.value
title = it.title[context]
icon = it.iconUri.toString()
icon = it.iconUrl.toString()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ import de.hpi.cloud.common.entity.Id
import de.hpi.cloud.common.entity.Wrapper
import de.hpi.cloud.common.entity.asId
import de.hpi.cloud.common.protobuf.builder
import de.hpi.cloud.common.serializers.json.UriSerializer
import de.hpi.cloud.common.serializers.json.UrlSerializer
import de.hpi.cloud.common.types.L10n
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import java.net.URI
import java.net.URL
import java.util.Locale.GERMAN
import de.hpi.cloud.food.v1test.Label as ProtoLabel

@Serializable
data class Label(
val title: L10n<String>,
val aliases: Set<String> = setOf(),
val iconUri: @Serializable(UriSerializer::class) URI? = null
val iconUrl: @Serializable(UrlSerializer::class) URL? = null
) : Entity<Label>() {
companion object : Entity.Companion<Label>("label")

Expand All @@ -32,7 +32,7 @@ data class Label(
override fun toProtoBuilder(entity: Label, context: Context): ProtoLabel.Builder =
ProtoLabel.newBuilder().builder(entity) {
title = it.title[context]
icon = it.iconUri.toString()
icon = it.iconUrl.toString()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@ import de.hpi.cloud.common.Context
import de.hpi.cloud.common.entity.Entity
import de.hpi.cloud.common.entity.Wrapper
import de.hpi.cloud.common.protobuf.builder
import de.hpi.cloud.common.serializers.json.UrlSerializer
import de.hpi.cloud.common.types.L10n
import de.hpi.cloud.common.types.l10n
import kotlinx.serialization.Serializable
import java.net.URL
import de.hpi.cloud.food.v1test.Restaurant as ProtoRestaurant

@Serializable
data class Restaurant(
val title: L10n<String>
val title: L10n<String>,
val iconUrl: @Serializable(UrlSerializer::class) URL? = null
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A restaurant doesn't have an icon

) : Entity<Restaurant>() {
companion object : Entity.Companion<Restaurant>("restaurant")

Expand Down
30 changes: 15 additions & 15 deletions service-food/src/main/kotlin/de/hpi/cloud/food/fixtures/Labels.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,69 +6,69 @@ import de.hpi.cloud.common.entity.Wrapper
import de.hpi.cloud.common.types.L10n
import de.hpi.cloud.food.FOOD_CONTEXT
import de.hpi.cloud.food.entities.Label
import java.net.URI
import java.net.URL

val labelFixture: List<Label> = listOf(
Label(
title = L10n.from(de = "Alkohol", en = "Alcohol"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_alkohol_a.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_alkohol_a.png")
),
Label(
title = L10n.from(de = "Knoblauch", en = "Garlic"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_knoblauch_k_dick.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_knoblauch_k_dick.png")
),
Label(
title = L10n.from(de = "Schwein", en = "Pork"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_schwein_s.png"),
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_schwein_s.png"),
aliases = setOf("Schweinefleisch")
),
Label(
title = L10n.from(de = "Rind", en = "Beef"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_rind_r.png"),
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_rind_r.png"),
aliases = setOf("Rindfleisch")
),
Label(
title = L10n.from(de = "Lamm", en = "Lamb"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_lamm_l.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_lamm_l.png")
),
Label(
title = L10n.from(de = "Fisch", en = "Fish"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_fisch_f.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_fisch_f.png")
),
Label(
title = L10n.from(de = "Geflügel", en = "Poultry"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_hahn_g.png"),
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_hahn_g.png"),
aliases = setOf("Gefluegel", "Huhn", "Hahn", "Hühnchen", "Huehnchen", "Ente", "Gans", "Truthahn")
),
Label(
title = L10n.from(de = "Wild", en = "Venison"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_wild_h.png"),
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_wild_h.png"),
aliases = setOf("Wildfleisch")
),
Label(
title = L10n.from(de = "Vegan", en = "Vegan"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_vegan_w.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_vegan_w.png")
),
Label(
title = L10n.from(de = "Vegetarisch", en = "Vegetarian"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_vegetarisch_v.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_vegetarisch_v.png")
),
Label(
title = L10n.from(de = "Vital", en = "Vital"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_vital_m.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_vital_m.png")
),
Label(
title = L10n.from(de = "Regional", en = "Regional"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_regional.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_regional.png")
),
Label(
title = L10n.from(de = "Draußen", en = "Outdoor"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_outdoor_o.png"),
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_outdoor_o.png"),
aliases = setOf("Draussen")
),
Label(
title = L10n.from(de = "Foodtruck", en = "Food Truck"),
iconUri = URI("https://xml.stw-potsdam.de/images/icons/su_foottruck_o.png")
iconUrl = URL("https://xml.stw-potsdam.de/images/icons/su_foottruck_o.png")
)
)

Expand Down