Skip to content

Commit daaecf1

Browse files
committed
[NDGL-17] refactor: 네트워크 구조 수정
1 parent e0edb7c commit daaecf1

File tree

18 files changed

+157
-67
lines changed

18 files changed

+157
-67
lines changed

build-logic/src/main/kotlin/NDGLDataPlugin.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ import convention.configureKotlinAndroid
44
import convention.configureTimber
55
import org.gradle.api.Plugin
66
import org.gradle.api.Project
7+
import org.gradle.kotlin.dsl.dependencies
8+
import util.libs
79

810
class NDGLDataPlugin : Plugin<Project> {
911
override fun apply(target: Project): Unit = with(target) {
1012
with(pluginManager) {
1113
apply("com.android.library")
14+
apply("org.jetbrains.kotlin.plugin.serialization")
1215
}
1316

1417
configureKotlinAndroid()
@@ -19,5 +22,12 @@ class NDGLDataPlugin : Plugin<Project> {
1922
if (path != ":data:core") {
2023
dependencies.add("implementation", project(":data:core"))
2124
}
25+
26+
dependencies {
27+
"implementation"(libs.findLibrary("retrofit").get())
28+
"implementation"(libs.findLibrary("retrofit-kotlinx-serialization-json").get())
29+
"implementation"(libs.findLibrary("kotlinx-serialization-json").get())
30+
"implementation"(libs.findLibrary("okhttp").get())
31+
}
2232
}
2333
}

build-logic/src/main/kotlin/NDGLFeaturePlugin.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import convention.configureComposeAndroid
21
import convention.configureCoroutineAndroid
3-
import convention.configureFirebase
42
import convention.configureHiltAndroid
53
import org.gradle.api.Plugin
64
import org.gradle.api.Project

data/auth/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ android {
77
}
88

99
dependencies {
10-
implementation(project(":data:core"))
10+
implementation(libs.androidx.datastore)
1111
}

data/core/src/main/java/com/yapp/ndgl/data/core/api/NDGLApi.kt renamed to data/auth/src/main/java/com/yapp/ndgl/data/auth/api/AuthApi.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
package com.yapp.ndgl.data.core.api
1+
package com.yapp.ndgl.data.auth.api
22

3+
import com.yapp.ndgl.data.auth.model.AuthResponse
4+
import com.yapp.ndgl.data.auth.model.CreateUserRequest
5+
import com.yapp.ndgl.data.auth.model.LoginRequest
36
import com.yapp.ndgl.data.core.model.BaseResponse
4-
import com.yapp.ndgl.data.core.model.auth.AuthResponse
5-
import com.yapp.ndgl.data.core.model.auth.CreateUserRequest
6-
import com.yapp.ndgl.data.core.model.auth.LoginRequest
77
import retrofit2.http.Body
88
import retrofit2.http.POST
99

10-
interface NDGLApi {
11-
// Auth
10+
interface AuthApi {
1211
@POST("/api/v1/auth/users")
1312
suspend fun createUser(
1413
@Body request: CreateUserRequest,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.yapp.ndgl.data.auth.di
2+
3+
import com.yapp.ndgl.data.auth.token.TokenManagerImpl
4+
import com.yapp.ndgl.data.core.token.TokenManager
5+
import dagger.Binds
6+
import dagger.Module
7+
import dagger.hilt.InstallIn
8+
import dagger.hilt.components.SingletonComponent
9+
import javax.inject.Singleton
10+
11+
@Module
12+
@InstallIn(SingletonComponent::class)
13+
abstract class AuthModule {
14+
@Binds
15+
@Singleton
16+
abstract fun bindTokenManager(
17+
impl: TokenManagerImpl,
18+
): TokenManager
19+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.yapp.ndgl.data.auth.di
2+
3+
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
4+
import com.yapp.ndgl.data.auth.api.AuthApi
5+
import com.yapp.ndgl.data.core.adapter.NDGLCallAdapterFactory
6+
import com.yapp.ndgl.data.core.di.AuthClient
7+
import dagger.Module
8+
import dagger.Provides
9+
import dagger.hilt.InstallIn
10+
import dagger.hilt.components.SingletonComponent
11+
import kotlinx.serialization.json.Json
12+
import okhttp3.MediaType.Companion.toMediaType
13+
import okhttp3.OkHttpClient
14+
import retrofit2.Retrofit
15+
import javax.inject.Singleton
16+
17+
@Module
18+
@InstallIn(SingletonComponent::class)
19+
object AuthNetworkModule {
20+
@Provides
21+
@Singleton
22+
fun provideAuthApi(
23+
json: Json,
24+
baseUrl: String,
25+
@AuthClient okHttpClient: OkHttpClient,
26+
callAdapterFactory: NDGLCallAdapterFactory,
27+
): AuthApi = Retrofit.Builder()
28+
.baseUrl(baseUrl)
29+
.client(okHttpClient)
30+
.addConverterFactory(json.asConverterFactory("application/json".toMediaType()))
31+
.addCallAdapterFactory(callAdapterFactory)
32+
.build()
33+
.create(AuthApi::class.java)
34+
}

data/core/src/main/java/com/yapp/ndgl/data/core/local/datasource/LocalAuthDataSource.kt renamed to data/auth/src/main/java/com/yapp/ndgl/data/auth/local/LocalAuthDataSource.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package com.yapp.ndgl.data.core.local.datasource
1+
package com.yapp.ndgl.data.auth.local
22

33
import androidx.datastore.core.DataStore
44
import androidx.datastore.preferences.core.Preferences
55
import androidx.datastore.preferences.core.edit
66
import androidx.datastore.preferences.core.stringPreferencesKey
7-
import com.yapp.ndgl.data.core.local.util.handleException
7+
import com.yapp.ndgl.data.auth.local.util.handleException
88
import kotlinx.coroutines.flow.Flow
99
import kotlinx.coroutines.flow.first
1010
import kotlinx.coroutines.flow.map

data/core/src/main/java/com/yapp/ndgl/data/core/local/di/DataStoreModule.kt renamed to data/auth/src/main/java/com/yapp/ndgl/data/auth/local/di/DataStoreModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yapp.ndgl.data.core.local.di
1+
package com.yapp.ndgl.data.auth.local.di
22

33
import android.content.Context
44
import androidx.datastore.core.DataStore

data/core/src/main/java/com/yapp/ndgl/data/core/local/util/DataStoreUtil.kt renamed to data/auth/src/main/java/com/yapp/ndgl/data/auth/local/util/DataStoreUtil.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yapp.ndgl.data.core.local.util
1+
package com.yapp.ndgl.data.auth.local.util
22

33
import androidx.datastore.preferences.core.Preferences
44
import androidx.datastore.preferences.core.emptyPreferences

data/core/src/main/java/com/yapp/ndgl/data/core/model/auth/AuthResponse.kt renamed to data/auth/src/main/java/com/yapp/ndgl/data/auth/model/AuthResponse.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.yapp.ndgl.data.core.model.auth
1+
package com.yapp.ndgl.data.auth.model
22

33
import kotlinx.serialization.Serializable
44

0 commit comments

Comments
 (0)