mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-06-10 09:19:22 +00:00
42 lines
1.6 KiB
Swift
42 lines
1.6 KiB
Swift
import Foundation
|
|
|
|
public enum Push: Endpoint {
|
|
case subscription
|
|
case createSub(endpoint: String,
|
|
p256dh: Data,
|
|
auth: Data,
|
|
mentions: Bool,
|
|
status: Bool,
|
|
reblog: Bool,
|
|
follow: Bool,
|
|
favourite: Bool,
|
|
poll: Bool)
|
|
|
|
public func path() -> String {
|
|
switch self {
|
|
case .subscription, .createSub:
|
|
return "push/subscription"
|
|
}
|
|
}
|
|
|
|
public func queryItems() -> [URLQueryItem]? {
|
|
switch self {
|
|
case let .createSub(endpoint, p256dh, auth, mentions, status, reblog, follow, favourite, poll):
|
|
var params: [URLQueryItem] = []
|
|
params.append(.init(name: "subscription[endpoint]", value: endpoint))
|
|
params.append(.init(name: "subscription[keys][p256dh]", value: p256dh.base64UrlEncodedString()))
|
|
params.append(.init(name: "subscription[keys][auth]", value: auth.base64UrlEncodedString()))
|
|
params.append(.init(name: "data[alerts][mention]", value: mentions ? "true" : "false"))
|
|
params.append(.init(name: "data[alerts][status]", value: status ? "true" : "false"))
|
|
params.append(.init(name: "data[alerts][follow]", value: follow ? "true" : "false"))
|
|
params.append(.init(name: "data[alerts][reblog]", value: reblog ? "true" : "false"))
|
|
params.append(.init(name: "data[alerts][favourite]", value: favourite ? "true" : "false"))
|
|
params.append(.init(name: "data[alerts][poll]", value: poll ? "true" : "false"))
|
|
params.append(.init(name: "policy", value: "all"))
|
|
return params
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
}
|