Skip to content

Commit 20fa5f6

Browse files
committed
graphql client
1 parent 539d27f commit 20fa5f6

File tree

50 files changed

+990
-560
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+990
-560
lines changed

app/src/main/java/com/surrus/peopleinspace/glance/PeopleInSpaceWidget.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import androidx.glance.layout.padding
1616
import androidx.glance.text.FontWeight
1717
import androidx.glance.text.TextStyle
1818
import androidx.glance.unit.ColorProvider
19-
import com.surrus.common.remote.Assignment
19+
import com.surrus.common.model.Assignment
2020
import com.surrus.common.repository.PeopleInSpaceRepositoryInterface
2121
import com.surrus.peopleinspace.glance.util.BaseGlanceAppWidget
2222
import kotlinx.coroutines.flow.first

app/src/main/java/com/surrus/peopleinspace/ui/ISSPositionScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import androidx.compose.ui.semantics.SemanticsPropertyKey
1717
import androidx.compose.ui.semantics.SemanticsPropertyReceiver
1818
import androidx.compose.ui.semantics.semantics
1919
import androidx.compose.ui.viewinterop.AndroidView
20-
import com.surrus.common.remote.IssPosition
20+
import com.surrus.common.model.IssPosition
2121
import com.surrus.peopleinspace.util.collectAsStateWithLifecycle
2222
import org.koin.androidx.compose.getViewModel
2323
import org.osmdroid.util.GeoPoint

app/src/main/java/com/surrus/peopleinspace/ui/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import androidx.navigation.compose.currentBackStackEntryAsState
2222
import com.google.accompanist.navigation.animation.AnimatedNavHost
2323
import com.google.accompanist.navigation.animation.composable
2424
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
25-
import com.surrus.common.remote.Assignment
25+
import com.surrus.common.model.Assignment
2626

