crv_api_client 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +26 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/Guardfile +10 -0
- data/LICENSE.txt +22 -0
- data/README.md +47 -0
- data/Rakefile +7 -0
- data/crv_api_client.gemspec +30 -0
- data/lib/crv_api_client/animals.rb +84 -0
- data/lib/crv_api_client/api/animals/animals.rb +1734 -0
- data/lib/crv_api_client/api/animals/animals_driver.rb +113 -0
- data/lib/crv_api_client/api/animals/animals_mapping_registry.rb +2082 -0
- data/lib/crv_api_client/api/animals/rs_animal_service_client.rb +122 -0
- data/lib/crv_api_client/api/animals.rb +9 -0
- data/lib/crv_api_client/api/reproduction/esb_rs_reproduction_service_client.rb +158 -0
- data/lib/crv_api_client/api/reproduction/reproduction.rb +8810 -0
- data/lib/crv_api_client/api/reproduction/reproduction_driver.rb +136 -0
- data/lib/crv_api_client/api/reproduction/reproduction_mapping_registry.rb +5244 -0
- data/lib/crv_api_client/api/reproduction.rb +9 -0
- data/lib/crv_api_client/api.rb +6 -0
- data/lib/crv_api_client/errors.rb +57 -0
- data/lib/crv_api_client/helpers/attributes.rb +34 -0
- data/lib/crv_api_client/helpers/crv.rb +89 -0
- data/lib/crv_api_client/helpers/endpoint.rb +46 -0
- data/lib/crv_api_client/helpers.rb +7 -0
- data/lib/crv_api_client/reproduction.rb +87 -0
- data/lib/crv_api_client/utils/configuration.rb +40 -0
- data/lib/crv_api_client/utils.rb +5 -0
- data/lib/crv_api_client/version.rb +3 -0
- data/lib/crv_api_client.rb +26 -0
- data/spec/lib/crv/animals_spec.rb +95 -0
- data/spec/lib/crv/api/animals/animals_driver_spec.rb +39 -0
- data/spec/lib/crv/api/reproduction/reproduction_driver_spec.rb +39 -0
- data/spec/lib/crv/helpers/attributes_spec.rb +52 -0
- data/spec/lib/crv/helpers/crv_spec.rb +146 -0
- data/spec/lib/crv/helpers/endpoint_spec.rb +54 -0
- data/spec/lib/crv/reproduction_spec.rb +137 -0
- data/spec/lib/crv_spec.rb +22 -0
- data/spec/spec_helper.rb +91 -0
- metadata +204 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0c563445f0c5b889da6747d2c4d7a68dd19d57ae52697fdade8e2c68a1583928
|
4
|
+
data.tar.gz: d5b42fcbd5152d2a292612b80ae85893f5758f467daebfffae4de3536b1b97ec
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6121950db853da3fc38cf024383a4442ca6ff17eeaf153de0d6399ceb19e90f88afe9069d208ac6264b1c0b8a74bbdcd23fce523f272e848bf24f910817498ce
|
7
|
+
data.tar.gz: dab9942136865ea5f9fb0efea4bfaa4de2ec4925a34f0fb796ec293264421bc217d61a9d59f082d20881561eee94622e1d7c80a2a71a77f8586ceda93781cf92
|
data/.gitignore
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
.rvmrc
|
7
|
+
Gemfile.lock
|
8
|
+
InstalledFiles
|
9
|
+
_yardoc
|
10
|
+
coverage
|
11
|
+
doc/
|
12
|
+
lib/bundler/man
|
13
|
+
pkg
|
14
|
+
rdoc
|
15
|
+
spec/reports
|
16
|
+
test/tmp
|
17
|
+
test/version_tmp
|
18
|
+
tmp
|
19
|
+
*.bundle
|
20
|
+
*.so
|
21
|
+
*.o
|
22
|
+
*.a
|
23
|
+
mkmf.log
|
24
|
+
.idea/
|
25
|
+
.DS_Store
|
26
|
+
.rvmrc
|
data/.rspec
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Antek Drzewiecki
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# CRV API client
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
Add these lines to your application's Gemfile:
|
6
|
+
|
7
|
+
```
|
8
|
+
source 'http://lm-gems:9292'
|
9
|
+
gem 'crv_api_client'
|
10
|
+
```
|
11
|
+
|
12
|
+
And then execute:
|
13
|
+
|
14
|
+
```
|
15
|
+
$ bundle
|
16
|
+
```
|
17
|
+
|
18
|
+
Or install it yourself as:
|
19
|
+
|
20
|
+
```
|
21
|
+
$ gem install crv_api_client
|
22
|
+
```
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
|
26
|
+
Create a new client
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
crv_client = CrvApiClient::Animals.new
|
30
|
+
```
|
31
|
+
|
32
|
+
Request a list of animals.
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
response = crv_client.list_animals(crv_id, country_code)
|
36
|
+
```
|
37
|
+
|
38
|
+
## Configuration
|
39
|
+
Configure the CRV client by passing it a block. For example:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
success = CrvApiClient.configure do |config|
|
43
|
+
config.customer = {participant_code:"123",participant_code_type:"PAR", country_code:"NLD"}
|
44
|
+
config.username = 'thisisme'
|
45
|
+
config.password = 'verysecret'
|
46
|
+
end
|
47
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'crv_api_client/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "crv_api_client"
|
8
|
+
spec.description = "CRV API client"
|
9
|
+
spec.homepage = "https://nedap.com"
|
10
|
+
spec.version = CrvApiClient::VERSION
|
11
|
+
spec.authors = ["Nedap"]
|
12
|
+
spec.email = ["development-lm@nedap.com"]
|
13
|
+
spec.summary = %q{A Wrapper for the CRV soap API.}
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
spec.add_dependency "soap4r-ruby1.9", "~> 2.0.5"
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rspec", '~> 3.0.0'
|
25
|
+
spec.add_development_dependency 'guard', '~> 2.6.1'
|
26
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.2.10'
|
27
|
+
spec.add_development_dependency 'webmock', '~> 1.18.0'
|
28
|
+
spec.add_development_dependency 'vcr', '~> 2.9.2'
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module CrvApiClient
|
2
|
+
class Animals
|
3
|
+
extend ::CrvApiClient::Helpers::Attributes
|
4
|
+
include ::CrvApiClient::Helpers::Crv
|
5
|
+
|
6
|
+
attr_reader :endpoint_url
|
7
|
+
attr_reader :username
|
8
|
+
attr_reader :password
|
9
|
+
attr_reader_with_type :customer, ::CrvApiClient::Api::Animals::ParticipantId
|
10
|
+
attr_reader_with_type :provider, ::CrvApiClient::Api::Animals::ParticipantId
|
11
|
+
|
12
|
+
def initialize(endpoint_url= ::CrvApiClient.configuration.endpoint_animals,
|
13
|
+
username: ::CrvApiClient.configuration.username,
|
14
|
+
password: ::CrvApiClient.configuration.password,
|
15
|
+
customer: ::CrvApiClient.configuration.customer,
|
16
|
+
provider: ::CrvApiClient.configuration.provider)
|
17
|
+
|
18
|
+
@endpoint_url = endpoint_url
|
19
|
+
@username = username
|
20
|
+
@password = password
|
21
|
+
self.customer= ::CrvApiClient::Api::Animals::ParticipantId.new(customer[:participant_code], customer[:participant_code_type], customer[:country_code])
|
22
|
+
self.provider= ::CrvApiClient::Api::Animals::ParticipantId.new(provider[:participant_code], provider[:participant_code_type], provider[:country_code])
|
23
|
+
end
|
24
|
+
|
25
|
+
##
|
26
|
+
# Fetches all animals from the crv_api_client database from a specific customer.
|
27
|
+
#
|
28
|
+
# notes::
|
29
|
+
# Ensure the CRV client is configured properly.
|
30
|
+
#
|
31
|
+
# parameters::
|
32
|
+
# crv_id the crv_api_client id of the farm.
|
33
|
+
# country_code: the country code of the farm.
|
34
|
+
# context_message_detail: context message, authentication.
|
35
|
+
# process_code: a process code if any
|
36
|
+
# options :: a Hash of options.
|
37
|
+
# {validate: false} when set to false, the response wont be validated for status codes.
|
38
|
+
#
|
39
|
+
# response:: a CrvApiClient::Api::Animals::ListHerdPedigreeResponse will be returned.
|
40
|
+
#
|
41
|
+
# usage::
|
42
|
+
# response = Class.list_animals(123,"NL",nil,nil)
|
43
|
+
def list_animals(crv_id, country_code, context_message_detail: nil,process_code: "", options: {})
|
44
|
+
|
45
|
+
keeper, context_message_detail = keeper_and_context_message_detail(crv_id,country_code)
|
46
|
+
context = context_message(keeper,
|
47
|
+
username: @username,
|
48
|
+
password: @password,
|
49
|
+
context_message_detail: context_message_detail,
|
50
|
+
customer: customer,
|
51
|
+
provider: provider,
|
52
|
+
process_code: process_code,
|
53
|
+
animal: nil,
|
54
|
+
organisation: nil)
|
55
|
+
|
56
|
+
requestType = CrvApiClient::Api::Animals::ListHerdPedigreeRequestType.new
|
57
|
+
requestType.keeper = keeper
|
58
|
+
|
59
|
+
request = CrvApiClient::Api::Animals::ListHerdPedigreeRequest.new
|
60
|
+
request.contextMessage = context
|
61
|
+
request.requestMessage = requestType
|
62
|
+
|
63
|
+
result = driver.listHerdPedigree(request)
|
64
|
+
|
65
|
+
perform_service_message_validation(result.serviceMessage) unless options[:validate] == false
|
66
|
+
|
67
|
+
result
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def driver
|
74
|
+
@driver ||= begin
|
75
|
+
animal_soap_driver = CrvApiClient::Api::Animals::RsAnimalPortType.new(@endpoint_url)
|
76
|
+
animal_soap_driver.options['protocol.http.connect_timeout'] = CrvApiClient.configuration.http_connect_timeout || 220
|
77
|
+
animal_soap_driver.options['protocol.http.receive_timeout'] = CrvApiClient.configuration.http_receive_timeout || 220
|
78
|
+
animal_soap_driver.options['protocol.http.ssl_config.verify_mode'] = nil
|
79
|
+
animal_soap_driver.wiredump_file_base = CrvApiClient.configuration.log_file
|
80
|
+
animal_soap_driver
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|