springcm-sdk 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f378f7dc1698fe53469166c6ced20bbed1aef7c43ccf514ce748138624d5bafb
4
- data.tar.gz: 1933002ce3f5a7d2fdac68f8462c23aa7ceef4f56bec771da2e02a7054819a4c
3
+ metadata.gz: 62ce246eed8c9903f1a23c83296df864a39b29e7bdfc0dd1351833854ff9b2d4
4
+ data.tar.gz: 51bef14dbffb1245439232d41c10eb64d5ce29b31a3e1483aa6973e0be53b4ea
5
5
  SHA512:
6
- metadata.gz: 93f36689ee2c46f12fc2d30cc4bfb992c9908c90b0a6e0e4a6a984b7fa8bcddadd582e38e8a9c7ca7a3839ce3a166408b2dfe3a59fb5ed8776475c9b938f4709
7
- data.tar.gz: 6e65ec9ce5d2133f171254aee6ae1bab732f575977fb01b5c9eb2ec737332aabb7ae772f15db331c5760077d28ec4da6adf9de49de1cbf7a7b2b6da0799adc36
6
+ metadata.gz: f09b65c50f48af5ffa74584137bd79b3cb62fcab93f2b11ddca2089ef1815c82a455e23c6fc3591630a5238d29a37f452856d06e5e95bc25d0acd69f01c85d9d
7
+ data.tar.gz: d8f334881ad6de05354f696c8738344222750f177b2013e37492e71e1a392f1ce5173d8acd287ebddd768ade0c5d6ee9fe09532c3d911aa1d62469d04d931cd1
data/.gitignore CHANGED
@@ -1 +1,5 @@
1
1
  Gemfile.lock
2
+ springcm-sdk-*.gem
3
+ coverage
4
+ .yardoc
5
+ doc
data/.travis.yml CHANGED
@@ -5,3 +5,11 @@ cache: bundler
5
5
  rvm:
6
6
  - 2.5.5
7
7
  before_install: gem install bundler -v 2.0.1
8
+ before_script:
9
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
10
+ - chmod +x ./cc-test-reporter
11
+ - ./cc-test-reporter before-build
12
+ script:
13
+ - bundle exec rspec
14
+ after_script:
15
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/CHANGELOG.md ADDED
@@ -0,0 +1,22 @@
1
+ # springcm-sdk changelog
2
+
3
+ All notable changes to springcm-sdk will be documented in this file.
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.1.1] - 2019-07-17
8
+ ### Added
9
+ * `Client#connect!` method
10
+ * Documentation generation
11
+ * Test coverage
12
+
13
+ ### Changed
14
+ * Fix issues with gemspec file
15
+
16
+ ## [0.1.0] - 2019-07-16
17
+ ### Added
18
+ * Initial release to reserve gem name
19
+
20
+ [Unreleased]: https://github.com/paulholden2/springcm-sdk/compare/v0.1.0...HEAD
21
+ [0.1.0]: https://github.com/paulholden2/springcm-sdk/releases/tag/v0.1.0
22
+ [0.1.1]: https://github.com/paulholden2/springcm-sdk/releases/tag/v0.1.1
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SpringCM
2
2
 
