Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT]/#92 여행 입장 뷰 / 서버통신 구현 #104

Merged
merged 14 commits into from
Jan 14, 2024
Merged
14 changes: 7 additions & 7 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,12 @@
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.preferencetag.entertrip.EnterPreferenceActivity"
android:name="com.going.presentation.entertrip.starttrip.createtrip.EnterPreferenceActivity"
android:exported="false"
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.preferencetag.invitefinish.FinishPreferenceActivity"
android:name="com.going.presentation.entertrip.starttrip.invitetrip.FinishPreferenceActivity"
android:exported="false"
android:screenOrientation="portrait" />

Expand All @@ -96,12 +96,12 @@
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.starttrip.createtrip.CreateTripActivity"
android:name="com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity"
android:exported="false"
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.starttrip.StartTripSplashActivity"
android:name="com.going.presentation.entertrip.starttrip.StartTripSplashActivity"
android:exported="false"
android:screenOrientation="portrait" />

Expand All @@ -126,7 +126,7 @@
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.starttrip.finishtrip.FinishTripActivity"
android:name="com.going.presentation.entertrip.starttrip.createtrip.FinishTripActivity"
android:exported="false"
android:screenOrientation="portrait" />

Expand All @@ -141,12 +141,12 @@
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.enter.entertrip.EnterTripActivity"
android:name="com.going.presentation.entertrip.starttrip.createtrip.EnterTripActivity"
android:exported="false"
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.enter.invitefinish.InviteFinishActivity"
android:name="com.going.presentation.entertrip.starttrip.invitetrip.InviteFinishActivity"
android:exported="false"
android:screenOrientation="portrait" />

