2020-07-30 01:50:30 +02:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
2020-08-31 01:33:11 +02:00
|
|
|
public enum AppAuthorizationEndpoint {
|
2020-07-30 01:50:30 +02:00
|
|
|
case apps(clientName: String, redirectURI: String, scopes: String, website: URL?)
|
|
|
|
}
|
|
|
|
|
|
|
|
extension AppAuthorizationEndpoint: MastodonEndpoint {
|
2020-08-31 01:33:11 +02:00
|
|
|
public typealias ResultType = AppAuthorization
|
2020-07-30 01:50:30 +02:00
|
|
|
|
2020-08-31 01:33:11 +02:00
|
|
|
public var pathComponentsInContext: [String] {
|
2020-07-30 01:50:30 +02:00
|
|
|
switch self {
|
|
|
|
case .apps: return ["apps"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-08-31 01:33:11 +02:00
|
|
|
public var method: HTTPMethod {
|
2020-07-30 01:50:30 +02:00
|
|
|
switch self {
|
|
|
|
case .apps: return .post
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-08-31 01:33:11 +02:00
|
|
|
public var parameters: [String: Any]? {
|
2020-07-30 01:50:30 +02:00
|
|
|
switch self {
|
|
|
|
case let .apps(clientName, redirectURI, scopes, website):
|
|
|
|
var params = [
|
|
|
|
"client_name": clientName,
|
|
|
|
"redirect_uris": redirectURI,
|
|
|
|
"scopes": scopes
|
|
|
|
]
|
|
|
|
|
|
|
|
params["website"] = website?.absoluteString
|
|
|
|
|
|
|
|
return params
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|