moneta-api 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/lib/moneta/api/data_mapper.rb +9 -3
  4. data/lib/moneta/api/key_value_serializer.rb +16 -0
  5. data/lib/moneta/api/requests/create_bank_account_request.rb +28 -0
  6. data/lib/moneta/api/requests/create_profile_request.rb +29 -0
  7. data/lib/moneta/api/requests/edit_bank_account_request.rb +20 -0
  8. data/lib/moneta/api/requests/edit_profile_request.rb +25 -0
  9. data/lib/moneta/api/requests/profile/create_client_profile_request.rb +26 -0
  10. data/lib/moneta/api/requests/profile/create_organization_profile_request.rb +26 -0
  11. data/lib/moneta/api/requests/profile/edit_client_profile_request.rb +16 -0
  12. data/lib/moneta/api/requests/profile/edit_organization_profile_request.rb +16 -0
  13. data/lib/moneta/api/requests/refund_request.rb +1 -1
  14. data/lib/moneta/api/requests/verify_transaction_request.rb +1 -1
  15. data/lib/moneta/api/responses/authorise_transaction_batch_response.rb +1 -1
  16. data/lib/moneta/api/responses/cancel_transaction_batch_response.rb +1 -1
  17. data/lib/moneta/api/responses/confirm_transaction_batch_response.rb +1 -1
  18. data/lib/moneta/api/responses/create_bank_account_response.rb +13 -0
  19. data/lib/moneta/api/responses/create_profile_response.rb +18 -0
  20. data/lib/moneta/api/responses/edit_bank_account_response.rb +18 -0
  21. data/lib/moneta/api/responses/edit_profile_response.rb +18 -0
  22. data/lib/moneta/api/responses/find_account_by_alias_response.rb +1 -1
  23. data/lib/moneta/api/responses/find_account_by_id_response.rb +1 -1
  24. data/lib/moneta/api/responses/find_accounts_list_response.rb +1 -1
  25. data/lib/moneta/api/responses/get_operation_details_by_id_response.rb +1 -1
  26. data/lib/moneta/api/responses/invoice_batch_response.rb +1 -1
  27. data/lib/moneta/api/service_methods.rb +25 -0
  28. data/lib/moneta/api/types/account_info.rb +1 -1
  29. data/lib/moneta/api/types/bank_account_type.rb +62 -0
  30. data/lib/moneta/api/types/cancel_transaction_batch_response_type.rb +1 -1
  31. data/lib/moneta/api/types/hash_entity.rb +14 -0
  32. data/lib/moneta/api/types/key_value_entity.rb +13 -0
  33. data/lib/moneta/api/types/operation_info.rb +1 -1
  34. data/lib/moneta/api/types/operation_info_batch_response_type.rb +1 -1
  35. data/lib/moneta/api/types/operation_info_list.rb +1 -1
  36. data/lib/moneta/api/types/payment_request_type.rb +1 -1
  37. data/lib/moneta/api/types/profile/client.rb +69 -0
  38. data/lib/moneta/api/types/profile/organization.rb +252 -0
  39. data/lib/moneta/api/types/transaction_batch_response_type.rb +1 -1
  40. data/lib/moneta/api/types/transaction_request_type.rb +1 -1
  41. data/lib/moneta/api/types/verify_transfer_response_type.rb +1 -1
  42. data/lib/moneta/api/version.rb +1 -1
  43. data/lib/moneta/api.rb +18 -1
  44. data/moneta-api.gemspec +2 -2
  45. data/spec/lib/moneta/api/requests/create_bank_account_request_spec.rb +20 -0
  46. data/spec/lib/moneta/api/requests/edit_bank_account_request_spec.rb +23 -0
  47. data/spec/lib/moneta/api/requests/profile/create_client_profile_request_spec.rb +29 -0
  48. data/spec/lib/moneta/api/requests/profile/create_organization_profile_request_spec.rb +29 -0
  49. data/spec/lib/moneta/api/requests/profile/edit_client_profile_request_spec.rb +22 -0
  50. data/spec/lib/moneta/api/requests/profile/edit_organization_profile_request_spec.rb +22 -0
  51. data/spec/lib/moneta/api/types/profile/client_spec.rb +19 -0
  52. data/spec/spec_helper.rb +10 -0
  53. data/spec/support/matchers.rb +7 -1
  54. data/spec/vcr/moneta_api_requests_createbankaccountrequest/id_.yml +13707 -0
  55. data/spec/vcr/moneta_api_requests_editbankaccountrequest/success_.yml +13708 -0
  56. data/spec/vcr/moneta_api_requests_profile_createclientprofilerequest/response_.yml +13711 -0
  57. data/spec/vcr/moneta_api_requests_profile_createclientprofilerequest/response_profile_id_.yml +13707 -0
  58. data/spec/vcr/moneta_api_requests_profile_createorganizationprofilerequest/response_profile_id_.yml +13709 -0
  59. data/spec/vcr/moneta_api_requests_profile_editclientprofilerequest/_with_real_connection_true_.yml +13725 -0
  60. data/spec/vcr/moneta_api_requests_profile_editclientprofilerequest/success_.yml +13707 -0
  61. data/spec/vcr/moneta_api_requests_profile_editorganizationprofilerequest/success_.yml +13709 -0
  62. metadata +52 -2
