Skip to content

Commit

Permalink
[MERGE] #107 -> develop
Browse files Browse the repository at this point in the history
[FEAT/#107] 설정뷰 / 계좌 추가, 수정 API 구현
  • Loading branch information
Marchbreeze committed Sep 3, 2024
2 parents ba43e50 + 7717dab commit d5ab6e0
Show file tree
Hide file tree
Showing 40 changed files with 786 additions and 47 deletions.
10 changes: 5 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,17 +68,17 @@
android:screenOrientation="portrait" />

<activity
android:name="co.orange.presentation.setting.delivery.DeliveryActivity"
android:name="co.orange.presentation.delivery.DeliveryActivity"
android:exported="false"
android:screenOrientation="portrait" />

<activity
android:name="co.orange.presentation.setting.bank.BankActivity"
android:name="co.orange.presentation.bank.BankActivity"
android:exported="false"
android:screenOrientation="portrait" />

<activity
android:name="co.orange.presentation.setting.account.AccountActivity"
android:name="co.orange.presentation.setting.AccountActivity"
android:exported="false"
android:screenOrientation="portrait" />

Expand Down Expand Up @@ -134,7 +134,7 @@
android:screenOrientation="portrait" />

<activity
android:name="co.orange.presentation.address.AddressActivity"
android:name="co.orange.presentation.delivery.address.AddressActivity"
android:exported="false"
android:screenOrientation="portrait" />

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

<activity
android:name="co.orange.presentation.address.AddressWebActivity"
android:name="co.orange.presentation.delivery.address.AddressWebActivity"
android:exported="true">
<intent-filter>
<action android:name="co.orange.presentation.address.ADDRESS" />
Expand Down
7 changes: 7 additions & 0 deletions core/src/main/java/co/orange/core/extension/StringExt.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,10 @@ fun String.convertDateTime(
DateTimeFormatter.ofPattern(oldPattern),
)
.format(DateTimeFormatter.ofPattern(newPattern))

fun String.maskName(): String =
when (this.length) {
2 -> "${this[0]}*"
3 -> "${this[0]}*${this[2]}"
else -> "${this[0]}" + "*".repeat(this.length - 2) + "${this.last()}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package co.orange.data.dataSource

import co.orange.data.dto.BaseResponse
import co.orange.data.dto.request.AddressRequestDto
import co.orange.data.dto.request.BankRequestDto
import co.orange.data.dto.response.AddressDto
import co.orange.data.dto.response.BankDto
import co.orange.data.dto.response.NicknameDto
import co.orange.data.dto.response.SettingInfoDto

Expand All @@ -23,4 +25,11 @@ interface SettingDataSource {
suspend fun postUserLogout(): BaseResponse<Boolean>

suspend fun deleteToUserQuit(): BaseResponse<NicknameDto>

suspend fun postToAddBank(request: BankRequestDto): BaseResponse<BankDto>

suspend fun putToModBank(
accountId: Long,
request: BankRequestDto,
): BaseResponse<BankDto>
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package co.orange.data.dataSourceImpl
import co.orange.data.dataSource.SettingDataSource
import co.orange.data.dto.BaseResponse
import co.orange.data.dto.request.AddressRequestDto
import co.orange.data.dto.request.BankRequestDto
import co.orange.data.dto.response.AddressDto
import co.orange.data.dto.response.BankDto
import co.orange.data.dto.response.NicknameDto
import co.orange.data.dto.response.SettingInfoDto
import co.orange.data.service.SettingService
Expand Down Expand Up @@ -31,4 +33,11 @@ data class SettingDataSourceImpl
override suspend fun postUserLogout(): BaseResponse<Boolean> = settingService.postUserLogout()

override suspend fun deleteToUserQuit(): BaseResponse<NicknameDto> = settingService.deleteToUserQuit()

override suspend fun postToAddBank(request: BankRequestDto): BaseResponse<BankDto> = settingService.postToAddBank(request)

override suspend fun putToModBank(
accountId: Long,
request: BankRequestDto,
): BaseResponse<BankDto> = settingService.putToModBank(accountId, request)
}
19 changes: 19 additions & 0 deletions data/src/main/java/co/orange/data/dto/request/BankRequestDto.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package co.orange.data.dto.request

import co.orange.domain.entity.request.BankRequestModel
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class BankRequestDto(
@SerialName("accountName")
val accountName: String,
@SerialName("bank")
val bank: String,
@SerialName("accountNumber")
val accountNumber: String,
) {
companion object {
fun BankRequestModel.toDto() = BankRequestDto(accountName, bank, accountNumber)
}
}
19 changes: 19 additions & 0 deletions data/src/main/java/co/orange/data/dto/response/BankDto.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package co.orange.data.dto.response

import co.orange.domain.entity.response.BankModel
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class BankDto(
@SerialName("accountId")
val accountId: Long,
@SerialName("name")
val name: String,
@SerialName("bank")
val bank: String,
@SerialName("accountNumber")
val accountNumber: String,
) {
fun toModel() = BankModel(accountId, name, bank, accountNumber)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ package co.orange.data.repositoryImpl

import co.orange.data.dataSource.SettingDataSource
import co.orange.data.dto.request.AddressRequestDto.Companion.toDto
import co.orange.data.dto.request.BankRequestDto.Companion.toDto
import co.orange.domain.entity.request.AddressRequestModel
import co.orange.domain.entity.request.BankRequestModel
import co.orange.domain.entity.response.AddressModel
import co.orange.domain.entity.response.BankModel
import co.orange.domain.entity.response.NicknameModel
import co.orange.domain.entity.response.SettingInfoModel
import co.orange.domain.repository.SettingRepository
Expand Down Expand Up @@ -51,4 +54,17 @@ class SettingRepositoryImpl
runCatching {
settingDataSource.deleteToUserQuit().data.toModel()
}

override suspend fun postToAddBank(request: BankRequestModel): Result<BankModel> =
runCatching {
settingDataSource.postToAddBank(request.toDto()).data.toModel()
}

override suspend fun putToModBank(
accountId: Long,
request: BankRequestModel,
): Result<BankModel> =
runCatching {
settingDataSource.putToModBank(accountId, request.toDto()).data.toModel()
}
}
13 changes: 13 additions & 0 deletions data/src/main/java/co/orange/data/service/SettingService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package co.orange.data.service

import co.orange.data.dto.BaseResponse
import co.orange.data.dto.request.AddressRequestDto
import co.orange.data.dto.request.BankRequestDto
import co.orange.data.dto.response.AddressDto
import co.orange.data.dto.response.BankDto
import co.orange.data.dto.response.NicknameDto
import co.orange.data.dto.response.SettingInfoDto
import retrofit2.http.Body
Expand Down Expand Up @@ -40,4 +42,15 @@ interface SettingService {

@DELETE("/api/v1/auth/withdraw")
suspend fun deleteToUserQuit(): BaseResponse<NicknameDto>

@POST("/api/v1/mypage/setting/account")
suspend fun postToAddBank(
@Body request: BankRequestDto,
): BaseResponse<BankDto>

@PUT("/api/v1/mypage/setting/account/{id}")
suspend fun putToModBank(
@Path("id") accountId: Long,
@Body request: BankRequestDto,
): BaseResponse<BankDto>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package co.orange.domain.entity.request

data class BankRequestModel(
val accountName: String,
val bank: String,
val accountNumber: String,
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package co.orange.domain.entity.response

data class AccountModel(
data class BankModel(
val accountId: Long,
val name: String,
val bank: String,
Expand Down
30 changes: 30 additions & 0 deletions domain/src/main/kotlin/co/orange/domain/enums/BankType.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package co.orange.domain.enums

enum class BankType(val displayName: String, val code: String) {
KOOKMIN("국민은행", "KOOKMIN"),
NONGHYUP("농협", "NONGHYUP"),
KAKAOBANK("카카오뱅크", "KAKAOBANK"),
SINHAN("신한은행", "SINHAN"),
WOORI("우리은행", "WOORI"),
IBK("기업은행", "IBK"),
HANA("하나은행", "HANA"),
TOSS("토스뱅크", "TOSS"),
KDB("산업은행", "KDB"),
POST("우체국", "POST"),
SC("SC 제일은행", "SC"),
BUSAN("부산은행", "BUSAN"),
GWANGJU("광주은행", "GWANGJU"),
JEONBUK("전북은행", "JEONBUK"),
DAEGU("IM 뱅크(대구)", "IM_BANK"),
KYONGNAM("경남은행", "KYONGNAM"),
JEJU("제주은행", "JEJU"),
SUHYUP("수협", "SUHYUP"),
K_BANK("케이뱅크", "K_BANK"),
SAE_MAUL("새마을금고", "SAE_MAUL"),
SHINHYUP("신협", "SHINHYUP"),
NONGCHUK("농축협", "NONGCHUK"),
CITI("씨티은행", "CITI"),
SAVING("저축은행", "SAVING"),
HSBC("HSBC 은행", "HSBC"),
DEUTSCHE("도이치 은행", "DEUTSCHE"),
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package co.orange.domain.repository

import co.orange.domain.entity.request.AddressRequestModel
import co.orange.domain.entity.request.BankRequestModel
import co.orange.domain.entity.response.AddressModel
import co.orange.domain.entity.response.BankModel
import co.orange.domain.entity.response.NicknameModel
import co.orange.domain.entity.response.SettingInfoModel

Expand All @@ -22,4 +24,11 @@ interface SettingRepository {
suspend fun postUserLogout(): Result<Boolean>

suspend fun deleteToUserQuit(): Result<NicknameModel>

suspend fun postToAddBank(request: BankRequestModel): Result<BankModel>

suspend fun putToModBank(
accountId: Long,
request: BankRequestModel,
): Result<BankModel>
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package co.orange.presentation.setting.bank
package co.orange.presentation.bank

import android.os.Bundle
import androidx.activity.viewModels
import co.orange.core.base.BaseActivity
import co.orange.core.extension.setOnSingleClickListener
import co.orange.domain.entity.response.AccountModel
import co.orange.domain.entity.response.BankModel
import co.orange.presentation.bank.add.BankAddActivity
import co.orange.presentation.bank.add.BankAddActivity.Companion.DEFAULT_ID
import dagger.hilt.android.AndroidEntryPoint
import kr.genti.presentation.R
import kr.genti.presentation.databinding.ActivityBankBinding
Expand All @@ -18,19 +20,27 @@ class BankActivity : BaseActivity<ActivityBankBinding>(R.layout.activity_bank) {

initBackBtnListener()
initBankInfoBtnListener()
setDeliveryUi(viewModel.mockAccountModel)
setDeliveryUi(viewModel.mockBankModel)
}

private fun initBackBtnListener() {
binding.btnBack.setOnSingleClickListener { finish() }
}

private fun initBankInfoBtnListener() {
// TODO
binding.layoutBankItem.setOnSingleClickListener { }
with(binding) {
btnBankAdd.setOnSingleClickListener { navigateToAddBankView(DEFAULT_ID) }
btnBankMod.setOnSingleClickListener { navigateToAddBankView(viewModel.accountId) }
}
}

private fun navigateToAddBankView(accountId: Long) {
BankAddActivity.createIntent(this, accountId).apply {
startActivity(this)
}
}

private fun setDeliveryUi(item: AccountModel) {
private fun setDeliveryUi(item: BankModel) {
with(binding) {
tvBankName.text = item.bank
tvBankAccount.text = item.accountNumber
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package co.orange.presentation.setting.bank
package co.orange.presentation.bank

import androidx.lifecycle.ViewModel
import co.orange.domain.entity.response.AccountModel
import co.orange.domain.entity.response.BankModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject

Expand All @@ -11,8 +11,9 @@ class BankViewModel
constructor(
// private val feedRepository: FeedRepository,
) : ViewModel() {
val mockAccountModel =
AccountModel(
var accountId: Long = -1
val mockBankModel =
BankModel(
0,
"김상호",
"우리은행",
Expand Down
Loading

0 comments on commit d5ab6e0

Please sign in to comment.