moneta-api 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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