Skip to content

Commit dcb808b

Browse files
committed
refactor: make full transition to new eatery backend
1 parent 5e4023c commit dcb808b

6 files changed

Lines changed: 63 additions & 39 deletions

File tree

app/src/main/java/com/cornellappdev/transit/models/ecosystem/Eatery.kt

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,25 @@ import java.time.format.DateTimeFormatter
1616
@JsonClass(generateAdapter = true)
1717
data class Eatery(
1818
@Json(name = "id") var id: Int,
19+
@Json(name = "cornellId") var cornellId: Int? = null,
20+
@Json(name = "announcements") var announcements: List<Any> = emptyList(),
1921
@Json(name = "name") var name: String,
20-
@Json(name = "menu_summary") var menuSummary: String?,
21-
@Json(name = "image_url") var imageUrl: String?,
22-
@Json(name = "location") var location: String?,
23-
@Json(name = "campus_area") var campusArea: String?,
24-
@Json(name = "online_order_url") var onlineOrderUrl: String?,
25-
@Json(name = "latitude") var latitude: Double?,
26-
@Json(name = "longitude") var longitude: Double?,
27-
@Json(name = "payment_accepts_meal_swipes") var paymentAcceptsMealSwipes: Boolean?,
28-
@Json(name = "payment_accepts_brbs") var paymentAcceptsBrbs: Boolean?,
29-
@Json(name = "payment_accepts_cash") var paymentAcceptsCash: Boolean?,
30-
@Json(name = "events") val events: List<Event>?
22+
@Json(name = "shortName") var shortName: String? = null,
23+
@Json(name = "about") var about: String? = null,
24+
@Json(name = "shortAbout") var shortAbout: String? = null,
25+
@Json(name = "cornellDining") var cornellDining: Boolean? = null,
26+
@Json(name = "menuSummary") var menuSummary: String? = null,
27+
@Json(name = "imageUrl") var imageUrl: String? = null,
28+
@Json(name = "location") var location: String? = null,
29+
@Json(name = "campusArea") var campusArea: String? = null,
30+
@Json(name = "onlineOrderUrl") var onlineOrderUrl: String? = null,
31+
@Json(name = "contactPhone") var contactPhone: String? = null,
32+
@Json(name = "contactEmail") var contactEmail: String? = null,
33+
@Json(name = "latitude") var latitude: Double? = null,
34+
@Json(name = "longitude") var longitude: Double? = null,
35+
@Json(name = "paymentMethods") var paymentMethods: List<String>? = emptyList(),
36+
@Json(name = "eateryTypes") var eateryTypes: List<String>? = emptyList(),
37+
@Json(name = "events") val events: List<Event>? = null
3138
) : DetailedEcosystemPlace {
3239

3340
override fun operatingHours(): List<DayOperatingHours> {
@@ -58,6 +65,10 @@ data class Eatery(
5865
val openTime = event.startTime?.format(DateTimeFormatter.ofPattern("h:mm a"))
5966
val closeTime = event.endTime?.format(DateTimeFormatter.ofPattern("h:mm a"))
6067

68+
if (openTime == null || closeTime == null) {
69+
return@forEach
70+
}
71+
6172
val timeString = "$openTime - $closeTime"
6273

6374
if (dayOfWeek != null && dailyHours[dayOfWeek]?.none { it.contains(timeString) } != false) {
@@ -85,10 +96,7 @@ data class Eatery(
8596
@JsonClass(generateAdapter = true)
8697
data class Event(
8798
@Json(name = "id") val id: Int? = null,
88-
/**
89-
* Descriptions tend to be "Lunch", "Dinner", etc..
90-
*/
91-
@Json(name = "event_description") val description: String? = null,
92-
@Json(name = "start") val startTime: LocalDateTime? = null,
93-
@Json(name = "end") val endTime: LocalDateTime? = null,
99+
@Json(name = "type") val type: String? = null,
100+
@Json(name = "startTimestamp") val startTime: LocalDateTime? = null,
101+
@Json(name = "endTimestamp") val endTime: LocalDateTime? = null,
94102
)

app/src/main/java/com/cornellappdev/transit/networking/EateryNetworkApi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.cornellappdev.transit.models.ecosystem.Eatery
44
import retrofit2.http.GET
55

66
interface EateryNetworkApi {
7-
@GET("/eatery/")
7+
@GET("/eateries/")
88
suspend fun getEateries(): List<Eatery>
99

1010
}

app/src/main/java/com/cornellappdev/transit/networking/MoshiAdapters.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.google.android.gms.maps.model.LatLng
44
import com.squareup.moshi.FromJson
55
import com.squareup.moshi.Json
66
import com.squareup.moshi.ToJson
7-
import java.text.ParseException
87
import java.time.Instant
98
import java.time.LocalDateTime
109
import java.time.ZoneId
@@ -36,13 +35,16 @@ class DateTimeAdapter {
3635
}
3736

3837
@FromJson
39-
fun fromJson(dateTime: Long): LocalDateTime {
40-
try {
41-
val instant = Instant.ofEpochSecond(dateTime)
42-
return LocalDateTime.ofInstant(instant, ZoneId.systemDefault())
43-
} catch (e: Exception) {
44-
e.printStackTrace()
38+
fun fromJson(dateTime: String): LocalDateTime {
39+
return try {
40+
val instant = Instant.parse(dateTime)
41+
LocalDateTime.ofInstant(instant, ZoneId.systemDefault())
42+
} catch (_: Exception) {
43+
try {
44+
LocalDateTime.parse(dateTime)
45+
} catch (_: Exception) {
46+
LocalDateTime.MIN
47+
}
4548
}
46-
return LocalDateTime.MIN
4749
}
4850
}

app/src/main/java/com/cornellappdev/transit/ui/components/home/DetailedPlaceSheetContent.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,17 +205,24 @@ private class ExamplePlaceProvider : PreviewParameterProvider<DetailedEcosystemP
205205
override val values = sequenceOf(
206206
Eatery(
207207
id = 1,
208+
cornellId = 1,
209+
announcements = emptyList(),
208210
name = "Okenshields",
211+
shortName = "Okenshields",
212+
about = "Dining room located in Willard Straight Hall on Central Campus.",
213+
shortAbout = null,
214+
cornellDining = true,
209215
menuSummary = null,
210216
imageUrl = null,
211217
location = "Willard Straight Hall",
212218
campusArea = "Central",
213219
onlineOrderUrl = null,
220+
contactPhone = null,
221+
contactEmail = null,
214222
latitude = null,
215223
longitude = null,
216-
paymentAcceptsMealSwipes = null,
217-
paymentAcceptsBrbs = null,
218-
paymentAcceptsCash = null,
224+
paymentMethods = listOf("SWIPE", "BRB"),
225+
eateryTypes = listOf("DINING"),
219226
events = null
220227
), Library(
221228
id = 1,

app/src/main/java/com/cornellappdev/transit/ui/components/home/EateryDetailsContent.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import com.cornellappdev.transit.ui.theme.TransitBlue
2727
import com.cornellappdev.transit.util.StringUtils.createDeepLink
2828
import com.cornellappdev.transit.util.TimeUtils.isOpenAnnotatedStringFromOperatingHours
2929
import com.cornellappdev.transit.util.TimeUtils.rotateOperatingHours
30-
import com.cornellappdev.transit.util.getAboutContent
3130

3231
@Composable
3332
fun EateryDetailsContent(
@@ -52,7 +51,7 @@ fun EateryDetailsContent(
5251

5352
DetailedPlaceHeaderSection(
5453
eatery.name,
55-
eatery.campusArea + distanceString,
54+
(eatery.location ?: "") + distanceString,
5655
leftAnnotatedString = isOpenAnnotatedStringFromOperatingHours(
5756
eatery.operatingHours()
5857
),
@@ -66,6 +65,10 @@ fun EateryDetailsContent(
6665

6766
Spacer(modifier = Modifier.height(24.dp))
6867

68+
val aboutText = eatery.shortAbout
69+
?.takeIf { it.isNotBlank() }
70+
?: "This is one of Cornell's many eateries."
71+
6972
Text(
7073
text = "About",
7174
style = Style.detailSubtitle,
@@ -74,10 +77,10 @@ fun EateryDetailsContent(
7477
)
7578

7679
Text(
77-
text = getAboutContent(eatery.name),
80+
text = aboutText,
7881
style = Style.detailBody,
7982
color = SecondaryText,
80-
modifier = Modifier.padding(bottom = 15.dp)
83+
modifier = Modifier.padding(bottom = 12.dp)
8184
)
8285

8386
val (annotatedString, inlineContent) =
@@ -110,11 +113,8 @@ fun EateryDetailsContent(
110113
color = SecondaryText,
111114
modifier = Modifier.padding(start = 15.dp)
112115
)
113-
114116
}
115-
116117
Spacer(modifier = Modifier.height(24.dp))
117-
118118
HorizontalDivider(thickness = 1.dp, color = DividerGray)
119119

120120
ExpandableOperatingHoursList(

app/src/main/java/com/cornellappdev/transit/ui/components/home/EcosystemBottomSheetContent.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -667,17 +667,24 @@ private fun PreviewEcosystemBottomSheet() {
667667
private fun PreviewBottomSheetFilteredContentFavorites() {
668668
val mockEatery = Eatery(
669669
id = 1,
670+
cornellId = 1,
671+
announcements = emptyList(),
670672
name = "Trillium",
673+
shortName = "Trillium",
674+
about = "A central campus cafe with coffee, pastries, and sandwiches.",
675+
shortAbout = null,
676+
cornellDining = true,
671677
menuSummary = "Coffee, pastries, sandwiches",
672678
imageUrl = null,
673679
location = "Kennedy Hall",
674680
campusArea = "Central Campus",
675681
onlineOrderUrl = null,
682+
contactPhone = null,
683+
contactEmail = null,
676684
latitude = 42.4488,
677685
longitude = -76.4813,
678-
paymentAcceptsMealSwipes = true,
679-
paymentAcceptsBrbs = true,
680-
paymentAcceptsCash = true,
686+
paymentMethods = listOf("SWIPE", "BRB", "CASH"),
687+
eateryTypes = listOf("CAFE"),
681688
events = null
682689
)
683690

0 commit comments

Comments
 (0)