2020-08-14 03:40:46 +00:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
|
|
|
|
import Foundation
|
2020-08-31 01:40:58 +00:00
|
|
|
import HTTP
|
2020-09-04 01:55:46 +00:00
|
|
|
import Mastodon
|
2020-08-14 03:40:46 +00:00
|
|
|
|
2020-12-03 05:18:47 +00:00
|
|
|
public enum EmptyEndpoint {
|
2020-10-05 22:50:05 +00:00
|
|
|
case oauthRevoke(token: String, clientId: String, clientSecret: String)
|
2020-12-03 05:18:47 +00:00
|
|
|
case deleteList(id: List.Id)
|
|
|
|
case deleteFilter(id: Filter.Id)
|
2020-08-14 03:40:46 +00:00
|
|
|
}
|
|
|
|
|
2020-12-03 05:18:47 +00:00
|
|
|
extension EmptyEndpoint: Endpoint {
|
2020-08-30 23:33:11 +00:00
|
|
|
public typealias ResultType = [String: String]
|
2020-08-14 03:40:46 +00:00
|
|
|
|
2020-08-30 23:33:11 +00:00
|
|
|
public var context: [String] {
|
2020-08-14 03:40:46 +00:00
|
|
|
switch self {
|
|
|
|
case .oauthRevoke:
|
2020-08-29 03:50:58 +00:00
|
|
|
return ["oauth"]
|
2020-12-03 05:18:47 +00:00
|
|
|
case .deleteList:
|
2020-08-29 03:50:58 +00:00
|
|
|
return defaultContext + ["lists"]
|
2020-12-03 05:18:47 +00:00
|
|
|
case .deleteFilter:
|
2020-08-29 10:26:26 +00:00
|
|
|
return defaultContext + ["filters"]
|
2020-08-14 03:40:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-08-30 23:33:11 +00:00
|
|
|
public var pathComponentsInContext: [String] {
|
2020-08-14 03:40:46 +00:00
|
|
|
switch self {
|
|
|
|
case .oauthRevoke:
|
2020-08-29 03:50:58 +00:00
|
|
|
return ["revoke"]
|
2020-12-03 05:18:47 +00:00
|
|
|
case let .deleteList(id), let .deleteFilter(id):
|
2020-08-29 03:50:58 +00:00
|
|
|
return [id]
|
2020-08-14 03:40:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-08-30 23:33:11 +00:00
|
|
|
public var method: HTTPMethod {
|
2020-08-14 03:40:46 +00:00
|
|
|
switch self {
|
|
|
|
case .oauthRevoke:
|
|
|
|
return .post
|
2020-12-03 05:18:47 +00:00
|
|
|
case .deleteList, .deleteFilter:
|
2020-08-29 03:50:58 +00:00
|
|
|
return .delete
|
2020-08-14 03:40:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-09-23 07:04:37 +00:00
|
|
|
public var jsonBody: [String: Any]? {
|
2020-08-14 03:40:46 +00:00
|
|
|
switch self {
|
2020-10-05 22:50:05 +00:00
|
|
|
case let .oauthRevoke(token, clientId, clientSecret):
|
|
|
|
return ["token": token, "client_id": clientId, "client_secret": clientSecret]
|
2020-12-03 05:18:47 +00:00
|
|
|
case .deleteList, .deleteFilter:
|
2020-08-29 03:50:58 +00:00
|
|
|
return nil
|
2020-08-14 03:40:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|