@@ -0,0 +1,69 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ module Profile
5
+ class Client < HashEntity
6
+ # @return [String] ID пользователя в системе МОНЕТА.РУ.
7
+ property :unitid
8
+
9
+ # @return [String] Фамилия.
10
+ property :last_name
11
+
12
+ # @return [String] Имя.
13
+ property :first_name
14
+
15
+ # @return [String] Отчество.
16
+ property :middle_initial_name
17
+
18
+ # @return [String] Псевдоним.
19
+ property :alias
20
+
21
+ # @return [String] Страна.
22
+ property :country
23
+
24
+ # @return [String] Область, республика, штат.
25
+ property :state
26
+
27
+ # @return [String] Город.
28
+ property :city
29
+
30
+ # @return [String] Индекс.
31
+ property :zip
32
+
33
+ # @return [String] Адрес.
34
+ property :address
35
+
36
+ # @return [String] Адрес электронной почты.
37
+ property :email_for_notifications
38
+
39
+ # @return [String] Номер телефона.
40
+ property :phone
41
+
42
+ # @return [String] Номер сотового телефона.
43
+ property :cell_phone
44
+
45
+ # @return [String] Url сайта.
46
+ property :url
47
+
48
+ # @return [String] Пол. MALE - мужской, FEMALE - женский.
49
+ property :sex
50
+
51
+ # @return [String] Дата рождения (формат: yyyy-mm-dd).
52
+ property :date_of_birth
53
+
54
+ # @return [String] Номер ИНН.
55
+ property :inn
56
+
57
+ # @return [String] СНИЛС.
58
+ property :snils
59
+
60
+ # @return [String] Часовой пояс пользователя. Список идентификаторов временных зон, которые используются в системе, доступен на странице wikipedia.org.
61
+ property :timezone
62
+
63
+ # @return [String] Язык интерфейса пользователя. RU - русский, EN - английский.
64
+ property :ui_language
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,252 @@
1
+ module Moneta
2
+ module Api
3
+ module Types
4
+ module Profile
5
+ class Organization < HashEntity
6
+ # @return [String] ID пользователя в системе МОНЕТА.РУ.
7
+ property :unitid
8
+
9
+ # @return [String] Тип партнера [резидент/нерезидент], если нет значения - партнер старого формата, записывается при регистрации партнера.
10
+ property :rf_resident
11
+
12
+ # @return [String] Цель установления и предполагаемый характер деловых отношений с НКО.
13
+ property :goal_and_business_relationships
14
+
15
+ # @return [String] Планируемые ежемесячные обороты.
16
+ property :planned_turnovers
17
+
18
+ # @return [String] Планируемые плательщики.
19
+ property :planned_payers
20
+
21
+ # @return [String] Тарифный план [PAY_MYSELF, PAY_TOGETHER, ZKH, NOT_RF_RESIDENT], задается при регистрации партнера.
22
+ property :tariff
23
+
24
+ # @return [String] Организационно-правовая форма [организация или ИП], задается при регистрации партнера-нерезидента.
25
+ property :incorporation_form_ru
26
+
27
+ # @return [String] Тип юридического лица (для организации).
28
+ property :legal_person_ru
29
+
30
+ # @return [String] Подробности по типу юридического лица (для организации).
31
+ property :legal_person_details_ru
32
+
33
+ # @return [String] Название на иностранном языке.
34
+ property :international_name
35
+
36
+ # @return [String] Псевдоним.
37
+ property :alias
38
+
39
+ # @return [String] Полное название организации или ФИО индивидуального предпринимателя, задается при регистрации партнера.
40
+ property :organization_name
41
+
42
+ # @return [String] Сокращенное название организации, задается при регистрации партнера.
43
+ property :organization_name_short
44
+
45
+ # @return [String] Должность руководителя (для организации).
46
+ property :position_director
47
+
48
+ # @return [String] Детали для должности директора (для организации).
49
+ property :position_director_details
50
+
51
+ # @return [String] Документ, на основании которого действует директор (для организации).
52
+ property :acting_document
53
+
54
+ # @return [String] Подробности по документу, на основании которого действует директор (для организации).
55
+ property :position_director_details
56
+
57
+ # @return [String] Номер (доверенность, для организации).
58
+ property :attorney_number_ru
59
+
60
+ # @return [String] Дата от (доверенность, для организации).
61
+ property :attorney_date_from_ru
62
+
63
+ # @return [String] Дата срок действия до (доверенность, для организации).
64
+ property :attorney_date_to_ru
65
+
66
+ # @return [String] ФИО для подписи в договоре (для организации).
67
+ property :agreement_signer_fio
68
+
69
+ # @return [String] Дата (свидетельство о регистрации).
70
+ property :registration_date_ru
71
+
72
+ # @return [String] Серия (свидетельство о регистрации).
73
+ property :registration_series_ru
74
+
75
+ # @return [String] Номер (свидетельство о регистрации).
76
+ property :registration_number_ru
77
+
78
+ # @return [String] Наименование регистрирующего органа (свидетельство о регистрации).
79
+ property :registration_authority_ru
80
+
81
+ # @return [String] Место государственной регистрации (свидетельство о регистрации).
82
+ property :registration_state_place_ru
83
+
84
+ # @return [String] ФИО для подписи в договоре (для ИП).
85
+ property :agreement_signer_fio_ie
86
+
87
+ # @return [String] ФИО контакта по финансовым вопросам.
88
+ property :fio_accountant
89
+
90
+ # @return [String] Должность контакта по финансовым вопросам.
91
+ property :position_accountant
92
+
93
+ # @return [String] ФИО контакта по техническим вопросам.
94
+ property :fio_contact
95
+
96
+ # @return [String] Должность контакта по техническим вопросам.
97
+ property :position_contact
98
+
99
+ # @return [String] Коллегиальный орган управления (исполнительный орган).
100
+ property :jointGoverning_body
101
+
102
+ # @return [String] ФИО и должность членов коллегиального органа.
103
+ property :joint_body_members
104
+
105
+ # @return [String] Вид деятельности для категории "Другое".
106
+ property :business_activity
107
+
108
+ # @return [String] Url сайта, задается при регистрации партнера.
109
+ property :url
110
+
111
+ # @return [String] Откуда Вы узнали.
112
+ property :where_from_do_you_know
113
+
114
+ # @return [String] Подробности, откуда Вы узнали.
115
+ property :where_from_do_you_know_details
116
+
117
+ # @return [String] Промо-код, задается при регистрации партнера.
118
+ property :promocode
119
+
120
+ # @return [String] Номер ИНН, задается при регистрации партнера-резидента.
121
+ property :inn
122
+
123
+ # @return [String] ФИО руководителя.
124
+ property :fio_director
125
+
126
+ # @return [String] Контактный телефон директора.
127
+ property :phone_director
128
+
129
+ # @return [String] Адрес постоянно действующего органа управления.
130
+ property :legal_address
131
+
132
+ # @return [String] Почтовый адрес.
133
+ property :post_address
134
+
135
+ # @return [String] Контактный телефон.
136
+ property :phone_contact
137
+
138
+ # @return [String] Телефон по финансовым вопросам.
139
+ property :phone_accountant
140
+
141
+ # @return [String] Телефон по техническим вопросам.
142
+ property :phone_support
143
+
144
+ # @return [String] Факс.
145
+ property :fax
146
+
147
+ # @return [String] Контактный e-mail, задается при регистрации партнера.
148
+ property :contact_email
149
+
150
+ # @return [String] E-mail финансовой службы.
151
+ property :finance_email
152
+
153
+ # @return [String] E-mail технической поддержки.
154
+ property :technical_email
155
+
156
+ # @return [String] Часовой пояс пользователя. Список идентификаторов временных зон, которые используются в системе, доступен на странице wikipedia.org.
157
+ property :timezone
158
+
159
+ # @return [String] язык интерфейса пользователя. RU - русский, EN - английский.
160
+ property :ui_language
161
+
162
+ # @return [String] Аадрес электронной почты.
163
+ property :email_for_notifications
164
+
165
+ # @return [String] Статус "Содержимое сайта / товары и услуги соответствуют требованиям законодательства РФ и страны регистрации".
166
+ property :partner_conditions_laws
167
+
168
+ # @return [String] Статус "Содержимое сайта соответствует общепринятым морально-этическим нормам".
169
+ property :partner_conditions_ethical
170
+
171
+ # @return [String] Статус "Товары или услуги имеют исчерпывающее описание, не подразумевающее двоякое толкование".
172
+ property :partner_conditions_full_desc
173
+
174
+ # @return [String] Статус "Сайт не размещён на бесплатном хостинге".
175
+ property :partner_conditions_hosting
176
+
177
+ # @return [String] Статус "На сайте присутствует информация о получателе платежей, доступная без регистрации плательщика".
178
+ property :partner_conditions_payee
179
+
180
+ # @return [String] Статус "На сайте присутствует контактная информация для плательщиков, доступная без регистрации".
181
+ property :partner_conditions_payer
182
+
183
+ # @return [String] Статус "Сайт полностью функционален и заполнен контентом".
184
+ property :partner_conditions_site
185
+
186
+ # @return [String] Статус "Сайт содержит доступную без регистрации информацию о том, что оплата происходит с использованием сервиса PayAnyWay".
187
+ property :partner_conditions_paw_info
188
+
189
+ # @return [String] Статус "Описание порядка и процесса оплаты, а также информация о временном промежутке между оплатой и отгрузкой (доставкой) товара или предоставлением услуги доступны без регистрации".
190
+ property :partner_conditions_payment_info
191
+
192
+ # @return [String] Статус "Все необходимые данные внесены и являются актуальными".
193
+ property :partner_conditions_correct_data
194
+
195
+ # @return [String] Статус "На сайте размещены документы, необходимые для совершения сделки между интернет-магазином и клиентами в соответствии с требованиями Законодательства РФ".
196
+ property :partner_conditions_documents
197
+
198
+ # @return [String] Подробности для "Содержимое сайта / товары и услуги соответствуют требованиям законодательства РФ и страны регистрации".
199
+ property :partner_conditions_laws_details
200
+
201
+ # @return [String] Подробности для "Содержимое сайта соответствует общепринятым морально-этическим нормам".
202
+ property :partner_conditions_ethical_details
203
+
204
+ # @return [String] Подробности для "Товары или услуги имеют исчерпывающее описание, не подразумевающее двоякое толкование".
205
+ property :partner_conditions_full_desc_details
206
+
207
+ # @return [String] Подробности для "Сайт не размещён на бесплатном хостинге".
208
+ property :partner_conditions_hosting_details
209
+
210
+ # @return [String] Подробности для "На сайте присутствует информация о получателе платежей, доступная без регистрации плательщика".
211
+ property :partner_conditions_payee_details
212
+
213
+ # @return [String] Подробности для "На сайте присутствует контактная информация для плательщиков, доступная без регистрации".
214
+ property :partner_conditions_payer_details
215
+
216
+ # @return [String] Подробности для "Сайт полностью функционален и заполнен контентом".
217
+ property :partner_conditions_site_details
218
+
219
+ # @return [String] Подробности для "Сайт содержит доступную без регистрации информацию о том, что оплата происходит с использованием сервиса PayAnyWay".
220
+ property :partner_conditions_paw_info_details
221
+
222
+ # @return [String] Подробности для "Описание порядка и процесса оплаты, а также информация о временном промежутке между оплатой и отгрузкой (доставкой) товара или предоставлением услуги доступны без регистрации".
223
+ property :partner_conditions_payment_info_details
224
+
225
+ # @return [String] Подробности для "Все необходимые данные внесены и являются актуальными".
226
+ property :partner_conditions_correct_data_details
227
+
228
+ # @return [String] Подробности для "На сайте размещены документы, необходимые для совершения сделки между интернет-магазином и клиентами в соответствии с требованиями Законодательства РФ".
229
+ property :partner_conditions_documents_details
230
+
231
+ # @return [String] Дата отправки Заявления.
232
+ property :agreement_sent_date
233
+
234
+ # @return [String] Способ отправки Заявления.
235
+ property :agreement_sent_method
236
+
237
+ # @return [String] Вид капитала.
238
+ property :capital_type
239
+
240
+ # @return [String] Размер зарегистрированного капитала.
241
+ property :registered_capital_size
242
+
243
+ # @return [String] Размер оплаченного капитала.
244
+ property :paid_capital_size
245
+
246
+ # @return [String] Сведения о наличии задолженности перед бюджетом по налогам и сборам.
247
+ property :budget_arrears_absense
248
+ end
249
+ end
250
+ end
251
+ end
252
+ end
@@ -16,7 +16,7 @@ module Moneta
16
16
  property :error
