Skip to content

Commit 805afd3

Browse files
step-07: build SDK
1 parent fa57eb6 commit 805afd3

File tree

1 file changed

+23
-0
lines changed
  • shared/src/commonMain/kotlin/com/jetbrains/handson/kmm/shared

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.jetbrains.handson.kmm.shared
2+
3+
import com.jetbrains.handson.kmm.shared.cache.Database
4+
import com.jetbrains.handson.kmm.shared.cache.DatabaseDriverFactory
5+
import com.jetbrains.handson.kmm.shared.entity.RocketLaunch
6+
import com.jetbrains.handson.kmm.shared.network.SpaceXApi
7+
8+
class SpaceXSDK (databaseDriverFactory: DatabaseDriverFactory) {
9+
private val database = Database(databaseDriverFactory)
10+
private val api = SpaceXApi()
11+
12+
@Throws(Exception::class) suspend fun getLaunches(forceReload: Boolean): List<RocketLaunch> {
13+
val cachedLaunches = database.getAllLaunches()
14+
return if (cachedLaunches.isNotEmpty() && !forceReload) {
15+
cachedLaunches
16+
} else {
17+
api.getAllLaunches().also {
18+
database.clearDatabase()
19+
database.createLaunches(it)
20+
}
21+
}
22+
}
23+
}

0 commit comments

Comments
 (0)