Files
javier 1488aa151e Tests updates and other fixes (#27)
This PR contains the work done to update the live test data to its latest version. Plus other improvements have been made:

* conformed the `AmiiboServiceError` error to the `LocalizableError` protocol,
* improved the `ISODateTimeTranscoder` transcoder to handle the decoding of both ISO dates and timestamps,
* removed a force-unwrapped from the `AmiiboLiveClient` type.

Reviewed-on: #27
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2026-03-27 17:14:26 +00:00

47 lines
1.5 KiB
Swift

// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import Foundation
extension DateFormatter {
// MARK: Properties
/// An ISO date formatter.
///
/// This formatter implements the `yyyy-MM-dd` date format.
static let isoDate: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
formatter.timeZone = .init(secondsFromGMT: 0)
return formatter
}()
/// An ISO timestamp formatter.
///
/// This formatter implements the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format.
/// Within the context of this library, this formatter is solely used to decode a date formatted as a timestamp that is returned by the ``AmiiboService/getLastUpdated()`` function.
static let isoTimestamp: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
formatter.timeZone = .init(secondsFromGMT: 0)
return formatter
}()
}