From c19ef95d8363afef63a82a000502e8de47762571 Mon Sep 17 00:00:00 2001 From: "J.M" Date: Wed, 31 Aug 2016 20:31:44 +0200 Subject: [PATCH] Support POST media/upload with media_data base64 See #124. --- CHANGELOG | 1 + codebird.es7.js | 2 ++ codebird.js | 3 ++- test/media_tests.js | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 test/media_tests.js diff --git a/CHANGELOG b/CHANGELOG index c4943b9..bb44d83 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,7 @@ codebird-js - changelog + #25 Add unit testing suite + Add POST statuses/unretweet/:id + #116 Update GET statuses/oembed with new endpoint ++ Support POST media/upload with media_data base64 2.6.0 (2015-04-08) + Allow to get the supported API methods as array diff --git a/codebird.es7.js b/codebird.es7.js index 480a668..59f4a37 100644 --- a/codebird.es7.js +++ b/codebird.es7.js @@ -1096,6 +1096,7 @@ // only check specific parameters const possible_methods = [ // Tweets + "media/upload", "statuses/update_with_media", // Accounts "account/update_profile_background_image", @@ -1104,6 +1105,7 @@ ]; let possible_files = { // Tweets + "media/upload": "media", "statuses/update_with_media": "media[]", // Accounts "account/update_profile_background_image": "image", diff --git a/codebird.js b/codebird.js index bc8fd01..60d745d 100644 --- a/codebird.js +++ b/codebird.js @@ -1075,11 +1075,12 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons // only check specific parameters var possible_methods = [ // Tweets - "statuses/update_with_media", + "media/upload", "statuses/update_with_media", // Accounts "account/update_profile_background_image", "account/update_profile_image", "account/update_profile_banner"]; var possible_files = { // Tweets + "media/upload": "media", "statuses/update_with_media": "media[]", // Accounts "account/update_profile_background_image": "image", diff --git a/test/media_tests.js b/test/media_tests.js new file mode 100644 index 0000000..97781c0 --- /dev/null +++ b/test/media_tests.js @@ -0,0 +1,37 @@ +const tape = require("tape"), + _test = require("tape-promise"), + test = _test(tape), // decorate tape + CodebirdT = require("./codebirdt"); + +function getCB() { + var cb = new CodebirdT.default; + cb.setConsumerKey("123", "456"); + + return cb; +} + +test("Tests media/upload base64", function (t) { + const cb = getCB(); + t.plan(1); + + cb.setToken("123", "456"); + return cb.__call( + "media_upload", + {"media_data": "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"} + ).then(function (reply, rate, err) { + t.deepEqual( + reply, + { + rate: { + limit: null, remaining: null, reset: null + }, + reply: { + errors: [ + { code: 89, message: "Invalid or expired token." } + ], + httpstatus: 200 + } + } + ) + }); +});