17
17
 
18
18
  # @return [Moneta::Api::Types::TransactionResponseType]
19
- property :transaction, Types::TransactionResponseType
19
+ property :transaction, type: Types::TransactionResponseType
20
20
 
21
21
  # @return [String] Поле содержит код ошибки. Поле заполнено только тогда, когда есть описание ошибки в поле error.
22
22
  # Для получения этого поля в запросе необходимо выставлять атрибут version равный или больше VERSION_2.
@@ -44,7 +44,7 @@ module Moneta
44
44
 
45
45
  # @return [OperationInfo] Набор полей, которые необходимо сохранить в качестве атрибутов операции. Значения дат в формате dd.MM.yyyy HH:mm:ss
46
46
  # / Key-value pairs that will be saved as a transaction attributes. Use format dd.MM.yyyy HH:mm:ss for date values
47
- property :operation_info, Moneta::Api::Types::OperationInfo
47
+ property :operation_info, type: Moneta::Api::Types::OperationInfo
48
48
 
49
49
  # @return [String] Запрос для платежного пароля
50
50
  # / Payment password challenge
@@ -19,7 +19,7 @@ module Moneta
19
19
  # @return [ForecastTransactionResponseType] Если операция может быть проведена, то в данном поле содержатся детали операции.
20
20
  # Иначе - это поле пустое.
