Skip to content
Open
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
2 changes: 2 additions & 0 deletions lib/crefo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
require 'crefo/service/change_password'
require 'crefo/service/keylist'
require 'crefo/service/logon'
require 'crefo/service/mailbox_directory'
require 'crefo/service/mailbox_entry'
require 'crefo/service/report'
require 'crefo/service/search'
require 'crefo/xml/request/envelope'
Expand Down
4 changes: 2 additions & 2 deletions lib/crefo/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ module Crefo
class Configuration
CURRENT_KEYLISTVERSION = 21
ENDPOINTS = {
default: 'https://onlineservice.creditreform.de:443/webservice/0600-0021/soap12/messages.wsdl',
test: 'https://ktu.onlineservice.creditreform.de:443/webservice/0600-0021/soap12/messages.wsdl'
default: 'https://onlineservice.creditreform.de:443/webservice/0710-0033/soap12/messages.wsdl',
test: 'https://ktu.onlineservice.creditreform.de:443/webservice/0710-0033/soap12/messages.wsdl'
}.freeze

attr_accessor :communicationlanguage, :keylistversion, :transactionreference
Expand Down
9 changes: 9 additions & 0 deletions lib/crefo/service/mailbox_directory.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module Crefo
class Service
class MailboxDirectory < Crefo::Service
end
end
end

require 'crefo/service/mailbox_directory/response'
require 'crefo/service/mailbox_directory/request'
25 changes: 25 additions & 0 deletions lib/crefo/service/mailbox_directory/request.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module Crefo
class Service
class MailboxDirectory
class Request < Service::Request
self.request_name = :mailboxdirectory
self.response_class = MailboxDirectory::Response

def body
{
pagereference: options[:pagereference] || 0,
openorders: options[:openorders] || false,
entriesread: options[:entriesread] || false,
entriesunread: options[:entriesunread] || true,
deliverytypeupdate: options[:deliverytypeupdate] || true,
deliverytypereport: options[:deliverytypereport] || true,
deliverytypestatusreply: options[:deliverytypestatusreply] || true,
deliverytypesupplement: options[:deliverytypesupplement] || true,
deliverytypestockdelivery: options[:deliverytypestockdelivery] || true,
numberofentries: options[:numberofentries] || 50
}.merge(options)
end
end
end
end
end
13 changes: 13 additions & 0 deletions lib/crefo/service/mailbox_directory/response.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module Crefo
class Service
class MailboxDirectory
class Response < Service::Response
self.response_name = :mailboxdirectory

def result
document_body_hash
end
end
end
end
end
14 changes: 14 additions & 0 deletions lib/crefo/service/mailbox_entry.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module Crefo
class Service
class MailboxEntry < Crefo::Service
def initialize(options)
raise 'mailboxentrynumber is missing' unless options[:mailboxentrynumber]

super(options)
end
end
end
end

require 'crefo/service/mailbox_entry/response'
require 'crefo/service/mailbox_entry/request'
16 changes: 16 additions & 0 deletions lib/crefo/service/mailbox_entry/request.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
module Crefo
class Service
class MailboxEntry
class Request < Service::Request
self.request_name = :mailboxentry
self.response_class = MailboxEntry::Response

def body
{
mailboxentrynumber: options[:mailboxentrynumber]
}
end
end
end
end
end
31 changes: 31 additions & 0 deletions lib/crefo/service/mailbox_entry/response.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module Crefo
class Service
class MailboxEntry
class Response < Service::Response
self.response_name = :mailboxentry

def result
if report_not_available?
false
else
document_body_hash
end
end

private

def error?
return false unless document_fault_hash
return false if report_not_available?

true
end

def report_not_available?
return false unless document_fault_hash
'ER-114' == document_fault_hash&.dig(:Detail, :servicefault, :body, :fault, :errorkey, :key)
end
end
end
end
end
2 changes: 1 addition & 1 deletion lib/crefo/xml/request/namespaces.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module XML
class Request
NAMESPACES = {
'xmlns:soap' => 'http://www.w3.org/2003/05/soap-envelope',
'xmlns:ns' => 'https://onlineservice.creditreform.de/webservice/0600-0021'
'xmlns:ns' => 'https://onlineservice.creditreform.de/webservice/0710-0033'
}.freeze
end
end
Expand Down
6 changes: 3 additions & 3 deletions spec/configuration_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
end

it 'stores all configured data' do
expect(config.endpoint).to eq 'https://ktu.onlineservice.creditreform.de:443/webservice/0600-0021/soap12/messages.wsdl'
expect(config.endpoint).to eq 'https://ktu.onlineservice.creditreform.de:443/webservice/0710-0033/soap12/messages.wsdl'
expect(config.communicationlanguage).to eq 'en'
expect(config.keylistversion).to eq 22
expect(config.transactionreference).to eq 'TEST'
Expand All @@ -49,8 +49,8 @@
end

[
[:default, 'https://onlineservice.creditreform.de:443/webservice/0600-0021/soap12/messages.wsdl'],
[:test, 'https://ktu.onlineservice.creditreform.de:443/webservice/0600-0021/soap12/messages.wsdl'],
[:default, 'https://onlineservice.creditreform.de:443/webservice/0710-0033/soap12/messages.wsdl'],
[:test, 'https://ktu.onlineservice.creditreform.de:443/webservice/0710-0033/soap12/messages.wsdl'],
['http://example.com/foo.wdsl', 'http://example.com/foo.wdsl']
].each do |key, url|
context "with #{key} endpoint" do
Expand Down
6 changes: 3 additions & 3 deletions spec/fixtures/vcr_cassettes/changepassword.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions spec/fixtures/vcr_cassettes/keylist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
http_interactions:
- request:
method: post
uri: https://ktu.onlineservice.creditreform.de/webservice/0600-0021/soap12/messages.wsdl
uri: https://ktu.onlineservice.creditreform.de/webservice/0710-0033/soap12/messages.wsdl
body:
encoding: UTF-8
string: |
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0600-0021">
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0710-0033">
<soap:Header/>
<soap:Body>
<ns:keylistRequest>
Expand Down
4 changes: 2 additions & 2 deletions spec/fixtures/vcr_cassettes/logon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
http_interactions:
- request:
method: post
uri: https://ktu.onlineservice.creditreform.de/webservice/0600-0021/soap12/messages.wsdl
uri: https://ktu.onlineservice.creditreform.de/webservice/0710-0033/soap12/messages.wsdl
body:
encoding: UTF-8
string: |
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0600-0021">
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0710-0033">
<soap:Header/>
<soap:Body>
<ns:logonRequest>
Expand Down
8 changes: 4 additions & 4 deletions spec/fixtures/vcr_cassettes/report.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions spec/fixtures/vcr_cassettes/search.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions spec/fixtures/xmls/request.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0600-0021">
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0710-0033">
<soap:Header/>
<soap:Body>
<ns:testRequest>
<ns:header>
<ns:communicationlanguage>de</ns:communicationlanguage>
<ns:transmissiontimestamp>2014-12-20T04:44:44+01:00</ns:transmissiontimestamp>
<ns:keylistversion>21</ns:keylistversion>
<ns:keylistversion>36</ns:keylistversion>
<ns:clientapplicationname>mocked_clientapplicationname</ns:clientapplicationname>
<ns:clientapplicationversion>0</ns:clientapplicationversion>
<ns:transactionreference>de5e81bef7d2f81f412a1ab17</ns:transactionreference>
Expand Down
4 changes: 2 additions & 2 deletions spec/fixtures/xmls/request_envelope.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0600-0021">
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="https://onlineservice.creditreform.de/webservice/0710-0033">
<soap:Header/>
<soap:Body>
<ns:testRequest>
<ns:header>
<ns:communicationlanguage>de</ns:communicationlanguage>
<ns:transmissiontimestamp>2014-12-20T04:44:44+01:00</ns:transmissiontimestamp>
<ns:keylistversion>21</ns:keylistversion>
<ns:keylistversion>36</ns:keylistversion>
<ns:clientapplicationname>mocked_clientapplicationname</ns:clientapplicationname>
<ns:clientapplicationversion>0</ns:clientapplicationversion>
<ns:transactionreference>de5e81bef7d2f81f412a1ab17</ns:transactionreference>
Expand Down
2 changes: 1 addition & 1 deletion spec/xml/request/namespaces_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
end

it 'to have namespace ns' do
is_expected.to include('xmlns:ns' => 'https://onlineservice.creditreform.de/webservice/0600-0021')
is_expected.to include('xmlns:ns' => 'https://onlineservice.creditreform.de/webservice/0710-0033')
end
end