Expand Down
7 changes: 7 additions & 0 deletions app/src/main/java/com/going/doorip/di/DataSourceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.going.data.datasource.EnterTripDataSource
import com.going.data.datasource.MockDataSource
import com.going.data.datasource.ProfileDataSource
import com.going.data.datasource.SettingDataSource
import com.going.data.datasource.StartInviteTripDataSource
import com.going.data.datasource.TendencyDataSource
import com.going.data.datasource.TodoDataSource
import com.going.data.datasourceImpl.AuthDataSourceImpl
Expand All @@ -14,6 +15,7 @@ import com.going.data.datasourceImpl.EnterTripDataSourceImpl
import com.going.data.datasourceImpl.MockDataSourceImpl
import com.going.data.datasourceImpl.ProfileDataSourceImpl
import com.going.data.datasourceImpl.SettingDataSourceImpl
import com.going.data.datasourceImpl.StartInviteTripDataSourceImpl
import com.going.data.datasourceImpl.TendencyDataSourceImpl
import com.going.data.datasourceImpl.TodoDataSourceImpl
import dagger.Module
Expand Down Expand Up @@ -65,4 +67,9 @@ object DataSourceModule {
@Singleton
fun provideEnterTripDataSource(entertripDataSourceImpl: EnterTripDataSourceImpl): EnterTripDataSource =
entertripDataSourceImpl

@Provides
@Singleton
fun provideStartInviteTripDataSource(startInviteTripDataSourceImpl: StartInviteTripDataSourceImpl): StartInviteTripDataSource =
startInviteTripDataSourceImpl
}
7 changes: 7 additions & 0 deletions app/src/main/java/com/going/doorip/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.going.data.repositoryImpl.EnterTripRepositoryImpl
import com.going.data.repositoryImpl.MockRepositoryImpl
import com.going.data.repositoryImpl.ProfileRepositoryImpl
import com.going.data.repositoryImpl.SettingRepositoryImpl
import com.going.data.repositoryImpl.StartInviteTripRepositoryImpl
import com.going.data.repositoryImpl.TendencyRepositoryImpl
import com.going.data.repositoryImpl.TodoRepositoryImpl
import com.going.data.repositoryImpl.TokenRepositoryImpl
Expand All @@ -15,6 +16,7 @@ import com.going.domain.repository.EnterTripRepository
import com.going.domain.repository.MockRepository
import com.going.domain.repository.ProfileRepository
import com.going.domain.repository.SettingRepository
import com.going.domain.repository.StartInviteTripRepository
import com.going.domain.repository.TendencyRepository
import com.going.domain.repository.TodoRepository
import com.going.domain.repository.TokenRepository
Expand Down Expand Up @@ -72,4 +74,9 @@ object RepositoryModule {
@Singleton
fun provideProfileRepository(profileRepositoryImpl: ProfileRepositoryImpl): ProfileRepository =
profileRepositoryImpl

@Provides
@Singleton
fun provideStartInviteTripRepository(startInviteTripRepositoryImpl: StartInviteTripRepositoryImpl): StartInviteTripRepository =
startInviteTripRepositoryImpl
}
6 changes: 6 additions & 0 deletions app/src/main/java/com/going/doorip/di/ServiceModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.going.data.service.EnterTripService
import com.going.data.service.MockService
import com.going.data.service.ProfileService
import com.going.data.service.SettingService
import com.going.data.service.StartInviteTripService
import com.going.data.service.TendencyService
import com.going.data.service.TodoService
import dagger.Module
Expand Down Expand Up @@ -59,4 +60,9 @@ object ServiceModule {
@Singleton
fun provideProfileService(retrofit: Retrofit): ProfileService =
retrofit.create(ProfileService::class.java)

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

import com.going.data.dto.BaseResponse
import com.going.data.dto.request.StartInviteTripRequestDto
import com.going.data.dto.response.StartInviteTripResponseDto
import retrofit2.http.Body
import retrofit2.http.Path

interface StartInviteTripDataSource {

suspend fun postStartInviteTrip(
@Path("tripId") tripId: Long,
@Body request: StartInviteTripRequestDto,
): BaseResponse<StartInviteTripResponseDto>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.going.data.datasourceImpl

import com.going.data.datasource.StartInviteTripDataSource
import com.going.data.dto.BaseResponse
import com.going.data.dto.request.StartInviteTripRequestDto
import com.going.data.dto.response.StartInviteTripResponseDto
import com.going.data.service.StartInviteTripService
import javax.inject.Inject

class StartInviteTripDataSourceImpl @Inject constructor(
private val startInviteTripService: StartInviteTripService,
) : StartInviteTripDataSource {

override suspend fun postStartInviteTrip(
tripId: Long,
request: StartInviteTripRequestDto
): BaseResponse<StartInviteTripResponseDto> =
startInviteTripService.postStartInviteTrip(tripId, request)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.going.data.dto.request

import com.going.domain.entity.request.StartInviteTripRequestModel
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
class StartInviteTripRequestDto(
@SerialName("styleA")
val styleA: Int,
@SerialName("styleB")
val styleB: Int,
@SerialName("styleC")
val styleC: Int,
@SerialName("styleD")
val styleD: Int,
@SerialName("styleE")
val styleE: Int,
)

fun StartInviteTripRequestModel.toStartInviteTripRequestDto(): StartInviteTripRequestDto =
StartInviteTripRequestDto(styleA, styleB, styleC, styleD, styleE)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.going.data.dto.response

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

@Serializable
class StartInviteTripResponseDto (
@SerialName("tripId")
val tripId: Long,
){
fun toStartInviteTripModel() =
StartInviteTripModel(tripId)
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ class AuthInterceptor @Inject constructor(
return response
}

private fun Request.newAuthBuilder() =
this.newBuilder().addHeader(AUTHORIZATION, "$BEARER ${dataStore.accessToken}")
private fun Request.newAuthBuilder() =
this.newBuilder().addHeader(AUTHORIZATION, "$BEARER ${dataStore.accessToken}")

companion object {
private const val CODE_TOKEN_EXPIRED = 401
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.going.data.repositoryImpl

import com.going.data.datasource.StartInviteTripDataSource
import com.going.data.dto.request.toStartInviteTripRequestDto
import com.going.domain.entity.request.StartInviteTripRequestModel
import com.going.domain.entity.response.StartInviteTripModel
import com.going.domain.repository.StartInviteTripRepository
import javax.inject.Inject

class StartInviteTripRepositoryImpl @Inject constructor(
private val startInviteTripDataSource: StartInviteTripDataSource
) : StartInviteTripRepository {

override suspend fun postStartInviteTrip(
tripId: Long,
requestStartInviteTripModel: StartInviteTripRequestModel
): Result<StartInviteTripModel> =
runCatching {
startInviteTripDataSource.postStartInviteTrip(
tripId, requestStartInviteTripModel.toStartInviteTripRequestDto(),
).data.toStartInviteTripModel()
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.going.data.service

import com.going.data.dto.BaseResponse
import com.going.data.dto.request.StartInviteTripRequestDto
import com.going.data.dto.response.StartInviteTripResponseDto
import retrofit2.http.Body
import retrofit2.http.POST
import retrofit2.http.Path

interface StartInviteTripService {
@POST("/api/trips/{tripId}/entry")
suspend fun postStartInviteTrip(
@Path("tripId") tripId: Long,
@Body request: StartInviteTripRequestDto,
): BaseResponse<StartInviteTripResponseDto>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.going.domain.entity.request

data class StartInviteTripRequestModel(
val styleA: Int,
val styleB: Int,
val styleC: Int,
val styleD: Int,
val styleE: Int,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.going.domain.entity.response

data class StartInviteTripModel(
val tripId: Long,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.going.domain.repository

import com.going.domain.entity.request.StartInviteTripRequestModel
import com.going.domain.entity.response.StartInviteTripModel

interface StartInviteTripRepository {
suspend fun postStartInviteTrip(
tripId: Long,
requestStartInviteTripModel: StartInviteTripRequestModel
): Result<StartInviteTripModel>
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.going.presentation.starttrip
package com.going.presentation.entertrip.starttrip

import android.content.Intent
import android.os.Bundle
import com.going.presentation.R
import com.going.presentation.databinding.ActivityStartTripSplashBinding
import com.going.presentation.starttrip.createtrip.CreateTripActivity
import com.going.presentation.entertrip.starttrip.createtrip.EnterTripActivity
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener

Expand All @@ -28,7 +29,10 @@ class StartTripSplashActivity :

private fun initEnterTripBtnClickListener() {
binding.btnStartTripSplashEnterTrip.setOnSingleClickListener {
//초대 코드 받아서 여행 입장하는 액티비티로 연결
Intent(this, EnterTripActivity::class.java).apply {
startActivity(this)
}
finish()
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package com.going.presentation.starttrip.createtrip
package com.going.presentation.entertrip.starttrip.createtrip

import android.os.Bundle
import android.view.View
import com.going.presentation.R
import com.going.presentation.databinding.FragmentBottomSheetDateContentBinding
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripViewModel
import com.going.ui.base.BaseBottomSheet
import com.going.ui.extension.setOnSingleClickListener
import com.going.ui.extension.toast
import java.util.Calendar

class DateBottomSheet(val viewModel: CreateTripViewModel, val isStart: Boolean) :
class BottomSheetDateContentFragment(val viewModel: CreateTripViewModel, val isStart: Boolean) :
BaseBottomSheet<FragmentBottomSheetDateContentBinding>(R.layout.fragment_bottom_sheet_date_content) {

override fun onStart() {
Expand Down Expand Up @@ -62,4 +63,4 @@ class DateBottomSheet(val viewModel: CreateTripViewModel, val isStart: Boolean)
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.preferencetag.entertrip
package com.going.presentation.entertrip.starttrip.createtrip

import android.os.Bundle
import androidx.activity.viewModels
Expand All @@ -9,13 +9,13 @@ import com.going.presentation.databinding.ActivityEnterPreferenceBinding
import com.going.presentation.preferencetag.PreferenceTagAdapter
import com.going.presentation.preferencetag.PreferenceTagDecoration
import com.going.presentation.preferencetag.PreferenceTagViewModel
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.END_DAY
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.END_MONTH
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.END_YEAR
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.NAME
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.START_DAY
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.START_MONTH
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.START_YEAR
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.END_DAY
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.END_MONTH
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.END_YEAR
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.NAME
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.START_DAY
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.START_MONTH
import com.going.presentation.entertrip.starttrip.invitetrip.CreateTripActivity.Companion.START_YEAR
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener

Expand Down Expand Up @@ -107,4 +107,4 @@ class EnterPreferenceActivity :
companion object {
const val SERVER_DATE = "%s.%s.%s"
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.enter.entertrip
package com.going.presentation.entertrip.starttrip.createtrip

import android.content.Intent
import android.os.Bundle
Expand All @@ -10,8 +10,8 @@ import androidx.lifecycle.lifecycleScope
import com.going.domain.entity.CodeState
import com.going.presentation.R
import com.going.presentation.databinding.ActivityEnterTripBinding
import com.going.presentation.enter.invitefinish.InviteFinishActivity
import com.going.presentation.starttrip.StartTripSplashActivity
import com.going.presentation.entertrip.starttrip.invitetrip.InviteFinishActivity
import com.going.presentation.entertrip.starttrip.StartTripSplashActivity
import com.going.ui.base.BaseActivity
import com.going.ui.extension.UiState
import com.going.ui.extension.setOnSingleClickListener
Expand Down Expand Up @@ -92,6 +92,7 @@ class EnterTripActivity : BaseActivity<ActivityEnterTripBinding>(R.layout.activi
is UiState.Success -> {

Intent(this, InviteFinishActivity::class.java).apply {
putExtra(TRIP_ID, state.data.tripId)
putExtra(TITLE, state.data.title)
putExtra(START, state.data.startDate)
putExtra(END, state.data.endDate)
Expand All @@ -118,6 +119,7 @@ class EnterTripActivity : BaseActivity<ActivityEnterTripBinding>(R.layout.activi
}

companion object {
const val TRIP_ID = "tripId"
const val TITLE = "title"
const val START = "start"
const val END = "end"
Expand Down
Loading