2727
class MainActivity : ComponentActivity() {
2828
override fun onCreate(savedInstanceState: Bundle?) {

app/src/main/java/com/surrus/peopleinspace/ui/PeopleInSpaceViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.surrus.peopleinspace.ui
22

33
import androidx.lifecycle.ViewModel
44
import androidx.lifecycle.viewModelScope
5-
import com.surrus.common.remote.Assignment
5+
import com.surrus.common.model.Assignment
66
import com.surrus.common.repository.PeopleInSpaceRepositoryInterface
77
import kotlinx.coroutines.flow.SharingStarted
88
import kotlinx.coroutines.flow.stateIn

app/src/main/java/com/surrus/peopleinspace/ui/PersonData.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.surrus.peopleinspace.ui
22

33
import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider
4-
import com.surrus.common.remote.Assignment
4+
import com.surrus.common.model.Assignment
55

66
class PersonProvider : CollectionPreviewParameterProvider<Assignment>(
77
listOf(

app/src/main/java/com/surrus/peopleinspace/ui/PersonListScreen.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ import androidx.compose.ui.text.TextStyle
1818
import androidx.compose.ui.unit.dp
1919
import androidx.compose.ui.unit.sp
2020
import coil.compose.rememberImagePainter
21-
import com.surrus.common.remote.Assignment
21+
import com.surrus.common.model.Assignment
2222
import org.koin.androidx.compose.getViewModel
2323

2424
const val PersonListTag = "PersonList"
2525

2626
@Composable
2727
fun PersonListScreen(paddingValues: PaddingValues = PaddingValues(),
28-
personSelected: (person: Assignment) -> Unit,
29-
peopleInSpaceViewModel: PeopleInSpaceViewModel = getViewModel()
28+
personSelected: (person: Assignment) -> Unit,
29+
peopleInSpaceViewModel: PeopleInSpaceViewModel = getViewModel()
3030
) {
3131
val peopleState = peopleInSpaceViewModel.peopleInSpace.collectAsState()
3232

backend/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

backend/build.gradle.kts

Lines changed: 0 additions & 37 deletions
This file was deleted.

backend/src/main/appengine/app.yaml

Lines changed: 0 additions & 2 deletions
This file was deleted.

backend/src/main/kotlin/PeopleData.kt

Lines changed: 0 additions & 80 deletions
This file was deleted.

backend/src/main/kotlin/Server.kt

Lines changed: 0 additions & 54 deletions
This file was deleted.

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ buildscript {
1616
classpath("org.jetbrains.kotlin:kotlin-serialization:${kotlinVersion}")
1717

1818
with(Deps.Gradle) {
19-
classpath(sqlDelight)
2019
classpath(shadow)
2120
classpath(kotlinter)
2221
classpath(gradleVersionsPlugin)
2322
classpath("com.rickclephas.kmp:kmp-nativecoroutines-gradle-plugin:${Versions.kmpNativeCoroutinesVersion}")
23+
classpath("com.apollographql.apollo3:apollo-gradle-plugin:${Versions.apollo}")
2424
}
2525
}
2626
}

buildSrc/src/main/java/Dependencies.kt

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ object Versions {
55

66
const val kotlinCoroutines = "1.6.0"
77
const val koin = "3.1.4"
8-
const val ktor = "2.0.0-beta-1"
98
const val kotlinxSerialization = "1.3.2"
109
const val kotlinxHtmlJs = "0.7.3"
1110

11+
const val apollo = "3.0.0"
12+
1213
const val kmpNativeCoroutinesVersion = "0.11.1-new-mm"
1314

1415
const val compose = "1.1.0-rc01"
@@ -25,7 +26,6 @@ object Versions {
2526
const val mockito = "3.11.2"
2627
const val robolectric = "4.6.1"
2728

28-
const val sqlDelight = "1.5.3"
2929
const val shadow = "7.0.0"
3030
const val kotlinterGradle = "3.4.5"
3131

@@ -52,7 +52,6 @@ object Deps {
5252
object Gradle {
5353
const val kotlinter = "org.jmailen.gradle:kotlinter-gradle:${Versions.kotlinterGradle}"
5454
const val shadow = "gradle.plugin.com.github.jengelman.gradle.plugins:shadow:${Versions.shadow}"
55-
const val sqlDelight = "com.squareup.sqldelight:gradle-plugin:${Versions.sqlDelight}"
5655
const val gradleVersionsPlugin = "com.github.ben-manes:gradle-versions-plugin:${Versions.gradleVersionsPlugin}"
5756
}
5857

@@ -74,6 +73,14 @@ object Deps {
7473
const val activityCompose = "androidx.activity:activity-compose:${Versions.activityCompose}"
7574
}
7675

76+
object Apollo {
77+
const val apolloRuntime = "com.apollographql.apollo3:apollo-runtime:${Versions.apollo}"
78+
const val apolloNormalizedCacheInMemory = "com.apollographql.apollo3:apollo-normalized-cache:${Versions.apollo}"
79+
const val apolloNormalizedCacheSqlite = "com.apollographql.apollo3:apollo-normalized-cache-sqlite:${Versions.apollo}"
80+
const val apolloMockServer = "com.apollographql.apollo3:apollo-mockserver:${Versions.apollo}"
81+
const val apolloTestingSupport = "com.apollographql.apollo3:apollo-testing-support:${Versions.apollo}"
82+
}
83+
7784
object Test {
7885
const val junit = "junit:junit:${Versions.junit}"
7986
const val androidXTestJUnit = "androidx.test.ext:junit:${Versions.androidXTestJUnit}"
@@ -111,34 +118,6 @@ object Deps {
111118
const val compose = "io.insert-koin:koin-androidx-compose:${Versions.koin}"
112119
}
113120

114-
object Ktor {
115-
const val serverCore = "io.ktor:ktor-server-core:${Versions.ktor}"
116-
const val serverNetty = "io.ktor:ktor-server-netty:${Versions.ktor}"
117-
const val contentNegotiation = "io.ktor:ktor-client-content-negotiation:${Versions.ktor}"
118-
const val json = "io.ktor:ktor-serialization-kotlinx-json:${Versions.ktor}"
119-
120-
const val serverContentNegotiation = "io.ktor:ktor-server-content-negotiation:${Versions.ktor}"
121-
122-
const val websockets = "io.ktor:ktor-websockets:${Versions.ktor}"
123-
const val clientCore = "io.ktor:ktor-client-core:${Versions.ktor}"
124-
const val clientJson = "io.ktor:ktor-client-json:${Versions.ktor}"
125-
const val clientLogging = "io.ktor:ktor-client-logging:${Versions.ktor}"
126-
const val clientSerialization = "io.ktor:ktor-client-serialization:${Versions.ktor}"
127-
const val clientAndroid = "io.ktor:ktor-client-android:${Versions.ktor}"
128-
const val clientJava = "io.ktor:ktor-client-java:${Versions.ktor}"
129-
const val clientIos = "io.ktor:ktor-client-ios:${Versions.ktor}"
130-
const val clientJs = "io.ktor:ktor-client-js:${Versions.ktor}"
131-
}
132-
133-
object SqlDelight {
134-
const val runtime = "com.squareup.sqldelight:runtime:${Versions.sqlDelight}"
135-
const val coroutineExtensions = "com.squareup.sqldelight:coroutines-extensions:${Versions.sqlDelight}"
136-
const val androidDriver = "com.squareup.sqldelight:android-driver:${Versions.sqlDelight}"
137-
const val nativeDriver = "com.squareup.sqldelight:native-driver:${Versions.sqlDelight}"
138-
const val nativeDriverMacos = "com.squareup.sqldelight:native-driver-macosx64:${Versions.sqlDelight}"
139-
const val sqliteDriver = "com.squareup.sqldelight:sqlite-driver:${Versions.sqlDelight}"
140-
}
141-
142121
object React {
143122
const val react = "org.jetbrains:kotlin-react:${Versions.kotlinReact}"
144123
const val dom = "org.jetbrains:kotlin-react-dom:${Versions.kotlinReactDom}"

common/build.gradle.kts

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66
id("kotlinx-serialization")
77
id("com.android.library")
88
id("org.jetbrains.kotlin.native.cocoapods")
9-
id("com.squareup.sqldelight")
9+
id("com.apollographql.apollo3")
1010
id("com.rickclephas.kmp.nativecoroutines")
1111
id("com.chromaticnoise.multiplatform-swiftpackage") version "2.0.3"
1212
}
@@ -62,22 +62,14 @@ kotlin {
6262
sourceSets {
6363
sourceSets["commonMain"].dependencies {
6464

65-
with(Deps.Ktor) {
66-
implementation(clientCore)
67-
implementation(clientJson)
68-
implementation(clientLogging)
69-
implementation(contentNegotiation)
70-
implementation(json)
71-
}
72-
7365
with(Deps.Kotlinx) {
7466
implementation(coroutinesCore)
7567
implementation(serializationCore)
7668
}
7769

78-
with(Deps.SqlDelight) {
79-
implementation(runtime)
80-
implementation(coroutineExtensions)
70+
with(Deps.Apollo) {
71+
implementation(apolloRuntime)
72+
implementation(apolloNormalizedCacheInMemory)
8173
}
8274

8375
with(Deps.Koin) {
@@ -97,38 +89,31 @@ kotlin {
9789
}
9890

9991
sourceSets["androidMain"].dependencies {
100-
implementation(Deps.Ktor.clientAndroid)
101-
implementation(Deps.SqlDelight.androidDriver)
92+
implementation(Deps.Apollo.apolloNormalizedCacheSqlite)
10293
}
10394
sourceSets["androidTest"].dependencies {
10495
implementation(Deps.Test.junit)
10596
}
10697

10798
sourceSets["jvmMain"].dependencies {
108-
implementation(Deps.Ktor.clientJava)
109-
implementation(Deps.SqlDelight.sqliteDriver)
11099
implementation(Deps.Log.slf4j)
100+
implementation(Deps.Apollo.apolloNormalizedCacheSqlite)
111101
}
112102

113103
sourceSets["iOSMain"].dependencies {
114-
implementation(Deps.Ktor.clientIos)
115-
implementation(Deps.SqlDelight.nativeDriver)
104+
implementation(Deps.Apollo.apolloNormalizedCacheSqlite)
116105
}
117106
sourceSets["iOSTest"].dependencies {
118107
}
119108

120109
sourceSets["watchMain"].dependencies {
121-
implementation(Deps.Ktor.clientIos)
122-
implementation(Deps.SqlDelight.nativeDriver)
123110
}
124111

125112
sourceSets["macOSMain"].dependencies {
126-
implementation(Deps.Ktor.clientIos)
127-
implementation(Deps.SqlDelight.nativeDriverMacos)
113+
implementation(Deps.Apollo.apolloNormalizedCacheSqlite)
128114
}
129115

130116
sourceSets["jsMain"].dependencies {
131-
implementation(Deps.Ktor.clientJs)
132117
}
133118
}
134119
}
@@ -139,17 +124,19 @@ tasks.withType<KotlinCompile> {
139124
}
140125
}
141126

142-
sqldelight {
143-
database("PeopleInSpaceDatabase") {
144-
packageName = "com.surrus.peopleinspace.db"
145-
sourceFolders = listOf("sqldelight")
146-
}
127+
apollo {
128+
packageName.set("com.surrus.common")
129+
codegenModels.set("operationBased")
130+
generateSchema.set(true)
131+
generateTestBuilders.set(true)
147132
}
148133

134+
149135
multiplatformSwiftPackage {
150136
packageName("PeopleInSpace")
151137
swiftToolsVersion("5.3")
152138
targetPlatforms {
153139
iOS { v("13") }
154140
}
155-
}
141+
}
142+
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
package com.surrus.common.repository
22

3-
import com.squareup.sqldelight.android.AndroidSqliteDriver
4-
import com.surrus.common.di.PeopleInSpaceDatabaseWrapper
5-
import com.surrus.peopleinspace.db.PeopleInSpaceDatabase
6-
import io.ktor.client.engine.android.*
3+
import com.apollographql.apollo3.cache.normalized.api.NormalizedCacheFactory
4+
import com.apollographql.apollo3.cache.normalized.sql.SqlNormalizedCacheFactory
75
import org.koin.dsl.module
86

97

108

119
actual fun platformModule() = module {
12-
single {
13-
val driver =
14-
AndroidSqliteDriver(PeopleInSpaceDatabase.Schema, get(), "peopleinspace.db")
15-
16-
PeopleInSpaceDatabaseWrapper(PeopleInSpaceDatabase(driver))
17-
}
18-
single { Android.create() }
10+
single<NormalizedCacheFactory> { SqlNormalizedCacheFactory(get(), "swapi.db") }
1911
}

0 commit comments

Comments
 (0)