Skip to content

Commit

Permalink
Updated #155 for Swift 3 + Merge into postMedia as nullable parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
meteochu committed Aug 26, 2016
1 parent ce57d22 commit 85a9f62
Showing 1 changed file with 2 additions and 27 deletions.
29 changes: 2 additions & 27 deletions Swifter/SwifterTweets.swift
Original file line number Diff line number Diff line change
Expand Up @@ -169,40 +169,15 @@ public extension Swifter {
- https://dev.twitter.com/rest/public/uploading-media
- https://dev.twitter.com/rest/reference/post/media/upload
*/
public func postMedia(_ media: Data, success: SuccessHandler? = nil, failure: FailureHandler? = nil) {
public func postMedia(_ media: Data, additionalOwners: UsersTag? = nil, success: SuccessHandler? = nil, failure: FailureHandler? = nil) {
let path: String = "media/upload.json"
var parameters = Dictionary<String, Any>()
parameters["media"] = media
parameters["additional_owers"] ??= additionalOwners?.value
parameters[Swifter.DataParameters.dataKey] = "media"

self.postJSON(path: path, baseURL: .upload, parameters: parameters, success: { json, _ in success?(json) }, failure: failure)
}

/**
POST media/upload
Upload media (images) to Twitter for use in a Tweet or Twitter-hosted Card. For uploading videos or for chunked image uploads (useful for lower bandwidth connections), see our chunked POST media/upload endpoint.
The parameter "additionalOwners" is corresponding to the optional parameter "addtional_owners" in the twitter's document, which is a comma-separated list of user IDs to set as additional owners allowed to use the returned media_id in Tweets or Cards. Up to 100 additional owners may be specified.
See:
- https://dev.twitter.com/rest/reference/post/media/upload-init
*/

public func postMedia(media: NSData, additionalOwners: [String], success: ((status: Dictionary<String, JSONValue>?) -> Void)? = nil, failure: FailureHandler? = nil) {
guard !additionalOwners.isEmpty else { return }

let path: String = "media/upload.json"
var parameters = Dictionary<String, Any>()
parameters["media"] = media
parameters["additional_owners"] = additionalOwners.joinWithSeparator(",")
print(parameters["additional_owners"])
parameters[Swifter.DataParameters.dataKey] = "media"

self.postJSONWithPath(path, baseURL: self.uploadURL, parameters: parameters, success: { json, _ in
success?(status: json.object)
}, failure: failure)
}

/**
POST statuses/retweet/:id
Expand Down

0 comments on commit 85a9f62

Please sign in to comment.