Skip to content

Commit 11a6c4d

Browse files
committed
[Refactor] #263 - 보관함 서버 통신 함수 리팩토링
1 parent 8cf1af4 commit 11a6c4d

2 files changed

Lines changed: 32 additions & 81 deletions

File tree

Runnect-iOS/Runnect-iOS/Network/Service/Providers.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,17 @@ struct Providers {
2020
static let stampProvider = MoyaProvider<StampRouter>(withAuth: true)
2121
}
2222

23+
struct Provider {
24+
static let departureSearchingProvider = NetworkProvider<DepartureSearchingRouter>(withAuth: false)
25+
static let authProvider = NetworkProvider<AuthRouter>(withAuth: true)
26+
static let userProvider = NetworkProvider<UserRouter>(withAuth: true)
27+
static let courseProvider = NetworkProvider<CourseRouter>(withAuth: true)
28+
static let publicCourseProvider = NetworkProvider<PublicCourseRouter>(withAuth: true)
29+
static let recordProvider = NetworkProvider<RecordRouter>(withAuth: true)
30+
static let scrapProvider = NetworkProvider<ScrapRouter>(withAuth: true)
31+
static let stampProvider = NetworkProvider<StampRouter>(withAuth: true)
32+
}
33+
2334
extension MoyaProvider {
2435
convenience init(withAuth: Bool) {
2536
if withAuth {

Runnect-iOS/Runnect-iOS/Presentation/CourseStorage/VC/CourseStorageVC.swift

Lines changed: 21 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import Then
1515
final class CourseStorageVC: UIViewController {
1616

1717
// MARK: - Properties
18-
private let courseProvider = Providers.courseProvider
18+
private let courseProvider = Provider.courseProvider
1919

20-
private let scrapProvider = Providers.scrapProvider
20+
private let scrapProvider = Provider.scrapProvider
2121

2222
private let cancelBag = CancelBag()
2323

@@ -270,105 +270,45 @@ extension CourseStorageVC: PrivateCourseListViewDelegate {
270270
extension CourseStorageVC {
271271
private func getPrivateCourseList() {
272272
LoadingIndicator.showLoading()
273-
courseProvider.request(.getAllPrivateCourse) { [weak self] response in
274-
guard let self = self else { return }
273+
274+
courseProvider.request(target: .getAllPrivateCourse, instance: BaseResponse<PrivateCourseResponseDto>.self, vc: self) { response in
275275
LoadingIndicator.hideLoading()
276-
switch response {
277-
case .success(let result):
278-
let status = result.statusCode
279-
if 200..<300 ~= status {
280-
do {
281-
let responseDto = try result.map(BaseResponse<PrivateCourseResponseDto>.self)
282-
guard let data = responseDto.data else { return }
283-
self.setPrivateCourseData(courseList: data.courses)
284-
} catch {
285-
print(error.localizedDescription)
286-
}
287-
}
288-
if status >= 400 {
289-
print("400 error")
290-
self.showNetworkFailureToast()
291-
}
292-
case .failure(let error):
293-
print(error.localizedDescription)
294-
self.showNetworkFailureToast()
295-
}
276+
277+
guard let data = response.data else { return }
278+
self.setPrivateCourseData(courseList: data.courses)
296279
}
297280
}
298281

299282
private func getScrapCourseList() {
300283
LoadingIndicator.showLoading()
301-
scrapProvider.request(.getScrapCourse) { [weak self] response in
302-
guard let self = self else { return }
284+
285+
scrapProvider.request(target: .getScrapCourse, instance: BaseResponse<ScrapCourseResponseDto>.self, vc: self) { response in
303286
LoadingIndicator.hideLoading()
304-
switch response {
305-
case .success(let result):
306-
let status = result.statusCode
307-
if 200..<300 ~= status {
308-
do {
309-
let responseDto = try result.map(BaseResponse<ScrapCourseResponseDto>.self)
310-
guard let data = responseDto.data else { return }
311-
self.setScrapCourseData(courseList: data.scraps)
312-
} catch {
313-
print(error.localizedDescription)
314-
}
315-
}
316-
if status >= 400 {
317-
print("400 error")
318-
self.showNetworkFailureToast()
319-
}
320-
case .failure(let error):
321-
print(error.localizedDescription)
322-
self.showNetworkFailureToast()
323-
}
287+
288+
guard let data = response.data else { return }
289+
self.setScrapCourseData(courseList: data.scraps)
324290
}
325291
}
326292

327293
private func scrapCourse(publicCourseId: Int, scrapTF: Bool) {
328294
LoadingIndicator.showLoading()
329-
scrapProvider.request(.createAndDeleteScrap(publicCourseId: publicCourseId, scrapTF: scrapTF)) { [weak self] response in
295+
296+
scrapProvider.request(target: .createAndDeleteScrap(publicCourseId: publicCourseId, scrapTF: scrapTF), instance: BaseResponse<BlankData>.self, vc: self) { response in
330297
LoadingIndicator.hideLoading()
331-
guard let self = self else { return }
332-
switch response {
333-
case .success(let result):
334-
let status = result.statusCode
335-
if 200..<300 ~= status {
336-
self.getScrapCourseList()
337-
}
338-
if status >= 400 {
339-
print("400 error")
340-
self.showNetworkFailureToast()
341-
}
342-
case .failure(let error):
343-
print(error.localizedDescription)
344-
self.showNetworkFailureToast()
345-
}
298+
299+
self.getScrapCourseList()
346300
}
347301
}
348302

349303
private func deleteCourse(courseIdList: [Int]) {
350304
LoadingIndicator.showLoading()
351-
courseProvider.request(.deleteCourse(courseIdList: courseIdList)) { [weak self] response in
305+
306+
courseProvider.request(target: .deleteCourse(courseIdList: courseIdList), instance: BaseResponse<BlankData>.self, vc: self) { response in
352307
LoadingIndicator.hideLoading()
353-
guard let self = self else { return }
308+
354309
self.privateCourseListView.isEditMode = false
355-
switch response {
356-
case .success(let result):
357-
print("리절트", result)
358-
let status = result.statusCode
359-
if 200..<300 ~= status {
360-
print("삭제 성공")
361-
self.getPrivateCourseList()
362-
self.finishEditMode(withDuration: 0.7)
363-
}
364-
if status >= 400 {
365-
print("400 error")
366-
self.showNetworkFailureToast()
367-
}
368-
case .failure(let error):
369-
print(error.localizedDescription)
370-
self.showNetworkFailureToast()
371-
}
310+
self.getPrivateCourseList()
311+
self.finishEditMode(withDuration: 0.7)
372312
}
373313
}
374314
}

0 commit comments

Comments
 (0)