Merge branch 'develop' into release/1.3.0

This commit is contained in:
CMK 2022-03-19 02:52:28 +08:00
commit 2083ef019e
2 changed files with 31 additions and 1 deletions

View File

@ -37,7 +37,18 @@ extension Mastodon.API.Instance {
)
return session.dataTaskPublisher(for: request)
.tryMap { data, response in
let value = try Mastodon.API.decode(type: Mastodon.Entity.Instance.self, from: data, response: response)
let value: Mastodon.Entity.Instance
do {
value = try Mastodon.API.decode(type: Mastodon.Entity.Instance.self, from: data, response: response)
} catch {
if let response = response as? HTTPURLResponse, 400 ..< 500 ~= response.statusCode {
// For example, AUTHORIZED_FETCH may result in authentication errors
value = Mastodon.Entity.Instance(domain: domain)
} else {
throw error
}
}
return Mastodon.Response.Content(value: value, response: response)
}
.eraseToAnyPublisher()

View File

@ -38,6 +38,25 @@ extension Mastodon.Entity {
// https://github.com/mastodon/mastodon/pull/16485
public let configuration: Configuration?
public init(domain: String) {
self.uri = domain
self.title = domain
self.description = ""
self.shortDescription = nil
self.email = ""
self.version = nil
self.languages = nil
self.registrations = nil
self.approvalRequired = nil
self.invitesEnabled = nil
self.urls = nil
self.statistics = nil
self.thumbnail = nil
self.contactAccount = nil
self.rules = nil
self.configuration = nil
}
enum CodingKeys: String, CodingKey {
case uri
case title