forked from mironal/TwitterAPIKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTwitterAPIv2.swift
More file actions
47 lines (42 loc) · 1.51 KB
/
TwitterAPIv2.swift
File metadata and controls
47 lines (42 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import Foundation
// https://developer.twitter.com/en/docs/api-reference-index
open class TwitterAPIv2 {
public let blockAndMute: BlockAndMuteAPIv2
public let bookmarks: BookmarksAPIv2
public let compliance: ComplianceAPIv2
public let friendships: FriendshipsAPIv2
public let like: LikeAPIv2
public let list: ListAPIv2
public let retweet: RetweetAPIv2
public let search: SearchAPIv2
public let spaces: SpacesAPIv2
public let stream: StreamAPIv2
public let timeline: TimelineAPIv2
public let tweet: TweetAPIv2
public let tweetCount: TweetCountAPIv2
public let user: UserAPIv2
public init(session: TwitterAPISession) {
blockAndMute = .init(session: session)
bookmarks = .init(session: session)
compliance = .init(session: session)
friendships = .init(session: session)
like = .init(session: session)
list = .init(session: session)
retweet = .init(session: session)
search = .init(session: session)
spaces = .init(session: session)
stream = .init(session: session)
timeline = .init(session: session)
tweet = .init(session: session)
tweetCount = .init(session: session)
user = .init(session: session)
}
}
public protocol TwitterAPIv2RequestParameter {
var stringValue: String { get }
}
extension Collection where Element: TwitterAPIv2RequestParameter {
var commaSeparatedString: String {
return map { $0.stringValue }.sorted().joined(separator: ",")
}
}