alma_rest_api 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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: []