Skip to content

Commit

Permalink
[FEAT/#55] SignOut 기능 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
chattymin committed Jan 9, 2024
1 parent c427ee5 commit 1963dea
Show file tree
Hide file tree
Showing 10 changed files with 92 additions and 0 deletions.
7 changes: 7 additions & 0 deletions app/src/main/java/com/going/going/di/DataSourceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package com.going.going.di

import com.going.data.datasource.AuthDataSource
import com.going.data.datasource.MockDataSource
import com.going.data.datasource.SettingDataSource
import com.going.data.datasourceImpl.AuthDataSourceImpl
import com.going.data.datasourceImpl.MockDataSourceImpl
import com.going.data.datasourceImpl.SettingDataSourceImpl
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand All @@ -23,4 +25,9 @@ object DataSourceModule {
@Singleton
fun provideAuthDataSource(authDataSourceImpl: AuthDataSourceImpl): AuthDataSource =
authDataSourceImpl

@Provides
@Singleton
fun provideSettingDataSource(settingDataSourceImpl: SettingDataSourceImpl): SettingDataSource =
settingDataSourceImpl
}
7 changes: 7 additions & 0 deletions app/src/main/java/com/going/going/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ package com.going.going.di

import com.going.data.repositoryImpl.AuthRepositoryImpl
import com.going.data.repositoryImpl.MockRepositoryImpl
import com.going.data.repositoryImpl.SettingRepositoryImpl
import com.going.data.repositoryImpl.TokenRepositoryImpl
import com.going.domain.repository.AuthRepository
import com.going.domain.repository.MockRepository
import com.going.domain.repository.SettingRepository
import com.going.domain.repository.TokenRepository
import dagger.Module
import dagger.Provides
Expand All @@ -30,4 +32,9 @@ object RepositoryModule {
@Singleton
fun provideTokenRepository(tokenRepositoryImpl: TokenRepositoryImpl): TokenRepository =
tokenRepositoryImpl

@Provides
@Singleton
fun provideSettingRepository(settingRepositoryImpl: SettingRepositoryImpl): SettingRepository =
settingRepositoryImpl
}
7 changes: 7 additions & 0 deletions app/src/main/java/com/going/going/di/ServiceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package com.going.going.di

import com.going.data.service.AuthService
import com.going.data.service.MockService
import com.going.data.service.SettingService
import com.going.going.di.qualifier.JWT
import com.going.going.di.qualifier.KAKAO
import dagger.Module
import dagger.Provides
Expand All @@ -23,4 +25,9 @@ object ServiceModule {
@Singleton
fun provideAuthService(@KAKAO retrofit: Retrofit): AuthService =
retrofit.create(AuthService::class.java)

@Provides
@Singleton
fun provideSettingService(@JWT retrofit: Retrofit): SettingService =
retrofit.create(SettingService::class.java)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.going.data.datasource

import com.going.data.dto.response.SignOutResponseDto

interface SettingDataSource {
suspend fun patchSignOut(): SignOutResponseDto
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.going.data.datasourceImpl

import com.going.data.datasource.SettingDataSource
import com.going.data.dto.response.SignOutResponseDto
import com.going.data.service.SettingService
import javax.inject.Inject

class SettingDataSourceImpl @Inject constructor(
private val settingService: SettingService,
) : SettingDataSource {
override suspend fun patchSignOut(): SignOutResponseDto = settingService.patchSignOut()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.going.data.dto.response

import com.going.domain.entity.response.SignOutModel
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class SignOutResponseDto(
@SerialName("status")
val status: Int,
@SerialName("message")
val message: String,
) {
fun toSignOutModel() =
SignOutModel(status, message)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.going.data.repositoryImpl

import com.going.data.datasource.SettingDataSource
import com.going.domain.entity.response.SignOutModel
import com.going.domain.repository.SettingRepository
import javax.inject.Inject

class SettingRepositoryImpl @Inject constructor(
private val settingDataSource: SettingDataSource,
) : SettingRepository {
override suspend fun patchSignOut(): Result<SignOutModel> = runCatching {
settingDataSource.patchSignOut().toSignOutModel()
}
}
9 changes: 9 additions & 0 deletions data/src/main/java/com/going/data/service/SettingService.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.going.data.service

import com.going.data.dto.response.SignOutResponseDto
import retrofit2.http.PATCH

interface SettingService {
@PATCH("api/users/signout")
suspend fun patchSignOut(): SignOutResponseDto
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.going.domain.entity.response

data class SignOutModel(
val status: Int,
val message: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.going.domain.repository

import com.going.domain.entity.response.SignOutModel

interface SettingRepository {
suspend fun patchSignOut(): Result<SignOutModel>
}

0 comments on commit 1963dea

Please sign in to comment.