Skip to content
This repository has been archived by the owner on Feb 5, 2025. It is now read-only.

Commit

Permalink
tests, webmock, pin-patch, interests follow/unfollow
Browse files Browse the repository at this point in the history
  • Loading branch information
shmargum committed May 23, 2017
1 parent b47641f commit 58af5d4
Showing 13 changed files with 197 additions and 70 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -51,9 +51,11 @@ client.follow_board(<board_id>)
client.unfollow_board(<board_id>)

# Follow an interest
> This endpoint is no longer part of the Pinterest documentation, and has always returned an error
client.follow_interest(<interest_id>)

# Unfollow an interest
> This endpoint is no longer part of the Pinterest documentation, and has always returned an error
client.unfollow_interest(<interest_id>)

# Get all of authenticated users's pins
4 changes: 4 additions & 0 deletions lib/pinterest/client.rb
Original file line number Diff line number Diff line change
@@ -52,6 +52,10 @@ def request(method, path, options)
when :get
path = path + "?access_token=" + @access_token
request.url(URI.encode(path), options)
when :patch
request.path = path + "?access_token=" + @access_token
request.body = options unless options.empty?
request.headers['Authorization'] = "BEARER #{@access_token}"
when :post, :put, :delete
request.path = URI.encode(path)
request.body = options unless options.empty?
4 changes: 2 additions & 2 deletions lib/pinterest/client/pin.rb
Original file line number Diff line number Diff line change
@@ -14,8 +14,8 @@ def create_pin(params={})
post('pins', params)
end

def update_pin(params={})
patch('pins', params)
def update_pin(id, params={})
patch("pins/#{id}", params)
end

def delete_pin(id)
2 changes: 1 addition & 1 deletion lib/pinterest/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Pinterest
VERSION = "0.2.2"
VERSION = "0.3.0"
end
2 changes: 1 addition & 1 deletion pinterest.gemspec
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "rspec", "~> 3.3"
spec.add_development_dependency "vcr", "~> 2.9"
spec.add_development_dependency "dotenv", "~> 2.0"
spec.add_development_dependency "webmock", "~> 1.0"
spec.add_development_dependency "webmock", "~> 3.0.1"

spec.add_dependency 'faraday', "~> 0.9"
spec.add_dependency 'faraday_middleware', "~> 0.9"
14 changes: 7 additions & 7 deletions spec/client/pin_spec.rb
Original file line number Diff line number Diff line change
@@ -56,22 +56,22 @@
context "have the parameters for a pin" do
it "should update a pin" do
VCR.use_cassette("v1_update_pin") do
response = @client.update_pin({
id: '154177987221106968',
response = @client.update_pin('333547916137432730', {
pin: '333547916137432730',
note: "Test from Ruby gem at #{Time.now.to_s}"
})
expect(response.data.id).to be
expect(response.data.id).to eq('333547916137432730')
end
end
end
context "missing image for a pin" do
it "should response with an error message" do
VCR.use_cassette("v1_not_update_pin") do
response = @client.update_pin({
id: '123',
response = @client.update_pin('123', {
pin: '123',
note: "Test from Ruby gem at #{Time.now.to_s}"
})
expect(response.message).to be
expect(response.message).to eq('Pin not found.')
end
end
end
@@ -101,7 +101,7 @@
it "should get the board's pins" do
VCR.use_cassette("v1_boards_pins") do
response = @client.get_board_pins('154178055932402553')
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
20 changes: 10 additions & 10 deletions spec/client/user_spec.rb
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@
it "should get the user's likes" do
VCR.use_cassette("v1_me_likes") do
response = @client.get_likes
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
expect(response.data.first.keys).to match_array(['id', 'link', 'note', 'url'])
end
end
@@ -54,7 +54,7 @@
it "should search the user's pins" do
VCR.use_cassette("v1_me_get_pins") do
response = @client.get_pins(query: 'shopseen')
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
@@ -63,7 +63,7 @@
it "should search the user's boards" do
VCR.use_cassette("v1_me_get_boards") do
response = @client.get_boards(query: 'randumb')
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
@@ -72,7 +72,7 @@
it "should get the user's followers" do
VCR.use_cassette("v1_me_followers") do
response = @client.get_followers
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
@@ -81,7 +81,7 @@
it "should get boards the user is following" do
VCR.use_cassette("v1_me_following_boards") do
response = @client.get_followed_boards
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
@@ -90,7 +90,7 @@
it "should get users the user is following" do
VCR.use_cassette("v1_me_following_users") do
response = @client.get_followed_users
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
@@ -99,7 +99,7 @@
it "should get interests the user is following" do
VCR.use_cassette("v1_me_following_interests") do
response = @client.get_followed_interests
expect(response.data.class).to eq(Array)
expect(response.data.class).to eq(Hashie::Array)
end
end
end
@@ -186,9 +186,9 @@

describe 'POST /v1/me/following/interests' do
context "another interest exists" do
it "should follow the interest" do
it "should follow the interest", skip: "Follow interests API is not supported" do
VCR.use_cassette("v1_me_follow_existing_interest") do
response = @client.follow_interest('901179409185')
response = @client.follow_interest('937523231401')
expect(response).to have_key(:data)
expect(response.data).to be_falsey
end
@@ -206,7 +206,7 @@

describe 'DELETE /v1/me/following/interests/<interest_id>/' do
context "another interest exists" do
it "should unfollow the interest" do
it "should unfollow the interest", skip: "Unfollow interests API is not supported" do
VCR.use_cassette("v1_me_unfollow_existing_interest") do
response = @client.unfollow_interest('901179409185')
p response.inspect
52 changes: 52 additions & 0 deletions spec/fixtures/cassettes/v1_me_get_boards.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 52 additions & 0 deletions spec/fixtures/cassettes/v1_me_get_pins.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 25 additions & 23 deletions spec/fixtures/cassettes/v1_not_update_pin.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 58af5d4

Please sign in to comment.