21
21
  # / Additional information if transaction may be processed. Otherwise empty.
22
- property :forecast, ForecastTransactionResponseType
22
+ property :forecast, type: ForecastTransactionResponseType
23
23
 
24
24
  # @return [String] Поле содержит код ошибки. Поле заполнено только тогда, когда есть описание ошибки в поле description.
25
25
  # Для получения этого поля в запросе необходимо выставлять атрибут version равный или больше VERSION_2.
@@ -1,5 +1,5 @@
1
1
  module Moneta
2
2
  module Api
3
- VERSION = '1.0.4'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
data/lib/moneta/api.rb CHANGED
@@ -5,6 +5,7 @@ require 'moneta/core_ext/string'
5
5
  require 'moneta/api/service_methods'
6
6
  require 'moneta/api/service'
7
7
  require 'moneta/api/data_mapper'
8
+ require 'moneta/api/key_value_serializer'
8
9
 
9
10
  require 'moneta/api/types/account_access_info.rb'
10
11
  require 'moneta/api/types/account_info.rb'
@@ -17,6 +18,8 @@ require 'moneta/api/types/cancel_transaction_response_type.rb'
17
18
  require 'moneta/api/types/confirm_transaction_batch_request_type.rb'
18
19
  require 'moneta/api/types/confirm_transaction_request_type.rb'
