Skip to content
This repository was archived by the owner on Jun 30, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import Foundation

open class GetTimelineRequestV1: TwitterAPIRequest {
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-home_timeline
open class GetStatusesHomeTimelineRequestV1: TwitterAPIRequest {

public let count: Int?
public let sinceID: String?
public let maxID: String?
public let sinceID: String?
public let trimUser: Bool?
public let excludeReplies: Bool?
public let includeEntities: Bool?
Expand All @@ -14,14 +15,14 @@ open class GetTimelineRequestV1: TwitterAPIRequest {
}

public var path: String {
fatalError("Not impl")
return "/1.1/statuses/home_timeline.json"
}

open var parameters: [String: Any] {
var p = [String: Any]()
count.map { p["count"] = $0 }
sinceID.map { p["since_id"] = $0 }
maxID.map { p["max_id"] = $0 }
sinceID.map { p["since_id"] = $0 }
trimUser.map { p["trim_user"] = $0 }
excludeReplies.map { p["exclude_replies"] = $0 }
includeEntities.map { p["include_entities"] = $0 }
Expand All @@ -30,29 +31,17 @@ open class GetTimelineRequestV1: TwitterAPIRequest {

public init(
count: Int? = .none,
sinceID: String? = .none,
maxID: String? = .none,
sinceID: String? = .none,
trimUser: Bool? = .none,
excludeReplies: Bool? = .none,
includeEntities: Bool? = .none
) {
self.count = count
self.sinceID = sinceID
self.maxID = maxID
self.sinceID = sinceID
self.trimUser = trimUser
self.excludeReplies = excludeReplies
self.includeEntities = includeEntities
}
}

public class GetHomeTimelineRequestV1: GetTimelineRequestV1 {
public override var path: String {
return "/1.1/statuses/home_timeline.json"
}
}

public class GetMentionsTimelineRequestV1: GetTimelineRequestV1 {
public override var path: String {
return "/1.1/statuses/mentions_timeline.json"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import Foundation

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-mentions_timeline
open class GetStatusesMentionsTimelineRequestV1: TwitterAPIRequest {

public let count: Int?
public let maxID: String?
public let sinceID: String?
public let trimUser: Bool?
public let includeEntities: Bool?

public var method: HTTPMethod {
return .get
}

public var path: String {
return "/1.1/statuses/mentions_timeline.json"
}

open var parameters: [String: Any] {
var p = [String: Any]()
count.map { p["count"] = $0 }
maxID.map { p["max_id"] = $0 }
sinceID.map { p["since_id"] = $0 }
trimUser.map { p["trim_user"] = $0 }
includeEntities.map { p["include_entities"] = $0 }
return p
}

public init(
count: Int? = .none,
maxID: String? = .none,
sinceID: String? = .none,
trimUser: Bool? = .none,
includeEntities: Bool? = .none
) {
self.count = count
self.maxID = maxID
self.sinceID = sinceID
self.trimUser = trimUser
self.includeEntities = includeEntities
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import Foundation

open class GetUserTimelineRequestV1: TwitterAPIRequest {
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-user_timeline
open class GetStatusesUserTimelineRequestV1: TwitterAPIRequest {

public let target: TwitterUserIdentifierV1
public let user: TwitterUserIdentifierV1
public let count: Int?
public let sinceID: String?
public let maxID: String?
public let sinceID: String?
public let trimUser: Bool?
public let excludeReplies: Bool?
public let includeRTs: Bool?
public let excludeReplies: Bool?

public var method: HTTPMethod {
return .get
Expand All @@ -20,31 +21,31 @@ open class GetUserTimelineRequestV1: TwitterAPIRequest {

open var parameters: [String: Any] {
var p = [String: Any]()
target.bind(param: &p)
user.bind(param: &p)
count.map { p["count"] = $0 }
sinceID.map { p["since_id"] = $0 }
maxID.map { p["max_id"] = $0 }
sinceID.map { p["since_id"] = $0 }
trimUser.map { p["trim_user"] = $0 }
excludeReplies.map { p["exclude_replies"] = $0 }
includeRTs.map { p["include_rts"] = $0 }
excludeReplies.map { p["exclude_replies"] = $0 }
return p
}

public init(
target: TwitterUserIdentifierV1,
user: TwitterUserIdentifierV1,
count: Int? = .none,
sinceID: String? = .none,
maxID: String? = .none,
sinceID: String? = .none,
trimUser: Bool? = .none,
excludeReplies: Bool? = .none,
includeRTs: Bool? = .none
includeRTs: Bool? = .none,
excludeReplies: Bool? = .none
) {
self.target = target
self.user = user
self.count = count
self.sinceID = sinceID
self.maxID = maxID
self.sinceID = sinceID
self.trimUser = trimUser
self.excludeReplies = excludeReplies
self.includeRTs = includeRTs
self.excludeReplies = excludeReplies
}
}
12 changes: 6 additions & 6 deletions Sources/TwitterAPIKit/APIv1/Timelines/TimelineAPIv1.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,43 +6,43 @@ public protocol TimelineAPIv1 {
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-home_timeline
@discardableResult
func getHomeTimeline(
_ request: GetHomeTimelineRequestV1,
_ request: GetStatusesHomeTimelineRequestV1,
completionHandler: @escaping (Result<TwitterAPISuccessReponse, TwitterAPIKitError>) -> Void
) -> TwitterAPISessionTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-mentions_timeline
@discardableResult
func getMentionsTimeline(
_ request: GetMentionsTimelineRequestV1,
_ request: GetStatusesMentionsTimelineRequestV1,
completionHandler: @escaping (Result<TwitterAPISuccessReponse, TwitterAPIKitError>) -> Void
) -> TwitterAPISessionTask

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-user_timeline
@discardableResult
func getUserTimeline(
_ request: GetUserTimelineRequestV1,
_ request: GetStatusesUserTimelineRequestV1,
completionHandler: @escaping (Result<TwitterAPISuccessReponse, TwitterAPIKitError>) -> Void
) -> TwitterAPISessionTask

}

extension TwitterAPIKit: TimelineAPIv1 {
public func getHomeTimeline(
_ request: GetHomeTimelineRequestV1,
_ request: GetStatusesHomeTimelineRequestV1,
completionHandler: @escaping (Result<TwitterAPISuccessReponse, TwitterAPIKitError>) -> Void
) -> TwitterAPISessionTask {
return session.send(request, completionHandler: completionHandler)
}

public func getMentionsTimeline(
_ request: GetMentionsTimelineRequestV1,
_ request: GetStatusesMentionsTimelineRequestV1,
completionHandler: @escaping (Result<TwitterAPISuccessReponse, TwitterAPIKitError>) -> Void
) -> TwitterAPISessionTask {
return session.send(request, completionHandler: completionHandler)
}

public func getUserTimeline(
_ request: GetUserTimelineRequestV1,
_ request: GetStatusesUserTimelineRequestV1,
completionHandler: @escaping (Result<TwitterAPISuccessReponse, TwitterAPIKitError>) -> Void
) -> TwitterAPISessionTask {
return session.send(request, completionHandler: completionHandler)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import Foundation

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-statuses-lookup
open class GetLookupStatusesRequestV1: TwitterAPIRequest {
open class GetStatusesLookupRequestV1: TwitterAPIRequest {

public let id: [String]
public let includeEntities: Bool?
public let trimUser: Bool?
public let ids: [String]
public let map: Bool?
public let includeExtAltText: Bool?
public let trimUser: Bool?
public let includeCardUri: Bool?
public let includeEntities: Bool?
public let includeExtAltText: Bool?

public var method: HTTPMethod {
return .get
Expand All @@ -20,31 +20,28 @@ open class GetLookupStatusesRequestV1: TwitterAPIRequest {

open var parameters: [String: Any] {
var p = [String: Any]()

p["id"] = id.joined(separator: ",")
includeEntities.map { p["include_entities"] = $0 }
trimUser.map { p["trim_user"] = $0 }
p["id"] = ids.joined(separator: ",")
map.map { p["map"] = $0 }
includeExtAltText.map { p["include_ext_alt_text"] = $0 }
trimUser.map { p["trim_user"] = $0 }
includeCardUri.map { p["include_card_uri"] = $0 }

includeEntities.map { p["include_entities"] = $0 }
includeExtAltText.map { p["include_ext_alt_text"] = $0 }
return p
}

public init(
id: [String],
includeEntities: Bool? = .none,
trimUser: Bool? = .none,
ids: [String],
map: Bool? = .none,
includeExtAltText: Bool? = .none,
includeCardUri: Bool? = .none
trimUser: Bool? = .none,
includeCardUri: Bool? = .none,
includeEntities: Bool? = .none,
includeExtAltText: Bool? = .none
) {
self.id = id
self.includeEntities = includeEntities
self.trimUser = trimUser
self.ids = ids
self.map = map
self.includeExtAltText = includeEntities
self.trimUser = trimUser
self.includeCardUri = includeCardUri
self.includeEntities = includeEntities
self.includeExtAltText = includeExtAltText
}

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-statuses-show-id

import Foundation

open class GetShowStatusRequestV1: TwitterAPIRequest {
/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/get-statuses-show-id
open class GetStatusesShowRequestV1: TwitterAPIRequest {

public let id: String
public let trimUser: Bool?
public let includeMyRetweet: Bool?
public let includeCardUri: Bool?
public let includeEntities: Bool?
public let includeMyRetweet: Bool?
public let includeExtAltText: Bool?
public let includeCardUri: Bool?

public var method: HTTPMethod {
return .get
Expand All @@ -21,30 +20,29 @@ open class GetShowStatusRequestV1: TwitterAPIRequest {

open var parameters: [String: Any] {
var p = [String: Any]()

p["id"] = id
trimUser.map { p["trim_user"] = $0 }
includeMyRetweet.map { p["include_my_retweet"] = $0 }
includeCardUri.map { p["include_card_uri"] = $0 }
includeEntities.map { p["include_entities"] = $0 }
includeMyRetweet.map { p["include_my_retweet"] = $0 }
includeExtAltText.map { p["include_ext_alt_text"] = $0 }
includeCardUri.map { p["include_card_uri"] = $0 }

return p
}

public init(
id: String,
trimUser: Bool? = .none,
includeMyRetweet: Bool? = .none,
includeCardUri: Bool? = .none,
includeEntities: Bool? = .none,
includeExtAltText: Bool? = .none,
includeCardUri: Bool? = .none
includeMyRetweet: Bool? = .none,
includeExtAltText: Bool? = .none
) {
self.id = id
self.trimUser = trimUser
self.includeMyRetweet = includeMyRetweet
self.includeCardUri = includeCardUri
self.includeEntities = includeEntities
self.includeMyRetweet = includeMyRetweet
self.includeExtAltText = includeExtAltText
self.includeCardUri = includeCardUri
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Foundation

/// https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-destroy-id
open class PostDestroyStatusRequestV1: TwitterAPIRequest {
open class PostStatusesDestroyRequestV1: TwitterAPIRequest {

public let id: String
public let trimUser: Bool?
Expand All @@ -13,16 +13,17 @@ open class PostDestroyStatusRequestV1: TwitterAPIRequest {
public var path: String {
return "/1.1/statuses/destroy/\(id).json"
}

open var parameters: [String: Any] {
var p = [String: Any]()
trimUser.map { p["trim_user"] = $0 }
return p
}

public init(id: String, trimUser: Bool? = .none) {
public init(
id: String,
trimUser: Bool? = .none
) {
self.id = id
self.trimUser = trimUser
}

}
Loading