Skip to content

Commit 151ae21

Browse files
committed
Merge branch 'develop' into network/#207
2 parents 719c912 + 02a184d commit 151ae21

65 files changed

Lines changed: 1067 additions & 227 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: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ final class AppDIContainer {
2727
private lazy var acquisitionService: AcquisitionServiceProtocol = AcquisitionService()
2828
private lazy var careersService: CareersServiceProtocol = CareersService()
2929
private lazy var activityService: ActivityServiceProtocol = ActivityService()
30+
private lazy var reportService: ReportServiceProtocol = ReportService()
3031
private lazy var commentService: CommentServiceProtocol = CommentService()
3132

3233
// MARK: - Repositories
@@ -42,6 +43,7 @@ final class AppDIContainer {
4243
private lazy var careersRepository: CareersRepository = DefaultCareersRepository(service: careersService)
4344
private lazy var activityRepository: ActivityRepository = DefaultActivityRepository(service: activityService)
4445
private lazy var commentRepository: CommentRepository = DefaultCommentRepository(service: commentService)
46+
private lazy var ReportRepository: ReportRepository = DefaultReportRepository(service: reportService)
4547
}
4648

4749

@@ -208,8 +210,12 @@ extension AppDIContainer {
208210
return DefaultEditUnivUseCase(repository: userRepository)
209211
}
210212

211-
func makeToggleNotificationSettingUseCase() -> DefaultToggleNotificationSettingUseCase {
212-
return DefaultToggleNotificationSettingUseCase(repository: userRepository)
213+
func makeToggleMarketingSettingUseCase() -> DefaultToggleMarketingSettingUseCase {
214+
return DefaultToggleMarketingSettingUseCase(repository: userRepository)
215+
}
216+
217+
func makeTogglePrivacySettingUseCase() -> DefaultTogglePrivacySettingUseCase {
218+
return DefaultTogglePrivacySettingUseCase(repository: userRepository)
213219
}
214220

215221
func makeGetNotificationSettingUseCase() -> DefaultGetNotificationSettingUseCase {
@@ -251,6 +257,18 @@ extension AppDIContainer {
251257
func makeLikeCommentUseCase() -> LikeCommentUseCase {
252258
return DefaultLikeCommentUseCase(repository: commentRepository)
253259
}
260+
261+
func makeReportCommentUserCase() -> ReportCommentUseCase {
262+
return DefaultReportCommentUseCase(repository: ReportRepository)
263+
}
264+
265+
func makeEditAcquisitionUseCase() -> EditAcquisitionUseCase {
266+
return DefaultEditAcquisitionUseCase(repository: acquisitionRepository)
267+
}
268+
269+
func makeEditPreCertificationUseCase() -> EditPreCertificationUseCase {
270+
return DefaultEditPreCertificationUseCase(repository: homeRepository)
271+
}
254272
}
255273

256274

@@ -289,7 +307,8 @@ extension AppDIContainer {
289307
fetchCommentUseCase: makeFetchCommentUseCase(),
290308
addCommentUseCase: makeAddCommentUseCase(),
291309
deleteCommentUseCase: makeDeleteCommentUseCase(),
292-
likeCommentUseCase: makeLikeCommentUseCase()
310+
likeCommentUseCase: makeLikeCommentUseCase(),
311+
reportCommentUseCase: makeReportCommentUserCase()
293312
)
294313
}
295314

@@ -326,9 +345,14 @@ extension AppDIContainer {
326345
getFavoriteCertificationUseCase: makeGetFavoritePreCertificationUseCase(),
327346
withDrawUseCase: makeWithDrawUseCase(),
328347
getNotificationSettingUseCase: makeGetNotificationSettingUseCase(),
329-
toggleNotificationSettingUseCase: makeToggleNotificationSettingUseCase(),
348+
toggleMarketingSettingUseCase: makeToggleMarketingSettingUseCase(),
349+
togglePrivacySettingUseCase: makeTogglePrivacySettingUseCase(),
330350
switchFavoriteUseCase: makeSwitchFavoriteUseCase(),
331-
fetchAcquisitionListUseCase: makeFetchAcquisitionListUseCase()
351+
fetchAcquisitionListUseCase: makeFetchAcquisitionListUseCase(),
352+
deleteAcquisitionUseCase: makeDeleteAcquisitionUseCase(),
353+
deletePreCertificationUseCase: makeDeletePreCertificationUseCase(),
354+
editAcquisitionUseCase: makeEditAcquisitionUseCase(),
355+
editPreCertificationUseCase: makeEditPreCertificationUseCase()
332356
)
333357
}
334358

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
@@ -16,6 +16,7 @@ enum HomeAPI {
1616
case getMonthlyPreCertification(year: Int, month: Int)
1717
case getDailyPreCertification(date: String)
1818
case addPreCertification(request: AddPreCertificationRequestDTO)
19+
case editPreCertification(request: EditPreCertificationRequestDTO, id: Int)
1920
}
2021

2122
extension HomeAPI: BaseTargetType {
@@ -40,6 +41,8 @@ extension HomeAPI: BaseTargetType {
4041
return "home/pre-certification/day"
4142
case .addPreCertification:
4243
return "home/pre-certification"
44+
case .editPreCertification(_, id: let id):
45+
return "home/pre-certification/\(id)"
4346
}
4447
}
4548

@@ -57,6 +60,8 @@ extension HomeAPI: BaseTargetType {
5760
return .get
5861
case .getDailyPreCertification:
5962
return .get
63+
case .editPreCertification:
64+
return .patch
6065
}
6166
}
6267

