IceCubesApp/Packages/Network/Sources/Network/Endpoint/Timelines.swift
Thomas Ricouard 7f6419ebae Swiftformat
2023-01-17 11:36:01 +01:00

37 lines
1.3 KiB
Swift

import Foundation
public enum Timelines: Endpoint {
case pub(sinceId: String?, maxId: String?, minId: String?, local: Bool)
case home(sinceId: String?, maxId: String?, minId: String?)
case list(listId: String, sinceId: String?, maxId: String?, minId: String?)
case hashtag(tag: String, maxId: String?)
public func path() -> String {
switch self {
case .pub:
return "timelines/public"
case .home:
return "timelines/home"
case let .list(listId, _, _, _):
return "timelines/list/\(listId)"
case let .hashtag(tag, _):
return "timelines/tag/\(tag)"
}
}
public func queryItems() -> [URLQueryItem]? {
switch self {
case let .pub(sinceId, maxId, minId, local):
var params = makePaginationParam(sinceId: sinceId, maxId: maxId, mindId: minId) ?? []
params.append(.init(name: "local", value: local ? "true" : "false"))
return params
case let .home(sinceId, maxId, mindId):
return makePaginationParam(sinceId: sinceId, maxId: maxId, mindId: mindId)
case let .list(_, sinceId, maxId, mindId):
return makePaginationParam(sinceId: sinceId, maxId: maxId, mindId: mindId)
case let .hashtag(_, maxId):
return makePaginationParam(sinceId: nil, maxId: maxId, mindId: nil)
}
}
}