Skip to content

Commit cd76f37

Browse files
authored
[Merge] #210 - 취득예정,완료 자격증 수정 및 삭제, 라우팅 연결
2 parents 08e4acd + e0fa296 commit cd76f37

44 files changed

Lines changed: 579 additions & 211 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CERTI-iOS/Application/DIContainer/AppDIContainer.swift

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,12 @@ extension AppDIContainer {
200200
return DefaultEditUnivUseCase(repository: userRepository)
201201
}
202202

203-
func makeToggleNotificationSettingUseCase() -> DefaultToggleNotificationSettingUseCase {
204-
return DefaultToggleNotificationSettingUseCase(repository: userRepository)
203+
func makeToggleMarketingSettingUseCase() -> DefaultToggleMarketingSettingUseCase {
204+
return DefaultToggleMarketingSettingUseCase(repository: userRepository)
205+
}
206+
207+
func makeTogglePrivacySettingUseCase() -> DefaultTogglePrivacySettingUseCase {
208+
return DefaultTogglePrivacySettingUseCase(repository: userRepository)
205209
}
206210

207211
func makeGetNotificationSettingUseCase() -> DefaultGetNotificationSettingUseCase {
@@ -243,6 +247,14 @@ extension AppDIContainer {
243247
func makeLikeCommentUseCase() -> LikeCommentUseCase {
244248
return DefaultLikeCommentUseCase(repository: commentRepository)
245249
}
250+
251+
func makeEditAcquisitionUseCase() -> EditAcquisitionUseCase {
252+
return DefaultEditAcquisitionUseCase(repository: acquisitionRepository)
253+
}
254+
255+
func makeEditPreCertificationUseCase() -> EditPreCertificationUseCase {
256+
return DefaultEditPreCertificationUseCase(repository: homeRepository)
257+
}
246258
}
247259

248260

@@ -316,9 +328,14 @@ extension AppDIContainer {
316328
getFavoriteCertificationUseCase: makeGetFavoritePreCertificationUseCase(),
317329
withDrawUseCase: makeWithDrawUseCase(),
318330
getNotificationSettingUseCase: makeGetNotificationSettingUseCase(),
319-
toggleNotificationSettingUseCase: makeToggleNotificationSettingUseCase(),
331+
toggleMarketingSettingUseCase: makeToggleMarketingSettingUseCase(),
332+
togglePrivacySettingUseCase: makeTogglePrivacySettingUseCase(),
320333
switchFavoriteUseCase: makeSwitchFavoriteUseCase(),
321-
fetchAcquisitionListUseCase: makeFetchAcquisitionListUseCase()
334+
fetchAcquisitionListUseCase: makeFetchAcquisitionListUseCase(),
335+
deleteAcquisitionUseCase: makeDeleteAcquisitionUseCase(),
336+
deletePreCertificationUseCase: makeDeletePreCertificationUseCase(),
337+
editAcquisitionUseCase: makeEditAcquisitionUseCase(),
338+
editPreCertificationUseCase: makeEditPreCertificationUseCase()
322339
)
323340
}
324341

CERTI-iOS/Data/Network/Acquisition/AcquisitionAPI.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ enum AcquisitionAPI {
1414
case addAcquisition(request: AddAcquisitionRequestDTO)
1515
case fetchAcquisitionDetail(id: Int)
1616
case deleteAcquisition(id: Int)
17+
case editAcquisition(request: EditAcquisitionRequestDTO, id: Int)
1718
}
1819

1920
extension AcquisitionAPI: BaseTargetType {
@@ -34,6 +35,8 @@ extension AcquisitionAPI: BaseTargetType {
3435
return "acquisition/\(id)"
3536
case .deleteAcquisition(let id):
3637
return "acquisition/\(id)"
38+
case .editAcquisition(_, let id):
39+
return "acquisition/\(id)"
3740
}
3841
}
3942

@@ -47,6 +50,8 @@ extension AcquisitionAPI: BaseTargetType {
4750
return .get
4851
case .deleteAcquisition:
4952
return .delete
53+
case .editAcquisition:
54+
return .patch
5055
}
5156
}
5257

@@ -60,6 +65,8 @@ extension AcquisitionAPI: BaseTargetType {
6065
return .requestPlain
6166
case .deleteAcquisition:
6267
return .requestPlain
68+
case .editAcquisition(let request, _):
69+
return .requestJSONEncodable(request)
6370
}
6471
}
6572

CERTI-iOS/Data/Network/Acquisition/AcquisitionService.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ protocol AcquisitionServiceProtocol {
1414
func addAcquisition(request: AddAcquisitionRequestDTO) async -> Result<BaseResponseDTO<Bool>, NetworkError>
1515
func fetchAcquisitionDetail(id: Int) async -> Result<AcquisitionDetailResponseDTO, NetworkError>
1616
func deleteAcquisition(id: Int) async -> Result<Void, NetworkError>
17+
func editAcquisition(request: EditAcquisitionRequestDTO, id: Int) async -> Result<Void, NetworkError>
1718
}
1819