19
20
  require 'moneta/api/types/entity.rb'
21
+ require 'moneta/api/types/hash_entity.rb'
22
+ require 'moneta/api/types/key_value_entity.rb'
20
23
  require 'moneta/api/types/find_operations_list_request_filter.rb'
21
24
  require 'moneta/api/types/forecast_transaction_response_type.rb'
22
25
  require 'moneta/api/types/invoice_batch_request_type.rb'
@@ -32,7 +35,9 @@ require 'moneta/api/types/transaction_request_type.rb'
32
35
  require 'moneta/api/types/transaction_response_type.rb'
33
36
  require 'moneta/api/types/verify_transaction_response_type.rb'
34
37
  require 'moneta/api/types/verify_transfer_response_type.rb'
35
-
38
+ require 'moneta/api/types/bank_account_type'
39
+ require 'moneta/api/types/profile/client'
40
+ require 'moneta/api/types/profile/organization'
36
41
 
37
42
  require 'moneta/api/requests/authorise_transaction_batch_request.rb'
38
43
  require 'moneta/api/requests/authorise_transaction_request.rb'
@@ -54,6 +59,14 @@ require 'moneta/api/requests/transfer_request.rb'
54
59
  require 'moneta/api/requests/verify_payment_request.rb'
55
60
  require 'moneta/api/requests/verify_transaction_request.rb'
