Skip to content
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
17 changes: 9 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,22 @@ on: [push]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['3.4', '4.0']
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- run: bundle install
- run: bundle exec rspec
rubocop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
ruby-version: '4.0'
bundler-cache: true
- run: bundle install
- run: bundle exec rubocop
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.7.4
4.0.7
18 changes: 3 additions & 15 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
source 'https://rubygems.org'
# frozen_string_literal: true

gem 'vertebrae', '> 0.5'
source 'https://rubygems.org'

# Add dependencies to develop your gem here.
# Include everything needed to run rake, tests, features, etc.
group :development do
gem 'pry', '~> 0.10'
gem 'pry-byebug', '~> 3.4'
gem 'webmock', '~> 3.0', '>= 3.0.1'
gem 'rspec', '~> 3.6'
gem 'rdoc', ">= 6.3.1"
gem 'bundler'
gem 'juwelier'
gem 'simplecov', ">= 0"
gem 'rubocop'
end
gemspec
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![CI Status](https://github.com/controlshift/identity-api-client/actions/workflows/ci.yml/badge.svg)](https://github.com/controlshift/identity-api-client/actions/workflows/ci.yml)

API Client for 38 Degree's Identity API
API client for the [Identity](https://github.com/controlshift/identity-api-client) service

## Install

Expand Down
15 changes: 0 additions & 15 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,6 @@ rescue Bundler::BundlerError => e
end
require 'rake'

require 'juwelier'
Juwelier::Tasks.new do |gem|
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
gem.name = "identity-api-client"
gem.homepage = "http://github.com/controlshift/identity-api-client"
gem.license = "MIT"
gem.summary = %Q{API Client for 38 Degree's Identity API}
gem.description = %Q{Provides a simple ruby binding to 38dgs identity API}
gem.email = 'nathan@controlshiftlabs.com'
gem.authors = ['Nathan Woodhull']

# dependencies defined in Gemfile
end
Juwelier::RubygemsDotOrgTasks.new

require 'rspec/core'
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec) do |spec|
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.4
1.0.0
95 changes: 24 additions & 71 deletions identity-api-client.gemspec
Original file line number Diff line number Diff line change
@@ -1,77 +1,30 @@
# Generated by juwelier
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
# -*- encoding: utf-8 -*-
# stub: identity-api-client 0.1.4 ruby lib
# frozen_string_literal: true

Gem::Specification.new do |s|
s.name = "identity-api-client".freeze
s.version = "0.1.4"
version = File.read(File.join(__dir__, 'VERSION')).strip

s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Nathan Woodhull".freeze]
s.date = "2021-12-14"
s.description = "Provides a simple ruby binding to 38dgs identity API".freeze
s.email = "nathan@controlshiftlabs.com".freeze
s.extra_rdoc_files = [
"LICENSE",
"README.md"
]
s.files = [
".document",
".github/workflows/ci.yml",
".rspec",
".rubocop.yml",
".ruby-gemset",
".ruby-version",
"Gemfile",
"LICENSE",
"README.md",
"Rakefile",
"VERSION",
"identity-api-client.gemspec",
"lib/identity-api-client.rb",
"lib/identity-api-client/base.rb",
"lib/identity-api-client/client.rb",
"lib/identity-api-client/member.rb",
"spec/client_spec.rb",
"spec/fixtures/details.json",
"spec/fixtures/details_with_consents.json",
"spec/member_spec.rb",
"spec/spec_helper.rb"
]
s.homepage = "http://github.com/controlshift/identity-api-client".freeze
s.licenses = ["MIT".freeze]
s.rubygems_version = "3.1.6".freeze
s.summary = "API Client for 38 Degree's Identity API".freeze
Gem::Specification.new do |s|
s.name = 'identity-api-client'
s.version = version
s.authors = ['Nathan Woodhull', 'Owens Ehimen', 'Diego Marcet', 'Grey Moore']
s.email = ['talk@controlshiftlabs.com']
s.homepage = 'https://github.com/controlshift/identity-api-client'
s.license = 'MIT'
s.summary = 'API client for the Identity service'
s.description = 'Ruby client for the Identity member API'
s.required_ruby_version = '>= 3.4.0'

if s.respond_to? :specification_version then
s.specification_version = 4
s.files = Dir.chdir(__dir__) do
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(pkg|spec)/}) }
end
s.require_paths = ['lib']

