Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion MarketPlace/API/Endpoint/MemberEndPoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ enum MemberEndPoint: Endpoint {
case signIn(studentId: String, password: String)
case fetchFavoriteMarket(lastModifiedAt: String?, pageSize: Int?)
case saveAccountNum(account: String, accountNumber: String)
case deleteAccountNum

var baseURL: URL { URLManager.shared.baseURL }

Expand All @@ -21,6 +22,7 @@ enum MemberEndPoint: Endpoint {
case .signIn: return "api/members"
case .fetchFavoriteMarket: return "api/markets/my-favorite"
case .saveAccountNum: return "api/members/account/permit"
case .deleteAccountNum: return "api/members/account/deny"
}
}

Expand All @@ -30,7 +32,7 @@ enum MemberEndPoint: Endpoint {
.get
case .signIn:
.post
case .saveAccountNum:
case .saveAccountNum, .deleteAccountNum:
.patch
}
}
Expand Down
12 changes: 9 additions & 3 deletions MarketPlace/Service/MemberService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@ protocol MemberServiceProtocol {

// MARK: - 계좌번호 저장 API
func saveAccountNum(account: String, accountNumber: String) async -> NetworkResult<CommonMsgResDTO>

// MARK: - 계좌번호 삭제 API
func deleteAccountNum() async -> NetworkResult<CommonMsgResDTO>
}

final class MemberService: MemberServiceProtocol {
private let networkService: NetworkServiceProtocol

init(
networkService: NetworkServiceProtocol = NetworkService()
) {
init(networkService: NetworkServiceProtocol = NetworkService()) {
self.networkService = networkService
}

Expand All @@ -50,4 +51,9 @@ final class MemberService: MemberServiceProtocol {
func saveAccountNum(account: String, accountNumber: String) async -> NetworkResult<CommonMsgResDTO> {
return await networkService.request(MemberEndPoint.saveAccountNum(account: account, accountNumber: accountNumber))
}

// MARK: - 계좌번호 저장 API
func deleteAccountNum() async -> NetworkResult<CommonMsgResDTO> {
return await networkService.request(MemberEndPoint.deleteAccountNum)
}
}
4 changes: 3 additions & 1 deletion MarketPlace/View/Login/LoginView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ struct LoginView: View {
}.disabled(studentID.isEmpty || password.isEmpty)

HStack(spacing: 20) {
CheckboxView(title: "계정 정보 저장", isChecked: $saveAccount)
CheckboxView(title: "계정 정보 저장", isChecked: $saveAccount, action: { _ in })
}
}
.padding(.horizontal, 20)
Expand Down Expand Up @@ -171,10 +171,12 @@ struct LoginView: View {
struct CheckboxView: View {
let title: String
@Binding var isChecked: Bool
let action: ((Bool) -> Void)?

var body: some View {
Button(action: {
isChecked.toggle()
action?(isChecked)
}) {
HStack {
Image(systemName: isChecked ? "checkmark.square.fill" : "square")
Expand Down
7 changes: 0 additions & 7 deletions MarketPlace/View/Main/View/MainView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ struct MainView: View {
@StateObject var viewModel = MainViewModel()
@EnvironmentObject var loginVM: LoginViewModel

@State private var isFullNoticePopUpVisible: Bool = true

var body: some View {
NavigationStack {
ZStack {
Expand Down Expand Up @@ -50,11 +48,6 @@ struct MainView: View {
}
.background(Color.white)
.edgesIgnoringSafeArea(.bottom)

if isFullNoticePopUpVisible {
FullNoticePopUp(isPopupVisible: $isFullNoticePopUpVisible)
.transition(.scale)
}
}
.task {
await viewModel.fetchCouponTopLatest(pageSize: nil)
Expand Down
8 changes: 7 additions & 1 deletion MarketPlace/View/MyPage/View/RegisterReceiptView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,13 @@ struct RegisterReceiptView: View {
)
}.padding(.bottom, 10)

CheckboxView(title: "계좌번호 저장", isChecked: $isAccountSaved)
CheckboxView(title: "계좌번호 저장", isChecked: $isAccountSaved) { saveAccount in
if !saveAccount {
Task {
await viewModel.deleteAccountNum()
}
}
}

Button(action: {
// - 계좌번호 임시저장
Expand Down
12 changes: 12 additions & 0 deletions MarketPlace/ViewModel/MyPage/SubmitReceiptViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,16 @@ final class SubmitReceiptViewModel: ObservableObject {
print("[saveAccountNum] - [\(statusCode)]: \(message ?? "알 수 없는 오류")")
}
}

// MARK: - 계좌번호 삭제 API
func deleteAccountNum() async {
let result = await memberService.deleteAccountNum()

switch result {
case .success(let data, let statusCode):
print(data.message)
case .failure(let statusCode, let message):
print("[deleteAccountNum] - [\(statusCode)]: \(message ?? "알 수 없는 오류")")
}
}
}