56
61
  require 'moneta/api/requests/verify_transfer_request.rb'
62
+ require 'moneta/api/requests/create_profile_request'
63
+ require 'moneta/api/requests/edit_profile_request'
64
+ require 'moneta/api/requests/create_bank_account_request'
65
+ require 'moneta/api/requests/edit_bank_account_request'
66
+ require 'moneta/api/requests/profile/create_client_profile_request'
67
+ require 'moneta/api/requests/profile/edit_client_profile_request'
68
+ require 'moneta/api/requests/profile/create_organization_profile_request'
69
+ require 'moneta/api/requests/profile/edit_organization_profile_request'
57
70
 
58
71
  require 'moneta/api/responses/authorise_transaction_batch_response.rb'
59
72
  require 'moneta/api/responses/authorise_transaction_response.rb'
@@ -78,5 +91,9 @@ require 'moneta/api/responses/transfer_response.rb'
78
91
  require 'moneta/api/responses/verify_payment_response.rb'
79
92
  require 'moneta/api/responses/verify_transaction_response.rb'
80
93
  require 'moneta/api/responses/verify_transfer_response.rb'
94
+ require 'moneta/api/responses/create_profile_response.rb'
95
+ require 'moneta/api/responses/edit_profile_response.rb'
96
+ require 'moneta/api/responses/create_bank_account_response.rb'
97
+ require 'moneta/api/responses/edit_bank_account_response.rb'
81
98
 
