alma_rest_api 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/alma_rest_api.rb +100 -0
  3. metadata +84 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ee2df61c0ec507577dbdb6f41deb27a4061e307a
4
+ data.tar.gz: 5809291ebf1994fc79bee1f209e6a3758a3ae109
5
+ SHA512:
6
+ metadata.gz: c95e3a4a1d7b5e11c721aa23bff350f3c199f616a8c6d53e3f7ade7afc0de34bfdc771bf400867cbde590fdfe7b069c7da1a6f8d349f764ef205ccde87635636
7
+ data.tar.gz: c86604fd80e7c8b0996d1b661467d21b3da019e163a7f4f4a1b9b44183a7d2b8d626e34762bfe77d4cb13625de3107949de4d60cf0be2afff8902ac463466a33
@@ -0,0 +1,100 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+ require 'nokogiri'
4
+
5
+
6
+ module AlmaRestApi
7
+ class << self
8
+
9
+ def configuration
10
+ @configuration ||= Configuration.new
11
+ end
12
+
13
+ def configure
14
+ self.configuration ||= Configuration.new
15
+ yield(configuration)
16
+ end
17
+
18
+ def get(uri)
19
+ begin
20
+ response =
21
+ RestClient.get uri(uri),
22
+ accept: :json,
23
+ authorization: 'apikey ' + AlmaRestApi.configuration.api_key
24
+ return JSON.parse(response.body)
25
+ rescue => e
26
+ raise parse_error e.response
27
+ end
28
+ end
29
+
30
+ def put(uri, data)
31
+ begin
32
+ response =
33
+ RestClient.put uri(uri),
34
+ data.to_json,
35
+ accept: :json,
36
+ authorization: 'apikey ' + AlmaRestApi.configuration.api_key,
37
+ content_type: :json
38
+ return JSON.parse(response.body)
39
+ rescue => e
40
+ raise parse_error e.response
41
+ end
42
+ end
43
+
44
+ def post(uri, data)
45
+ begin
46
+ response =
47
+ RestClient.post uri(uri),
48
+ data.to_json,
49
+ accept: :json,
50
+ authorization: 'apikey ' + AlmaRestApi.configuration.api_key,
51
+ content_type: :json
52
+ return JSON.parse(response.body)
53
+ rescue => e
54
+ raise parse_error e.response
55
+ end
56
+ end
57
+
58
+ def delete(uri)
59
+ begin
60
+ RestClient.delete uri(uri),
61
+ authorization: 'apikey ' + AlmaRestApi.configuration.api_key
62
+ rescue => e
63
+ raise parse_error e.response
64
+ end
65
+ end
66
+
67
+ def uri(uri)
68
+ if uri.start_with? 'http'
69
+ return uri
70
+ else
71
+ return AlmaRestApi.configuration.api_path + uri
72
+ end
73
+ end
74
+
75
+ def parse_error(err)
76
+ begin
77
+ puts err
78
+ error = JSON.parse(err)
79
+ puts error
80
+ if error["web_service_result"] #500
81
+ return error["web_service_result"]["errorList"]["error"]["errorMessage"]
82
+ else #400
83
+ return error["errorList"]["error"][0]["errorMessage"]
84
+ end
85
+ rescue JSON::ParserError
86
+ return "Unknown error from Alma"
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+ class Configuration
93
+ attr_accessor :api_key
94
+ attr_accessor :api_path
95
+
96
+ def initialize
97
+ @api_key = ENV['ALMA_API_KEY']
98
+ @api_path = ENV['ALMA_API_PATH'] || "https://api-na.hosted.exlibrisgroup.com/almaws/v1"
99
+ end
100
+ end
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alma_rest_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.6
5
+ platform: ruby
6
+ authors:
7
+ - Josh Weisman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-02-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: nokogiri
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.8'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.8.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.8'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.8.0
53
+ description: ''
54
+ email: josh.weisman@exlibrisgroup.com
55
+ executables: []
56
+ extensions: []
57
+ extra_rdoc_files: []
58
+ files:
59
+ - lib/alma_rest_api.rb
60
+ homepage: http://rubygems.org/gems/almarestapi
61
+ licenses:
62
+ - MIT
63
+ metadata: {}
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project:
80
+ rubygems_version: 2.6.14
81
+ signing_key:
82
+ specification_version: 4
83
+ summary: Utility client for calling Alma REST APIs
84
+ test_files: []