Skip to content

Commit

Permalink
✨[feat]: 날짜 필터 추가 qrcode 필터 #12
Browse files Browse the repository at this point in the history
  • Loading branch information
Roy-wonji committed Jun 22, 2024
1 parent ecce479 commit 9783d0a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
22 changes: 12 additions & 10 deletions Projects/App/Sources/Presentation/QrCode/Reducer/QrCode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,13 @@ public struct QrCode {
return .run { send in
if eventID != "" && userID == userID {
await send(.fetchEvent)
let convertDateString = startTime?.formattedFireBaseDate(date: startTime ?? Date())
let convertStringToDate = startTime?.formattedFireBaseStringToDate(dateString: convertDateString ?? "")
let qrCodeGenerateString = String.makeQrCodeValue(
userID: userID ?? "",
eventID: eventID ?? "",
startTime: startTime ?? Date(),
endTime: startTime ?? Date()
startTime: convertStringToDate ?? Date(),
endTime: convertStringToDate?.addingTimeInterval(1800) ?? Date()
)
let qrCodeImage = await qrCodeUseCase.generateQRCode(from: qrCodeGenerateString)
Log.debug(qrCodeGenerateString)
Expand Down Expand Up @@ -126,14 +128,14 @@ public struct QrCode {
switch fetchedData {
case let .success(fetchedData):
state.eventModel = fetchedData
let currentDate = Date.now
let convertDateToCurrent = currentDate.formattedDate(date: currentDate)
let convertDate = (state.eventModel.first?.startTime.formattedDate(date: state.eventModel.first?.startTime ?? Date()) ?? "") + (state.eventModel.first?.startTime.formattedTime(date: state.eventModel.first?.startTime ?? Date()) ?? "")
let makeEventDate = state.eventModel.first?.startTime.formattedDate(date: state.eventModel.first?.startTime ?? Date())
Log.debug(convertDateToCurrent, makeEventDate ?? "")
if convertDateToCurrent == makeEventDate ?? "" {
state.startTime = convertDate.stringToTimeAndDate(convertDate)
state.eventID = state.eventModel.first?.id
let todayEvents = Date().filterEventsForToday(events: state.eventModel)

if let todayEvent = todayEvents.first {
state.startTime = todayEvent.startTime
state.eventID = todayEvent.id
Log.debug("Today's event found: \(todayEvent.id)")
} else {
Log.debug("No event for today.")
}
case let .failure(error):
Log.error("Error fetching data", error)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ public struct RootCoreMember {
switch action {
case .element(id: _, action: .coreMember(.presentQrcode)):
let userID = try? Keychain().get("userID")
Log.debug("키체인", userID)
let eventID = try? Keychain().getData("deleteEventIDs")
Log.debug("키체인", userID, eventID)
state.path.append(.qrCode(.init(userID: userID ?? "")))

case .element(id: _, action: .coreMember(.presentEditEvent)):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ extension Date {
return dateFormatter.string(from: date)
}


func formattedTime(date: Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "ko_KR")
Expand Down Expand Up @@ -70,4 +71,15 @@ extension Date {
dateFormatter.dateFormat = "yyyy년 MM월 dd일 EEEE"
return dateFormatter.date(from: dateString) ?? Date()
}

func filterEventsForToday(events: [DDDEvent]) -> [DDDEvent] {
let currentDate = Date()
let currentFormattedDate = currentDate.formattedDate(date: currentDate)

return events.filter { event in
let eventStartTime = event.startTime
let eventFormattedDate = eventStartTime.formattedDate(date: eventStartTime)
return currentFormattedDate == eventFormattedDate
}
}
}

0 comments on commit 9783d0a

Please sign in to comment.