82
99
  require 'moneta/api/response_factory'
data/moneta-api.gemspec CHANGED
@@ -6,8 +6,8 @@ require 'moneta/api/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'moneta-api'
8
8
  spec.version = Moneta::Api::VERSION
9
- spec.authors = ['ssnikolay']
10
- spec.email = ['ssnikolay@gmail.com']
9
+ spec.authors = ['ssnikolay', 'llxff']
10
+ spec.email = ['ssnikolay@gmail.com', 'll.wg.bin@gmail.com']
11
11
  spec.summary = 'МОНЕТА.РУ (MONETA.MerchantAPI.v2)'
12
12
  spec.description = 'МОНЕТА.РУ (MONETA.MerchantAPI.v2).'
13
13
  spec.homepage = 'https://www.moneta.ru/doc/MONETA.MerchantAPI.v2.ru.pdf'
@@ -0,0 +1,20 @@
1
+ describe Moneta::Api::Requests::CreateBankAccountRequest, vcr: true do
2
+ include_context 'moneta'
3
+
4
+ let(:params) do
5
+ {
6
+ attribute: {
7
+ bik: '044525225',
8
+ account: '30301810000006000001'
9
+ }
10
+ }
11
+ end
12
+
13
+ let(:request) { described_class.new }
14
+
15
+ before { request.fill(params) }
16
+
17
+ subject { service.create_bank_account(request) }
18
+
19
+ its(:id) { is_expected.to be_a_bank_account_id }
20
+ end
@@ -0,0 +1,23 @@
1
+ describe Moneta::Api::Requests::EditBankAccountRequest, vcr: true do
2
+ include_context 'moneta'
3
+
4
+ let(:id) { '1182' }
5
+ let(:request) { described_class.new }
6
+
7
+ let(:params) do
8
+ {
9
+ id: id,
10
+ attribute: {
11
+ bik: '044525225',
12
+ account: '30301810000006000001',
13
+ bank: 'ФИЛИАЛ "БАЙКОНУР" ОАО "СОБИНБАНК"'
14
+ }
15
+ }
16
+ end
17
+
18
+ before { request.fill(params) }
19
+
20
+ subject { service.edit_bank_account(request) }
21
+
22
+ its(:success) { is_expected.to be_truthy }
23
+ end
@@ -0,0 +1,29 @@
1
+ describe Moneta::Api::Requests::Profile::CreateClientProfileRequest, vcr: true do
2
+ include_context 'moneta'
3
+
4
+ let(:params) { {} }
5
+ let(:request) { described_class.new }
6
+
7
+ before { request.fill(params) }
8
+
9
+ describe 'request' do
10
+ subject { request }
11
+
12
+ its(:profile_type) { is_expected.to eq 'client' }
13
+ end
14
+
15
+ describe 'response' do
16
+ let(:params) do
17
+ {
18
+ profile: {
19
+ last_name: 'Мономах',
20
+ first_name: 'Владимир'
21
+ }
22
+ }
23
+ end
24
+
25
+ subject { service.create_profile(request) }
26
+
27
+ its(:profile_id) { is_expected.to be_a_moneta_id }
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ describe Moneta::Api::Requests::Profile::CreateOrganizationProfileRequest, vcr: true do
2
+ include_context 'moneta'
3
+
4
+ let(:params) { {} }
5
+ let(:request) { described_class.new }
6
+
7
+ before { request.fill(params) }
8
+
9
+ describe 'request' do
10
+ subject { request }
11
+
12
+ its(:profile_type) { is_expected.to eq 'organization' }
13
+ end
14
+
15
+ describe 'response' do
16
+ let(:params) do
17
+ {
18
+ profile: {
19
+ fio_director: 'Peter Pan',
20
+ organization_name: 'The Lost Boys'
21
+ }
22
+ }
23
+ end
24
+
25
+ subject { service.create_profile(request) }
26
+
27
+ its(:profile_id) { is_expected.to be_a_moneta_id }
28
+ end
29
+ end
@@ -0,0 +1,22 @@
1
+ describe Moneta::Api::Requests::Profile::EditClientProfileRequest, vcr: true do
2
+ include_context 'moneta'
3
+
4
+ let(:unit_id) { 42868 }
5
+ let(:request) { described_class.new }
6
+
7
+ let(:params) do
8
+ {
9
+ unit_id: unit_id,
10
+ profile: {
11
+ last_name: 'Мономах',
12
+ first_name: 'Владимир'
13
+ }
14
+ }
15
+ end
16
+
17
+ before { request.fill(params) }
18
+
19
+ subject { service.edit_profile(request) }
20
+
21
+ its(:success) { is_expected.to be_truthy }
22
+ end
@@ -0,0 +1,22 @@
1
+ describe Moneta::Api::Requests::Profile::EditOrganizationProfileRequest, vcr: true do
2
+ include_context 'moneta'
3
+
4
+ let(:unit_id) { 42871 }
5
+ let(:request) { described_class.new }
6
+
7
+ let(:params) do
8
+ {
9
+ unit_id: unit_id,
10
+ profile: {
11
+ fio_director: 'Peter Pen',
12
+ organization_name: 'The Lost Boys'
13
+ }
14
+ }
15
+ end
16
+
17
+ before { request.fill(params) }
18
+
19
+ subject { service.edit_profile(request) }
20
+
21
+ its(:success) { is_expected.to be_truthy }
22
+ end
@@ -0,0 +1,19 @@
1
+ describe Moneta::Api::Types::Profile::Client do
2
+ let(:params) do
3
+ {
4
+ unitid: 1
5
+ }
6
+ end
7
+ let(:attributes_hash) { described_class.build(params).to_hash }
8
+
9
+ subject { attributes_hash }
10
+
11
+ its(['attribute']) { is_expected.to be_a Array }
12
+
13
+ describe 'attribute' do
14
+
15
+ subject { attributes_hash['attribute'] }
16
+
17
+ its(:first) { is_expected.to eq({ 'key' => 'UNITID', 'value' => 1 }) }
18
+ end
19
+ end
data/spec/spec_helper.rb CHANGED
@@ -19,6 +19,16 @@ config = YAML.load(File.read(File.join(Dir.pwd, 'spec/support/moneta.yml')))
19
19
  $username = config['username']
20
20
  $password = config['password']
21
21
 
22
+ class WebHelper
23
+ def self.with_real_connection
24
+ FakeWeb.allow_net_connect = true
25
+
26
+ VCR.turned_off do
27
+ yield
28
+ end
29
+ end
30
+ end
31
+
22
32
  VCR.configure do |config|
23
33
  config.cassette_library_dir = File.join(Dir.pwd, 'spec/vcr')
24
34
  config.hook_into :fakeweb
@@ -2,6 +2,12 @@ require 'rspec/expectations'
2
2
 
3
3
  RSpec::Matchers.define :be_a_moneta_id do
4
4
  match do |actual|
5
- Integer(actual) && actual.length > 5
5
+ Integer(actual) && actual.length >= 5
6
+ end
7
+ end
8
+
9
+ RSpec::Matchers.define :be_a_bank_account_id do
10
+ match do |actual|
11
+ Integer(actual) && actual.length == 4
6
12
  end
7
13
  end