metatext-app-ios-iphone-ipad/MastodonAPI/Sources/MastodonAPI/Endpoints/AppAuthorizationEndpoint.swift

41 lines
960 B
Swift
Raw Normal View History

// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
2020-08-31 03:40:58 +02:00
import HTTP
import Mastodon
2020-08-31 01:33:11 +02:00
public enum AppAuthorizationEndpoint {
case apps(clientName: String, redirectURI: String, scopes: String, website: URL?)
}
2020-08-31 01:59:49 +02:00
extension AppAuthorizationEndpoint: Endpoint {
2020-08-31 01:33:11 +02:00
public typealias ResultType = AppAuthorization
2020-08-31 01:33:11 +02:00
public var pathComponentsInContext: [String] {
switch self {
case .apps: return ["apps"]
}
}
2020-08-31 01:33:11 +02:00
public var method: HTTPMethod {
switch self {
case .apps: return .post
}
}
2020-08-31 01:33:11 +02:00
public var parameters: [String: Any]? {
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
}
}
}