mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-14 11:49:59 +02:00
MESSENGER-5071 use ios8601 for maintenance
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user