if s.respond_to? :add_runtime_dependency then
s.add_runtime_dependency(%q<vertebrae>.freeze, ["> 0.5"])
s.add_development_dependency(%q<pry>.freeze, ["~> 0.10"])
s.add_development_dependency(%q<pry-byebug>.freeze, ["~> 3.4"])
s.add_development_dependency(%q<webmock>.freeze, ["~> 3.0", ">= 3.0.1"])
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.6"])
s.add_development_dependency(%q<rdoc>.freeze, [">= 6.3.1"])
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
else
s.add_dependency(%q<vertebrae>.freeze, ["> 0.5"])
s.add_dependency(%q<pry>.freeze, ["~> 0.10"])
s.add_dependency(%q<pry-byebug>.freeze, ["~> 3.4"])
s.add_dependency(%q<webmock>.freeze, ["~> 3.0", ">= 3.0.1"])
s.add_dependency(%q<rspec>.freeze, ["~> 3.6"])
s.add_dependency(%q<rdoc>.freeze, [">= 6.3.1"])
s.add_dependency(%q<bundler>.freeze, [">= 0"])
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
s.add_dependency(%q<rubocop>.freeze, [">= 0"])
end
end
s.add_runtime_dependency 'vertebrae', '~> 2.0'

s.add_development_dependency 'pry', '~> 0.10'
s.add_development_dependency 'pry-byebug', '~> 3.4'
s.add_development_dependency 'rdoc', '>= 6.3.1'
s.add_development_dependency 'rspec', '~> 3.6'
s.add_development_dependency 'rubocop', '>= 0'
s.add_development_dependency 'simplecov', '>= 0'
s.add_development_dependency 'webmock', '~> 3.0', '>= 3.0.1'
end
2 changes: 2 additions & 0 deletions lib/identity-api-client/member.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ def details(guid: nil, email: nil, load_current_consents: false)

resp = client.post_request('/api/member/details', params)
resp.body
rescue Faraday::ResourceNotFound
nil
end
end
end
16 changes: 13 additions & 3 deletions spec/member_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@
expect { subject.member.details() }.to raise_error "Must have one of guid or email"
end
end

context 'when Identity responds with 404' do
before(:each) do
stub_post(request_path).to_return(status: 404, body: '404 page not found')
end

it 'returns nil instead of raising' do
expect(subject.member.details(guid: 'abcdef1234567890')).to be_nil
end
end
end

describe 'success' do
Expand All @@ -22,7 +32,7 @@
end

context 'without load_current_consents' do
let(:expected_request) { {'guid' => 'abcdef1234567890', 'api_token' => '1234567890abcdef'}.to_json }
let(:expected_request) { { 'guid' => 'abcdef1234567890', 'api_token' => '1234567890abcdef' }.to_json }
let(:body) { fixture('details.json') }

it 'should get member details back from the API' do
Expand All @@ -36,7 +46,7 @@


context 'with load_current_consents' do
let(:expected_request) { {'guid' => 'abcdef1234567890', 'api_token' => '1234567890abcdef', 'load_current_consents' => true}.to_json }
let(:expected_request) { { 'guid' => 'abcdef1234567890', 'api_token' => '1234567890abcdef', 'load_current_consents' => true }.to_json }
let(:body) { fixture('details_with_consents.json') }

it 'should get member details with consents back from the API' do
Expand All @@ -52,7 +62,7 @@
end

context 'with email passed' do
let(:expected_request) { {'email' => 'test@example.com', 'api_token' => '1234567890abcdef'}.to_json }
let(:expected_request) { { 'email' => 'test@example.com', 'api_token' => '1234567890abcdef' }.to_json }
let(:body) { fixture('details.json') }

it 'should get member details back from the API' do
Expand Down
3 changes: 2 additions & 1 deletion spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ def stub_post(path)
end

def stub_identity_request(method, path)
stub_request(method, "https://test.com" + path)
path_suffix = path.to_s.delete_prefix('/')
stub_request(method, %r{\Ahttps://test\.com/+#{Regexp.escape(path_suffix)}\z})
end

def fixture_path
Expand Down
Loading