@@ -82,6 +87,8 @@ extension HomeAPI: BaseTargetType {
8287
)
8388
case .addPreCertification(let request):
8489
return .requestJSONEncodable(request)
90+
case .editPreCertification(let request, _):
91+
return .requestJSONEncodable(request)
8592
}
8693
}
8794

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ protocol HomeServiceProtocol {
1616
func getMonthlyPreCertification(year: Int, month: Int) async -> Result<MonthlyPreCertificationResponseDTO, NetworkError>
1717
func getDailyPreCertification(date: String) async -> Result<DailyPreCertificationResponseDTO, NetworkError>
1818
func addPreCertification(request: AddPreCertificationRequestDTO) async -> Result<BaseResponseDTO<Bool>, NetworkError>
19+
func editPreCertification(request: EditPreCertificationRequestDTO, id: Int) async -> Result<Void, NetworkError>
1920
}
2021

2122
final class HomeService: BaseService, HomeServiceProtocol {
@@ -45,4 +46,8 @@ final class HomeService: BaseService, HomeServiceProtocol {
4546
func getDailyPreCertification(date: String) async -> Result<DailyPreCertificationResponseDTO, NetworkError> {
4647
return await requestDecodable(provider, .getDailyPreCertification(date: date))
4748
}
49+
50+
func editPreCertification(request: EditPreCertificationRequestDTO, id: Int) async -> Result<Void, NetworkError> {
51+
return await requestVoid(provider, .editPreCertification(request: request, id: id))
52+
}
4853
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
//
2+
// ReportAPI.swift
3+
// CERTI-iOS
4+
//
5+
// Created by 이상엽 on 2/11/26.
6+
//
7+
8+
import Foundation
9+
10+
import Moya
11+
12+
enum ReportAPI {
13+
case reportComment(commentId: Int, request: ReportCommentRequestDTO)
14+
}
15+
16+
extension ReportAPI: BaseTargetType {
17+
var headerType: HeaderType {
18+
switch self {
19+
default:
20+
return .accessTokenHeader
21+
}
22+
}
23+
24+
var path: String {
25+
switch self {
26+
case .reportComment(let commentId, _):
27+
return "report/comment/\(commentId)"
28+
}
29+
}
30+
31+
var method: Moya.Method {
32+
switch self {
33+
case .reportComment:
34+
return .post
35+
}
36+
}
37+
38+
var task: Moya.Task {
39+
switch self {
40+
case .reportComment(_, let request):
41+
return .requestJSONEncodable(request)
42+
}
43+
}
44+
}

0 commit comments

Comments
 (0)