From 0458a03e39f3c18c344c7f08f2386876a95e8c7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=A1=ED=98=84=EC=84=9C?= Date: Tue, 16 Jan 2024 11:32:17 +0900 Subject: [PATCH 1/5] :sparkles: :: Add moshi instance --- .../java/com/goms/network/di/NetworkModule.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/core/network/src/main/java/com/goms/network/di/NetworkModule.kt b/core/network/src/main/java/com/goms/network/di/NetworkModule.kt index 98543334..cd27fde7 100644 --- a/core/network/src/main/java/com/goms/network/di/NetworkModule.kt +++ b/core/network/src/main/java/com/goms/network/di/NetworkModule.kt @@ -3,6 +3,7 @@ package com.goms.network.di import android.util.Log import com.goms.network.BuildConfig import com.goms.network.api.AuthAPI +import com.squareup.moshi.Moshi import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -39,20 +40,26 @@ object NetworkModule { @Provides @Singleton - fun provideConverterFactory(): MoshiConverterFactory { - return MoshiConverterFactory.create() + fun provideMoshiInstance(): Moshi { + return Moshi.Builder().build() + } + + @Provides + @Singleton + fun provideConverterFactory(moshi: Moshi): MoshiConverterFactory { + return MoshiConverterFactory.create(moshi) } @Provides @Singleton fun provideRetrofitInstance( okHttpClient: OkHttpClient, - gsonConverterFactory: MoshiConverterFactory, + moshiConverterFactory: MoshiConverterFactory, ): Retrofit { return Retrofit.Builder() .baseUrl(BuildConfig.BASE_URL) .client(okHttpClient) - .addConverterFactory(gsonConverterFactory) + .addConverterFactory(moshiConverterFactory) .build() } From 94b5d0d73f209bb938031d1795a2b65f94ed4ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=A1=ED=98=84=EC=84=9C?= Date: Tue, 16 Jan 2024 13:26:22 +0900 Subject: [PATCH 2/5] :sparkles: :: Add moshi dependency --- core/model/build.gradle.kts | 1 + gradle/libs.versions.toml | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/model/build.gradle.kts b/core/model/build.gradle.kts index eaddbc85..963e1e97 100644 --- a/core/model/build.gradle.kts +++ b/core/model/build.gradle.kts @@ -5,4 +5,5 @@ plugins { dependencies { implementation(libs.kotlinx.datetime) + implementation(libs.moshi) } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ec0c742b..da446f75 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,6 +23,7 @@ androidxTestRunner = "1.5.2" androidx-test-ext-junit = "1.1.5" androidxWindowManager = "1.2.0" coil = "2.4.0" +converter-moshi = "2.9.0" firebaseBom = "31.2.0" firebaseCrashlyticsPlugin = "2.9.2" firebasePerfPlugin = "1.4.2" @@ -40,7 +41,7 @@ ksp = "1.8.10-1.0.9" lint = "31.2.1" lifecycle-runtime-ktx = "2.6.2" material = "1.2.0-alpha02" -moshi = "2.9.0" +moshi = "1.15.0" okhttp = "4.11.0" org-jetbrains-kotlin-android = "1.8.10" protobuf = "3.24.0" @@ -98,11 +99,12 @@ kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-cor kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDateTime" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "lint" } +moshi = { group = "com.squareup.moshi", name = "moshi-kotlin", version.ref = "moshi" } okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } protobuf-kotlin-lite = { group = "com.google.protobuf", name = "protobuf-kotlin-lite", version.ref = "protobuf" } protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } -retrofit-moshi-converter = { group = "com.squareup.retrofit2", name = "converter-moshi", version.ref = "moshi" } +retrofit-moshi-converter = { group = "com.squareup.retrofit2", name = "converter-moshi", version.ref = "converter-moshi" } retrofit-kotlin-serialization = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerializableJson" } room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } From a6e79943114127fd3b0caaf3770823cd97a80182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=A1=ED=98=84=EC=84=9C?= Date: Tue, 16 Jan 2024 13:26:46 +0900 Subject: [PATCH 3/5] :sparkles: :: Add internet permission --- app/src/main/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 003e3c64..70f3317c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + Date: Tue, 16 Jan 2024 13:27:06 +0900 Subject: [PATCH 4/5] :sparkles: :: Add annotation --- .../com/goms/model/request/auth/LoginRequest.kt | 6 +++++- .../com/goms/model/response/auth/LoginResponse.kt | 14 +++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/core/model/src/main/java/com/goms/model/request/auth/LoginRequest.kt b/core/model/src/main/java/com/goms/model/request/auth/LoginRequest.kt index 1082dd00..a6a37948 100644 --- a/core/model/src/main/java/com/goms/model/request/auth/LoginRequest.kt +++ b/core/model/src/main/java/com/goms/model/request/auth/LoginRequest.kt @@ -1,5 +1,9 @@ package com.goms.model.request.auth +import com.squareup.moshi.JsonClass +import com.squareup.moshi.Json + +@JsonClass(generateAdapter = true) data class LoginRequest( - val code: String + @Json(name = "code") val code: String ) \ No newline at end of file diff --git a/core/model/src/main/java/com/goms/model/response/auth/LoginResponse.kt b/core/model/src/main/java/com/goms/model/response/auth/LoginResponse.kt index fe9f39f4..cd9ceef3 100644 --- a/core/model/src/main/java/com/goms/model/response/auth/LoginResponse.kt +++ b/core/model/src/main/java/com/goms/model/response/auth/LoginResponse.kt @@ -1,9 +1,13 @@ package com.goms.model.response.auth +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass + +@JsonClass(generateAdapter = true) data class LoginResponse( - val accessToken: String, - val refreshToken: String, - val accessTokenExp: String, - val refreshTokenExp: String, - val authority: String + @Json(name = "accessToken") val accessToken: String, + @Json(name = "refreshToken") val refreshToken: String, + @Json(name = "accessTokenExp") val accessTokenExp: String, + @Json(name = "refreshTokenExp") val refreshTokenExp: String, + @Json(name = "authority") val authority: String ) \ No newline at end of file From 3e0705d24420da038df9f3474a940c685bf63bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=A1=ED=98=84=EC=84=9C?= Date: Tue, 16 Jan 2024 15:30:37 +0900 Subject: [PATCH 5/5] :heavy_plus_sign: :: Add retrofit moshi codegen dependency --- .../convention/src/main/kotlin/JvmLibraryConventionPlugin.kt | 1 + core/model/build.gradle.kts | 1 + gradle/libs.versions.toml | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt index 997a04f4..5ca179de 100644 --- a/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/JvmLibraryConventionPlugin.kt @@ -8,6 +8,7 @@ class JvmLibraryConventionPlugin : Plugin { with(pluginManager) { apply("org.jetbrains.kotlin.jvm") apply("goms.android.lint") + apply("com.google.devtools.ksp") } configureKotlinJvm() } diff --git a/core/model/build.gradle.kts b/core/model/build.gradle.kts index 963e1e97..d81f30fb 100644 --- a/core/model/build.gradle.kts +++ b/core/model/build.gradle.kts @@ -6,4 +6,5 @@ plugins { dependencies { implementation(libs.kotlinx.datetime) implementation(libs.moshi) + ksp(libs.retrofit.moshi.codegen) } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index da446f75..05810de4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -99,11 +99,12 @@ kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-cor kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDateTime" } kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "lint" } -moshi = { group = "com.squareup.moshi", name = "moshi-kotlin", version.ref = "moshi" } +moshi = { group = "com.squareup.moshi", name = "moshi", version.ref = "moshi" } okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } protobuf-kotlin-lite = { group = "com.google.protobuf", name = "protobuf-kotlin-lite", version.ref = "protobuf" } protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } +retrofit-moshi-codegen = { group = "com.squareup.moshi", name = "moshi-kotlin-codegen", version.ref = "moshi" } retrofit-moshi-converter = { group = "com.squareup.retrofit2", name = "converter-moshi", version.ref = "converter-moshi" } retrofit-kotlin-serialization = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerializableJson" } room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }