alfa_insurance 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
  SHA1:
3
- metadata.gz: 9a0def11c9547d525960f188b95da3080b19c5b0
4
- data.tar.gz: 9caab4f5c9bb6d78abee60fa828b4d3c9c587b9f
3
+ metadata.gz: 796ae79543747a6fccf29f13d4c767953a4996a8
4
+ data.tar.gz: eea02d0a83b15c5987f41b8241453fed75ac9008
5
5
  SHA512:
6
- metadata.gz: 414254d9203ce1fda1ab385b233596a884bd517ce5f6b3ec997bb5bccd1cb73f15b6135266d74a841dc9d21be35fae577d141b877283e6e6f3ebecb6e3fd9a16
7
- data.tar.gz: 599d0d54a268852e10e7b26cf1a2b9297553328fd92954517ae864336f20ccc4f2b8a4204648fb64d9a1e4aff1c764f7142902d71b7796be3a76dd2b8186665c
6
+ metadata.gz: c03656d7d810b8cbb6519fd00bc22b90be55296d0e97ca886d01193d92c73c89a31ccd7fdfa4f8738a5af8e422554b89ecfbdb875a6c8f58bab8bb31163b4293
7
+ data.tar.gz: 2d1fdf2a890659bd2f312e2cbe7215851033bf5c229a874f699849e6151d72d8972424d54b9cd879a087a3dbf9bf6e948017bc3442b3152b7a2c41e763b11200
data/README.md CHANGED
@@ -23,12 +23,84 @@ Or install it yourself as:
23
23
  Пример использования:
24
24
 
25
25
  ```ruby
26
- client = AlfaInsurance::BusPolicy.new(operator: 'TestBusOperator', product_code: 'TEST-BUS', debug: true)
26
+ client = AlfaInsurance::BusClient.new(operator: 'TestBusOperator', product_code: 'TEST-BUS', debug: true)
27
27
  response = client.calculate(480)
28
28
  response.cost
29
29
  response.risk_value
30
30
  ```
31
31
 
32
+ Все ответы сервера поддерживают метод success? и если он возвращает false, содержат код и описание ошибки в полях error_code и error_description.
33
+
34
+ Описание методов:
35
+ ### calculate
36
+
37
+ Принимает на вход стоимость билета (тип Money, или Float), возвращает структуру CalculateResponse с полями cost, risk_value (денежные) и строковым полем risk_type, где содержится код покрываемого риска. Расчет осуществляется без учета валюты - она настраивается на уровне выбора страхового продукта.
38
+
39
+ ```ruby
40
+ response = client.calculate(480)
41
+ response.cost
42
+ response.risk_value
43
+ ```
44
+
45
+ ### create
46
+
47
+ Принимает на вход заполненную данными структуру BusInsuranceRequest, возвращает структуру CreateResponse, с полями аналогичными CalculateResponse, плюс идентификатор страховки - insurance_id.
48
+
49
+ ```ruby
50
+ insurance_request = AlfaInsurance::BusInsuranceRequest.new(
51
+ insured_first_name: 'Vassily',
52
+ insured_last_name: 'Poupkine',
53
+ insured_patronymic: 'Petrovitch',
54
+ insured_birth_date: '1980-01-01',
55
+ bus_segments: [
56
+ AlfaInsurance::BusSegment.new(
57
+ number: 1,
58
+ route_number: 33,
59
+ place_number: 14,
60
+ arrival_station: 'Kiev',
61
+ arrival_at: DateTime.parse('2018-03-25 00:00:00+03:00'),
62
+ departure_station: 'Moscow',
63
+ departure_at: DateTime.parse('2018-03-24 12:00:00+03:00')
64
+ )
65
+ ],
66
+ total_value: Money.new(480, 'RUB'),
67
+ customer_phone: '+79161234567',
68
+ customer_email: 'text@example.com'
69
+ )
70
+ response = client.create(insurance_request)
71
+ response.cost
72
+ response.risk_value
73
+
74
+ ```
75
+
76
+ ### confirm
77
+
78
+ Принимает на вход числовой идентификатор страховки, возвращает структуру ConfirmResponse, с полями insurance_id и document_url (ссылка на pdf)
79
+
80
+ ```ruby
81
+ response = client.confirm(insurance_id)
82
+ response.success?
83
+ response.document_url
84
+ ```
85
+
86
+ ### cancel
87
+
88
+ Принимает на вход числовой идентификатор страховки, отменяет страховку, возвращает Reponse
89
+
90
+ ```ruby
91
+ response = client.cancel(insurance_id)
92
+ response.success?
93
+ ```
94
+
95
+ ### find
96
+
97
+ Принимает на вход числовой идентификатор страховки, возвращает FindReponse с полями insurance_id, cost, risk_value, risk_type (см. выше) и state, где содержится текстовый статус страховки (например ISSUING, CONFIRMED, CANCELLED)
98
+
99
+ ```ruby
100
+ response = client.find(insurance_id)
101
+ response.state
102
+ ```
103
+
32
104
  ## Development
33
105
 
34
106
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -16,6 +16,19 @@ module AlfaInsurance
16
16
  @product_code = product_code
17
17
  end
18
18
 
19
+ def get_available_products
20
+ send_soap_request(:get_available_products) do |xml|
21
+ xml.operator { xml.code(operator) }
22
+ end.body
23
+ end
24
+
25
+ def get_policy_parameters(product_code)
26
+ send_soap_request(:get_policy_parameters) do |xml|
27
+ xml.operator { xml.code(operator) }
28
+ xml.product { xml.code(product_code) }
29
+ end.body
30
+ end
31
+
19
32
  def calculate(*)
20
33
  raise NotImplementedError
21
34
  end
@@ -1,7 +1,7 @@
1
1
  module AlfaInsurance
2
2
  class BusClient < BaseClient
3
3
  def calculate(total_cost)
4
- response = send_soap_request(:create_policy) do |xml|
4
+ response = send_soap_request(:calculate_policy) do |xml|
5
5
  xml.operator { xml.code(operator) }
6
6
  xml.product { xml.code(product_code) }
7
7
  xml.policyParameters {
@@ -1,3 +1,3 @@
1
1
  module AlfaInsurance
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alfa_insurance
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
  - Alexander Sviridov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-15 00:00:00.000000000 Z
11
+ date: 2018-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon