Skip to content

Commit

Permalink
[Merge] #199 - Conflict 해결 및 머지
Browse files Browse the repository at this point in the history
  • Loading branch information
jeongdung-eo committed Jan 7, 2024
2 parents 54640d8 + 3109e11 commit ac54e65
Show file tree
Hide file tree
Showing 20 changed files with 806 additions and 522 deletions.
12 changes: 8 additions & 4 deletions iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
0943A9F92A53239200614761 /* Bundle+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0943A9F82A53239200614761 /* Bundle+.swift */; };
09582B4829BDA7F600EF3207 /* DetailStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09582B4729BDA7F600EF3207 /* DetailStackView.swift */; };
09582B4B29BDE37C00EF3207 /* DetailFooterReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09582B4A29BDE37C00EF3207 /* DetailFooterReusableView.swift */; };
09582B4D29BE277800EF3207 /* DetailHeaderReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09582B4C29BE277800EF3207 /* DetailHeaderReusableView.swift */; };
09582B4D29BE277800EF3207 /* DetailHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09582B4C29BE277800EF3207 /* DetailHeaderView.swift */; };
09582B4F29BEBAFA00EF3207 /* DetailCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09582B4E29BEBAFA00EF3207 /* DetailCalendarViewController.swift */; };
09582B5129C0BC3600EF3207 /* DetailAchievementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09582B5029C0BC3600EF3207 /* DetailAchievementViewController.swift */; };
0960C0D42A38BC6500A3D8DB /* KeychainUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0960C0D32A38BC6500A3D8DB /* KeychainUtil.swift */; };
Expand All @@ -45,6 +45,7 @@
09A1465F2A192C4900DDC308 /* WeekMissionResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A1465E2A192C4900DDC308 /* WeekMissionResponseDTO.swift */; };
09A146652A1964B500DDC308 /* AddAnotherDayResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A146642A19649A00DDC308 /* AddAnotherDayResponseDTO.swift */; };
09C8602D2AB14B4800C4F4B1 /* FSCalendar in Frameworks */ = {isa = PBXBuildFile; productRef = 09C8602C2AB14B4800C4F4B1 /* FSCalendar */; };
09CF56042B09F23800526C8C /* HomeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56032B09F23800526C8C /* HomeDataSource.swift */; };
09DCCD1F2A18ED76003DCF8A /* DailyMissionResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD1E2A18ED76003DCF8A /* DailyMissionResponseDTO.swift */; };
09DCCD212A18EF43003DCF8A /* HomeSevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD202A18EF43003DCF8A /* HomeSevice.swift */; };
09DCCD232A18EFB0003DCF8A /* HomeAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD222A18EFB0003DCF8A /* HomeAPI.swift */; };
Expand Down Expand Up @@ -183,7 +184,7 @@
0943A9F82A53239200614761 /* Bundle+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+.swift"; sourceTree = "<group>"; };
09582B4729BDA7F600EF3207 /* DetailStackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailStackView.swift; sourceTree = "<group>"; };
09582B4A29BDE37C00EF3207 /* DetailFooterReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailFooterReusableView.swift; sourceTree = "<group>"; };
09582B4C29BE277800EF3207 /* DetailHeaderReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailHeaderReusableView.swift; sourceTree = "<group>"; };
09582B4C29BE277800EF3207 /* DetailHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailHeaderView.swift; sourceTree = "<group>"; };
09582B4E29BEBAFA00EF3207 /* DetailCalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailCalendarViewController.swift; sourceTree = "<group>"; };
09582B5029C0BC3600EF3207 /* DetailAchievementViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailAchievementViewController.swift; sourceTree = "<group>"; };
0960C0D32A38BC6500A3D8DB /* KeychainUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainUtil.swift; sourceTree = "<group>"; };
Expand All @@ -202,6 +203,7 @@
099FC98829B3233D005B37E6 /* CalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = "<group>"; };
09A1465E2A192C4900DDC308 /* WeekMissionResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeekMissionResponseDTO.swift; sourceTree = "<group>"; };
09A146642A19649A00DDC308 /* AddAnotherDayResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAnotherDayResponseDTO.swift; sourceTree = "<group>"; };
09CF56032B09F23800526C8C /* HomeDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeDataSource.swift; sourceTree = "<group>"; };
09DCCD1E2A18ED76003DCF8A /* DailyMissionResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyMissionResponseDTO.swift; sourceTree = "<group>"; };
09DCCD202A18EF43003DCF8A /* HomeSevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeSevice.swift; sourceTree = "<group>"; };
09DCCD222A18EFB0003DCF8A /* HomeAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeAPI.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -451,6 +453,7 @@
isa = PBXGroup;
children = (
3B027A9D299C34DA00BEB65C /* HomeViewController.swift */,
09CF56032B09F23800526C8C /* HomeDataSource.swift */,
092C09B42A484DD900E9B06B /* HomeDeleteViewController.swift */,
0930DE6129B80550007958DE /* MissionDetailViewController.swift */,
09582B4E29BEBAFA00EF3207 /* DetailCalendarViewController.swift */,
Expand All @@ -465,7 +468,7 @@
097C003529AB8270008CAEF3 /* MissionListCollectionViewCell.swift */,
092E04B029BD9C86008A5892 /* MissionDetailCollectionViewCell.swift */,
09582B4A29BDE37C00EF3207 /* DetailFooterReusableView.swift */,
09582B4C29BE277800EF3207 /* DetailHeaderReusableView.swift */,
09582B4C29BE277800EF3207 /* DetailHeaderView.swift */,
);
path = Cells;
sourceTree = "<group>";
Expand Down Expand Up @@ -1276,6 +1279,7 @@
09022D4629C44BC300DE6E49 /* MissionCalendarCell.swift in Sources */,
6CA2083A2A195906001C4247 /* AuthResponseDTO.swift in Sources */,
09582B4B29BDE37C00EF3207 /* DetailFooterReusableView.swift in Sources */,
09CF56042B09F23800526C8C /* HomeDataSource.swift in Sources */,
093DB03F2A15FCC100ECA5F6 /* MissionDetailResponseDTO.swift in Sources */,
6CF4705B29A68EA9008D145C /* URLConstant.swift in Sources */,
3BD3B5C829B8F82C00D3575B /* AddMissionTextFieldView.swift in Sources */,
Expand Down Expand Up @@ -1327,7 +1331,7 @@
3BBB6C8F2A1E7BEA00B8745A /* CollectionViewLeftAlignLayout.swift in Sources */,
09A1465F2A192C4900DDC308 /* WeekMissionResponseDTO.swift in Sources */,
0930D37329B4FCAE0000C4AE /* StatisticsView.swift in Sources */,
09582B4D29BE277800EF3207 /* DetailHeaderReusableView.swift in Sources */,
09582B4D29BE277800EF3207 /* DetailHeaderView.swift in Sources */,
6CF4706A29A71D71008D145C /* Strings.swift in Sources */,
6CF4705F29A69025008D145C /* GeneralResponse.swift in Sources */,
097C003629AB8270008CAEF3 /* MissionListCollectionViewCell.swift in Sources */,
Expand Down
79 changes: 45 additions & 34 deletions iOS-NOTTODO/iOS-NOTTODO/Network/API/Home/HomeAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,51 +20,62 @@ final class HomeAPI {
public private(set) var missionDailyData: GeneralArrayResponse<DailyMissionResponseDTO>?
public private(set) var missionDetailDailyData: GeneralResponse<MissionDetailResponseDTO>?
public private(set) var updateMissionStatus: GeneralResponse<DailyMissionResponseDTO>?
public private(set) var missionWeekly: GeneralResponse<WeekMissionResponseDTO>?
public private(set) var missionWeekly: GeneralArrayResponse<WeekMissionResponseDTO>?
public private(set) var addAnotherDay: GeneralResponse<AddAnotherDayResponseDTO>?
public private(set) var particularDays: GeneralArrayResponse<String>?

// MARK: - GET

func getDailyMission(date: String, completion: @escaping (NetworkResult<Any>) -> Void) {
homeProvider.request(.dailyMission(date: date)) { response in
switch response {
case let .success(response):
let statusCode = response.statusCode
let data = response.data
let networkResult = NetworkBase.judgeStatus(by: statusCode, data, [DailyMissionResponseDTO].self)
completion(networkResult)
case let .failure(err):
print(err)
func getDailyMission(date: String, completion: @escaping (GeneralArrayResponse<DailyMissionResponseDTO>?) -> Void) {
homeProvider.request(.dailyMission(date: date)) { result in
switch result {
case .success(let response):
do {
self.missionDailyData = try response.map(GeneralArrayResponse<DailyMissionResponseDTO>?.self)
guard let missionDailtData = self.missionDailyData else { return completion(nil) }
completion(missionDailtData)
} catch let err {
print(err.localizedDescription, 500)
}
case .failure(let err):
print(err.localizedDescription)
completion(nil)
}
}
}

func getWeeklyMissoin(startDate: String, completion: @escaping (NetworkResult<Any>) -> Void) {
homeProvider.request(.missionWeekly(startDate: startDate)) { response in
switch response {
case let .success(response):
let statusCode = response.statusCode
let data = response.data
let networkResult = NetworkBase.judgeStatus(by: statusCode, data,
[WeekMissionResponseDTO].self)
completion(networkResult)
case let .failure(err):
print(err)
func getWeeklyMissoin(startDate: String, completion: @escaping (GeneralArrayResponse<WeekMissionResponseDTO>?) -> Void) {
homeProvider.request(.missionWeekly(startDate: startDate)) { result in
switch result {
case .success(let response):
do {
self.missionWeekly = try response.map(GeneralArrayResponse<WeekMissionResponseDTO>?.self)
guard let missionWeekly = self.missionWeekly else { return completion(nil) }
completion(missionWeekly)
} catch let err {
print(err.localizedDescription, 500)
}
case .failure(let err):
print(err.localizedDescription)
completion(nil)
}
}
}

func getDailyDetailMission(id: Int, completion: @escaping (NetworkResult<Any>) -> Void) {
homeProvider.request(.dailyDetailMission(id: id)) { response in
switch response {
case let .success(response):
let statusCode = response.statusCode
let data = response.data
let networkResult = NetworkBase.judgeStatus(by: statusCode, data, MissionDetailResponseDTO.self)
completion(networkResult)
case let .failure(err):
print(err)
func getDailyDetailMission(id: Int, completion: @escaping (GeneralResponse<MissionDetailResponseDTO>?) -> Void) {
homeProvider.request(.dailyDetailMission(id: id)) { result in
switch result {
case .success(let response):
do {
self.missionDetailDailyData = try response.map(GeneralResponse<MissionDetailResponseDTO>?.self)
guard let missionDetailDailyData = self.missionDetailDailyData else { return completion(nil) }
completion(missionDetailDailyData)
} catch let err {
print(err.localizedDescription, 500)
}
case .failure(let err):
print(err.localizedDescription)
completion(nil)
}
}
}
Expand Down Expand Up @@ -113,7 +124,7 @@ final class HomeAPI {
case .success(let response):
do {
self.updateMissionStatus = try response.map(GeneralResponse<DailyMissionResponseDTO>?.self)
guard self.updateMissionStatus != nil else { return }
guard self.updateMissionStatus != nil else { return completion(nil) }
completion(self.updateMissionStatus)
} catch let err {
print(err.localizedDescription, 500)
Expand All @@ -133,7 +144,7 @@ final class HomeAPI {
case .success(let response):
do {
self.addAnotherDay = try response.map(GeneralResponse<AddAnotherDayResponseDTO>?.self)
guard let addAnotherDay = self.addAnotherDay else { return }
guard let addAnotherDay = self.addAnotherDay else { return completion(nil) }
completion(addAnotherDay)
} catch let err {
print(err.localizedDescription, 500)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,18 @@ enum CompletionStatus: String, Codable, Hashable {
// MARK: - DailyMissionResponseDTO

struct DailyMissionResponseDTO: Codable, Hashable {
var id: Int
var title: String
var situationName: String
var completionStatus: CompletionStatus

var uuid = UUID()
let id: Int
let title: String
let situationName: String
let completionStatus: CompletionStatus

enum CodingKeys: String, CodingKey {
case id, title, situationName, completionStatus
}

static func == (lhs: DailyMissionResponseDTO, rhs: DailyMissionResponseDTO) -> Bool {
lhs.uuid == rhs.uuid
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ final class AchievementViewController: UIViewController {
AmplitudeAnalyticsService.shared.send(event: AnalyticsEvent.Achieve.viewAccomplish)

if let today = monthCalendar.calendar.today {
monthCalendar.configureYearMonth(to: Utils.dateFormatterString(format: I18N.yearMonthTitle, date: today))
monthCalendar.calendar.currentPage = today
monthCalendar.yearMonthLabel.text = Utils.dateFormatterString(format: I18N.yearMonthTitle, date: today)
requestMonthAPI(month: Utils.dateFormatterString(format: "yyyy-MM", date: today))
}
}
Expand Down Expand Up @@ -124,9 +124,8 @@ extension AchievementViewController: FSCalendarDelegate, FSCalendarDataSource, F

func calendarCurrentPageDidChange(_ calendar: FSCalendar) {
self.currentPage = calendar.currentPage
monthCalendar.yearMonthLabel.text = Utils.dateFormatterString(format: I18N.yearMonthTitle,
date: calendar.currentPage)
requestMonthAPI(month: Utils.dateFormatterString(format: "yyyy-MM", date: calendar.currentPage))
monthCalendar.configureYearMonth(to: Utils.dateFormatterString(format: I18N.yearMonthTitle, date: calendar.currentPage))
}

func calendar(_ calendar: FSCalendar, titleFor date: Date) -> String? {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,22 +146,14 @@ extension DetailAchievementViewController {
}

extension DetailAchievementViewController {
func requestDetailAPI(date: String) {
HomeAPI.shared.getDailyMission(date: date) { [self] result in
switch result {
case let .success(data):
guard let data = data as? [DailyMissionResponseDTO] else { return }
self.missionList = data
updateData(item: missionList)
case .requestErr:
print("requestErr")
case .pathErr:
print("pathErr")
case .serverErr:
print("serverErr")
case .networkFail:
print("networkFail")
}

private func requestDetailAPI(date: String) {
HomeAPI.shared.getDailyMission(date: date) { [weak self] response in
guard let self else { return }
guard let response = response else { return }
guard let data = response.data else { return }
let missionList = data
self.updateData(item: missionList)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ extension DateCollectionViewCell {

extension DateCollectionViewCell: FSCalendarDelegate, FSCalendarDelegateAppearance {
func calendarCurrentPageDidChange(_ calendar: FSCalendar) {
calendarView.yearMonthLabel.text = Utils.dateFormatterString(format: I18N.yearMonthTitle, date: calendar.currentPage)
calendarView.configureYearMonth(to: Utils.dateFormatterString(format: I18N.yearMonthTitle, date: calendar.currentPage))
}

func calendar(_ calendar: FSCalendar, shouldSelect date: Date, at monthPosition: FSCalendarMonthPosition) -> Bool {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,26 +319,17 @@ extension AddMissionViewController {
}

private func requestDailyMissionAPI(id: Int) {
HomeAPI.shared.getDailyDetailMission(id: id) { [weak self] result in
switch result {
case let .success(data):
if let missionData = data as? MissionDetailResponseDTO {
self?.nottodoInfoList[1] = missionData.title
self?.nottodoInfoList[2] = missionData.situation
self?.nottodoInfoList[3] = missionData.actions.first!.name
self?.nottodoInfoList[4] = missionData.goal
self?.addMissionCollectionView.reloadData()
} else {
print("Failed to cast data to MissionDetailResponseDTO")
}
case .pathErr:
print("pathErr")
case .serverErr:
print("serverErr")
case .networkFail:
print("networkFail")
case .requestErr:
print("networkFail")
HomeAPI.shared.getDailyDetailMission(id: id) { [weak self] response in
guard let self = self, let response = response else { return }

if let data = response.data {
self.nottodoInfoList[1] = data.title
self.nottodoInfoList[2] = data.situation
self.nottodoInfoList[3] = data.actions.first?.name ?? ""
self.nottodoInfoList[4] = data.goal
self.addMissionCollectionView.reloadData()
} else {
self.nottodoInfoList = ["", "", "", ""]
}
}
}
Expand Down Expand Up @@ -378,7 +369,7 @@ extension AddMissionViewController: UICollectionViewDataSource {
}
missionMenuCell.setCellData([currentCellInfo])
}

if let missionDateCell = cell as? DateCollectionViewCell {
missionDateCell.setDateList(dateList)
}
Expand Down
Loading

0 comments on commit ac54e65

Please sign in to comment.