1920
final class AcquisitionService: BaseService, AcquisitionServiceProtocol {
@@ -34,4 +35,8 @@ final class AcquisitionService: BaseService, AcquisitionServiceProtocol {
3435
func deleteAcquisition(id: Int) async -> Result<Void, NetworkError> {
3536
return await requestVoid(provider, .deleteAcquisition(id: id))
3637
}
38+
39+
func editAcquisition(request: EditAcquisitionRequestDTO, id: Int) async -> Result<Void, NetworkError> {
40+
return await requestVoid(provider, .editAcquisition(request: request, id: id))
41+
}
3742
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//
2+
// EditAcquisitionRequestDTO.swift
3+
// CERTI-iOS
4+
//
5+
// Created by OneTen on 2/13/26.
6+
//
7+
8+
import Foundation
9+
10+
struct EditAcquisitionRequestDTO: Codable {
11+
let acquisitionDate, grade: String
12+
}

CERTI-iOS/Data/Network/Certification/DTO/Response/CertificationInfoResponseDTO.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ extension CertificationInfoResponseDTO {
2929
iconIndex: iconIndex,
3030
city: "",
3131
state: "",
32-
testDate: ""
32+
testDate: "",
33+
preCertificationId: nil
3334
)
3435
}
3536
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//
2+
// EditPreCertificationRequestDTO.swift
3+
// CERTI-iOS
4+
//
5+
// Created by OneTen on 2/13/26.
6+
//
7+
8+
import Foundation
9+
10+
struct EditPreCertificationRequestDTO: Codable {
11+
let testDate, city, state: String
12+
}

CERTI-iOS/Data/Network/Home/DTO/Response/PreCertificationInfoResponseDTO.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ struct PreCertificationDataInfo: Codable {
2727
let nearestTestDate, agencyName: String
2828
let iconIndex: Int
2929
let city, state, testDate: String
30+
let preCertificationId: Int?
3031

3132
enum CodingKeys: String, CodingKey {
3233
case certificationID = "certificationId"
33-
case certificationName, certificationType, description, averagePeriod, nearestTestDate, agencyName, iconIndex, city, state, testDate
34+
case certificationName, certificationType, description, averagePeriod, nearestTestDate, agencyName, iconIndex, city, state, testDate, preCertificationId
3435
}
3536

3637
func toPreCertificationEntityData() -> PreCertificationEntityData {
@@ -45,7 +46,8 @@ struct PreCertificationDataInfo: Codable {
4546
iconIndex: iconIndex,
4647
city: city,
4748
state: state,
48-
testDate: testDate
49+
testDate: testDate,
50+
preCertificationId: preCertificationId
4951
)
5052
}
5153
}

CERTI-iOS/Data/Network/Home/HomeAPI.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ enum HomeAPI {
1414
case deletePreCertification(id: Int)
1515
case getFavoriteCertification
1616
case addPreCertification(request: AddPreCertificationRequestDTO)
17+
case editPreCertification(request: EditPreCertificationRequestDTO, id: Int)
1718
}
1819

1920
extension HomeAPI: BaseTargetType {
@@ -34,6 +35,8 @@ extension HomeAPI: BaseTargetType {
3435
return "home/favorite"
3536
case .addPreCertification:
3637
return "home/pre-certification"
38+
case .editPreCertification(_, id: let id):
39+
return "home/pre-certification/\(id)"
3740
}
3841
}
3942

@@ -47,6 +50,8 @@ extension HomeAPI: BaseTargetType {
4750
return .get
4851
case .addPreCertification:
4952
return .post
53+
case .editPreCertification:
54+
return .patch
5055
}
5156
}
5257

@@ -60,6 +65,8 @@ extension HomeAPI: BaseTargetType {
6065
return .requestPlain
6166
case .addPreCertification(let request):
6267
return .requestJSONEncodable(request)
68+
case .editPreCertification(let request, _):
69+
return .requestJSONEncodable(request)
6370
}
6471
}
6572

CERTI-iOS/Data/Network/Home/HomeService.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ protocol HomeServiceProtocol {
1414
func deletePreCertification(id: Int) async -> Result<Void, NetworkError>
1515
func getFavoriteCertification() async -> Result<FavoriteCertificationResponseDTO, NetworkError>
1616
func addPreCertification(request: AddPreCertificationRequestDTO) async -> Result<BaseResponseDTO<Bool>, NetworkError>
17-
17+
func editPreCertification(request: EditPreCertificationRequestDTO, id: Int) async -> Result<Void, NetworkError>
1818
}
1919

2020
final class HomeService: BaseService, HomeServiceProtocol {
@@ -36,4 +36,8 @@ final class HomeService: BaseService, HomeServiceProtocol {
3636
func addPreCertification(request: AddPreCertificationRequestDTO) async -> Result<BaseResponseDTO<Bool>, NetworkError> {
3737
return await requestDecodable(provider, .addPreCertification(request: request))
3838
}
39+
40+
func editPreCertification(request: EditPreCertificationRequestDTO, id: Int) async -> Result<Void, NetworkError> {
41+
return await requestVoid(provider, .editPreCertification(request: request, id: id))
42+
}
3943
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//
2+
// EditNotificationSettingRequestDTO.swift
3+
// CERTI-iOS
4+
//
5+
// Created by OneTen on 2/13/26.
6+
//
7+
8+
import Foundation
9+
10+
struct EditNotificationSettingRequestDTO: Codable {
11+
let isAgreed: Bool
12+
}

0 commit comments

Comments
 (0)