MESSENGER-5071 use ios8601 for maintenance

This commit is contained in:
Frank Rotermund
2023-08-29 07:57:07 +02:00
parent cd562db3bc
commit 725eba300f
2 changed files with 12 additions and 12 deletions
@@ -42,25 +42,25 @@ fileprivate let maintenanceURL = "/_matrix/cmaintenance"
.compactMap { try? JSONDecoder().decode(ServerDowntime.self, from: $0) }
.filter {
// remove downtimes that are already done
guard let downtimeEndDate = $0.endTime.iso8601LocalDate else {
guard let downtimeEndDate = $0.endTime.iso8601Date else {
return false
}
return downtimeEndDate.timeIntervalSinceNow >= 0
}
.filter {
// remove downtimes where the warning time is still in the future
guard let warningStartDate = $0.warningStartTime.iso8601LocalDate else {
guard let warningStartDate = $0.warningStartTime.iso8601Date else {
return false
}
return warningStartDate.timeIntervalSinceNow <= 0
}
.filter {
// remove downtimes with invalid formed start or end times
return $0.startTime.iso8601LocalDate != nil && $0.endTime.iso8601LocalDate != nil
return $0.startTime.iso8601Date != nil && $0.endTime.iso8601Date != nil
}
.sorted {
// sort downtimes be startTime
guard let downtimeStartDate1 = $0.startTime.iso8601LocalDate, let downtimeStartDate2 = $1.startTime.iso8601LocalDate else {
guard let downtimeStartDate1 = $0.startTime.iso8601Date, let downtimeStartDate2 = $1.startTime.iso8601Date else {
return false
}
return downtimeStartDate1 < downtimeStartDate2
@@ -76,7 +76,7 @@ fileprivate let maintenanceURL = "/_matrix/cmaintenance"
return .none
}
if let startDate = downTime.startTime.iso8601LocalDate {
if let startDate = downTime.startTime.iso8601Date {
if startDate.timeIntervalSinceNow < 0 {
return .ongoing
}
@@ -213,7 +213,7 @@ extension ServerDowntimeDefaultService : ServerDowntimeService {
case .adhocMessage:
return downTime.description
case .maintenance:
guard let startDate = downTime.startTime.iso8601LocalDate, let endDate = downTime.endTime.iso8601LocalDate else {
guard let startDate = downTime.startTime.iso8601Date, let endDate = downTime.endTime.iso8601Date else {
return ""
}
@@ -262,7 +262,7 @@ extension ServerDowntimeDefaultService : ServerDowntimeService {
}
@objc func isDowntimeNow() -> Bool {
guard let downTime = self.nextDowntime(), let startDate = downTime.startTime.iso8601LocalDate, let endDate = downTime.endTime.iso8601LocalDate else {
guard let downTime = self.nextDowntime(), let startDate = downTime.startTime.iso8601Date, let endDate = downTime.endTime.iso8601Date else {
return false
}
return startDate <= Date() && Date() <= endDate
@@ -310,7 +310,7 @@ extension ServerDowntimeDefaultService : ServerDowntimeService {
}
@objc func isSameDay() -> Bool {
guard let downTime = self.nextDowntime(), let startDate = downTime.startTime.iso8601LocalDate, let endDate = downTime.endTime.iso8601LocalDate else {
guard let downTime = self.nextDowntime(), let startDate = downTime.startTime.iso8601Date, let endDate = downTime.endTime.iso8601Date else {
return false
}
+4 -4
View File
@@ -1,10 +1,10 @@
{
"downtime": [
{
"warning_start_time": "2023-04-01T00:00:00Z",
"start_time": "2023-07-17T22:30:00Z",
"end_time": "2023-08-21T14:41:00Z",
"type": "ADHOC_MESSAGE",
"warning_start_time": "2023-08-01T00:00:00+01:00",
"start_time": "2023-08-17T22:30:00+02:00",
"end_time": "2023-08-30T14:41:00+02:00",
"type": "MAINTENANCE",
"description": "Spezifischer Fehlertext.",
"blocking": true
}