3
- [![Build Status](https://travis-ci.org/paulholden2/springcm-sdk.svg?branch=master)](https://travis-ci.org/paulholden2/springcm-sdk)
3
+ [![Gem Version](https://badge.fury.io/rb/springcm-sdk.svg)](https://badge.fury.io/rb/springcm-sdk) [![Build Status](https://travis-ci.org/paulholden2/springcm-sdk.svg?branch=master)](https://travis-ci.org/paulholden2/springcm-sdk) [![Maintainability](https://api.codeclimate.com/v1/badges/06e1dd90fde417de15da/maintainability)](https://codeclimate.com/github/paulholden2/springcm-sdk/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/06e1dd90fde417de15da/test_coverage)](https://codeclimate.com/github/paulholden2/springcm-sdk/test_coverage)
4
4
 
5
5
  This gem is a library for working with the SpringCM REST API.
6
6
 
data/lib/springcm.rb CHANGED
@@ -14,4 +14,10 @@ module Springcm
14
14
 
15
15
  class ConnectionInfoError < Error
16
16
  end
17
+
18
+ class InvalidClientIdOrSecretError < Error
19
+ def initialize
20
+ super('Invalid Client Id or Client Secret')
21
+ end
22
+ end
17
23
  end
@@ -2,6 +2,9 @@ require "faraday"
2
2
 
3
3
  module Springcm
4
4
  class Client
5
+ # @param data_center [String] Data center name, e.g. uatna11
6
+ # @param client_id [String] Your API client ID
7
+ # @param client_secret [String] Your API client secret
5
8
  def initialize(data_center:, client_id:, client_secret:)
6
9
  if !["na11", "uatna11"].include?(data_center)
7
10
  raise Springcm::ConnectionInfoError.new("Invalid data center '#{data_center.to_s}'")
@@ -15,7 +18,10 @@ module Springcm
15
18
  @access_token
16
19
  end
17
20
 
18
- def connect
21
+ # Connect to the configured SpringCM API service
22
+ # @param safe If truthy, connection failure does not raise an exception
23
+ # @return [Boolean] Whether connection was successful
24
+ def connect(safe=true)
19
25
  conn = Faraday.new(url: auth_url)
20
26
  res = conn.post do |req|
21
27
  req.url "/"
@@ -24,28 +30,46 @@ module Springcm
24
30
  client_secret: @client_secret
25
31
  }.to_json
26
32
  end
27
- data = JSON.parse(res.body)
28
- @access_token = data.fetch("access_token")
29
- @expiry = Time.now + data.fetch("expires_in")
30
- true
33
+ if res.success?
34
+ data = JSON.parse(res.body)
35
+ @access_token = data.fetch("access_token")
36
+ @expiry = Time.now + data.fetch("expires_in")
37
+ true
38
+ else
39
+ @access_token = nil
40
+ @expiry = nil
41
+ raise Springcm::InvalidClientIdOrSecretError.new if !safe
42
+ false
43
+ end
44
+ end
45
+
46
+ # Shorthand for connecting unsafely
47
+ def connect!
48
+ connect(false)
31
49
  end
32
50
 
51
+ # Check if client is successfully authenticated
52
+ # @return [Boolean] Whether a valid, unexpired access token is held.
33
53
  def authenticated?
34
54
  !!@access_token && @expiry > Time.now
35
55
  end
36
56
 
57
+ # Get the URL for object API requests
37
58
  def object_api_url
38
59
  "https://api#{@data_center}.springcm.com/v#{@api_version}"
39
60
  end
40
61
 
62
+ # Get the URL for content upload API requests
41
63
  def upload_api_url
42
64
  "https://apiupload#{@data_center}.springcm.com/v#{@api_version}"
43
65
  end
44
66
 
67
+ # Get the URL for content download requests
45
68
  def download_api_url
46
69
  "https://apidownload#{@data_center}.springcm.com/v#{@api_version}"
47
70
  end
48
71
 
72
+ # Get the URL for authentication requests
49
73
  def auth_url
50
74
  "https://auth#{auth_subdomain_suffix}.springcm.com/api/v#{@auth_version}/apiuser"
51
75
  end
@@ -1,3 +1,3 @@
1
1
  module Springcm
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/springcm-sdk.gemspec CHANGED
@@ -9,9 +9,9 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Paul Holden"]
10
10
  spec.email = ["pholden@stria.com"]
11
11
 
12
- spec.summary = %q{A library API working with the SpringCM REST API.}
13
- spec.description = %q{A library API working with the SpringCM REST API.}
14
- spec.homepage = "https://github.com/paulholden2/springcm"
12
+ spec.summary = %q{A library for working with the SpringCM REST API.}
13
+ spec.description = %q{A library for working with the SpringCM REST API and associated objects in Ruby applications.}
14
+ spec.homepage = "https://github.com/paulholden2/springcm-sdk"
15
15
  spec.license = "MIT"
16
16
 
17
17
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
@@ -20,8 +20,9 @@ Gem::Specification.new do |spec|
20
20
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
21
21
 
22
22
  spec.metadata["homepage_uri"] = spec.homepage
23
- spec.metadata["source_code_uri"] = "https://github.com/paulholden2/springcm"
24
- # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
23
+ spec.metadata["source_code_uri"] = "https://github.com/paulholden2/springcm-sdk"
24
+ spec.metadata["documentation_uri"] = "https://rubydoc.info/github/paulholden2/springcm-sdk/#{Springcm::VERSION}"
25
+ spec.metadata["changelog_uri"] = "https://github.com/paulholden2/springcm-sdk/blob/master/CHANGELOG.md"
25
26
  else
26
27
  raise "RubyGems 2.0 or newer is required to protect against " \
27
28
  "public gem pushes."
@@ -43,4 +44,6 @@ Gem::Specification.new do |spec|
43
44
  spec.add_development_dependency "rspec", "~> 3.0"
44
45
  spec.add_development_dependency "sinatra", "~> 2.0"
45
46
  spec.add_development_dependency "webmock", "~> 3.6"
47
+ spec.add_development_dependency "simplecov", "~> 0.17"
48
+ spec.add_development_dependency "yard", "~> 0.9"
46
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: springcm-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Holden
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-16 00:00:00.000000000 Z
11
+ date: 2019-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -94,7 +94,36 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.6'
97
- description: A library API working with the SpringCM REST API.
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.17'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.17'
111
+ - !ruby/object:Gem::Dependency
112
+ name: yard
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.9'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.9'
125
+ description: A library for working with the SpringCM REST API and associated objects
126
+ in Ruby applications.
98
127
  email:
99
128
  - pholden@stria.com
100
129
  executables: []
@@ -105,6 +134,7 @@ files:
105
134
  - ".gitignore"
106
135
  - ".rspec"
107
136
  - ".travis.yml"
137
+ - CHANGELOG.md
108
138
  - Gemfile
109
139
  - LICENSE.txt
110
140
  - README.md
@@ -115,13 +145,15 @@ files:
115
145
  - lib/springcm/client.rb
116
146
  - lib/springcm/version.rb
117
147
  - springcm-sdk.gemspec
118
- homepage: https://github.com/paulholden2/springcm
148
+ homepage: https://github.com/paulholden2/springcm-sdk
119
149
  licenses:
120
150
  - MIT
121
151
  metadata:
122
152
  allowed_push_host: https://rubygems.org
123
- homepage_uri: https://github.com/paulholden2/springcm
124
- source_code_uri: https://github.com/paulholden2/springcm
153
+ homepage_uri: https://github.com/paulholden2/springcm-sdk
154
+ source_code_uri: https://github.com/paulholden2/springcm-sdk
155
+ documentation_uri: https://rubydoc.info/github/paulholden2/springcm-sdk/0.1.1
156
+ changelog_uri: https://github.com/paulholden2/springcm-sdk/blob/master/CHANGELOG.md
125
157
  post_install_message:
126
158
  rdoc_options: []
127
159
  require_paths:
@@ -141,5 +173,5 @@ rubyforge_project:
141
173
  rubygems_version: 2.7.7
142
174
  signing_key:
143
175
  specification_version: 4
144
- summary: A library API working with the SpringCM REST API.
176
+ summary: A library for working with the SpringCM REST API.
145
177
  test_files: []