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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/lib/moneta/api/data_mapper.rb +9 -3
- data/lib/moneta/api/key_value_serializer.rb +16 -0
- data/lib/moneta/api/requests/create_bank_account_request.rb +28 -0
- data/lib/moneta/api/requests/create_profile_request.rb +29 -0
- data/lib/moneta/api/requests/edit_bank_account_request.rb +20 -0
- data/lib/moneta/api/requests/edit_profile_request.rb +25 -0
- data/lib/moneta/api/requests/profile/create_client_profile_request.rb +26 -0
- data/lib/moneta/api/requests/profile/create_organization_profile_request.rb +26 -0
- data/lib/moneta/api/requests/profile/edit_client_profile_request.rb +16 -0
- data/lib/moneta/api/requests/profile/edit_organization_profile_request.rb +16 -0
- data/lib/moneta/api/requests/refund_request.rb +1 -1
- data/lib/moneta/api/requests/verify_transaction_request.rb +1 -1
- data/lib/moneta/api/responses/authorise_transaction_batch_response.rb +1 -1
- data/lib/moneta/api/responses/cancel_transaction_batch_response.rb +1 -1
- data/lib/moneta/api/responses/confirm_transaction_batch_response.rb +1 -1
- data/lib/moneta/api/responses/create_bank_account_response.rb +13 -0
- data/lib/moneta/api/responses/create_profile_response.rb +18 -0
- data/lib/moneta/api/responses/edit_bank_account_response.rb +18 -0
- data/lib/moneta/api/responses/edit_profile_response.rb +18 -0
- data/lib/moneta/api/responses/find_account_by_alias_response.rb +1 -1
- data/lib/moneta/api/responses/find_account_by_id_response.rb +1 -1
- data/lib/moneta/api/responses/find_accounts_list_response.rb +1 -1
- data/lib/moneta/api/responses/get_operation_details_by_id_response.rb +1 -1
- data/lib/moneta/api/responses/invoice_batch_response.rb +1 -1
- data/lib/moneta/api/service_methods.rb +25 -0
- data/lib/moneta/api/types/account_info.rb +1 -1
- data/lib/moneta/api/types/bank_account_type.rb +62 -0
- data/lib/moneta/api/types/cancel_transaction_batch_response_type.rb +1 -1
- data/lib/moneta/api/types/hash_entity.rb +14 -0
- data/lib/moneta/api/types/key_value_entity.rb +13 -0
- data/lib/moneta/api/types/operation_info.rb +1 -1
- data/lib/moneta/api/types/operation_info_batch_response_type.rb +1 -1
- data/lib/moneta/api/types/operation_info_list.rb +1 -1
- data/lib/moneta/api/types/payment_request_type.rb +1 -1
- data/lib/moneta/api/types/profile/client.rb +69 -0
- data/lib/moneta/api/types/profile/organization.rb +252 -0
- data/lib/moneta/api/types/transaction_batch_response_type.rb +1 -1
- data/lib/moneta/api/types/transaction_request_type.rb +1 -1
- data/lib/moneta/api/types/verify_transfer_response_type.rb +1 -1
- data/lib/moneta/api/version.rb +1 -1
- data/lib/moneta/api.rb +18 -1
- data/moneta-api.gemspec +2 -2
- data/spec/lib/moneta/api/requests/create_bank_account_request_spec.rb +20 -0
- data/spec/lib/moneta/api/requests/edit_bank_account_request_spec.rb +23 -0
- data/spec/lib/moneta/api/requests/profile/create_client_profile_request_spec.rb +29 -0
- data/spec/lib/moneta/api/requests/profile/create_organization_profile_request_spec.rb +29 -0
- data/spec/lib/moneta/api/requests/profile/edit_client_profile_request_spec.rb +22 -0
- data/spec/lib/moneta/api/requests/profile/edit_organization_profile_request_spec.rb +22 -0
- data/spec/lib/moneta/api/types/profile/client_spec.rb +19 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/support/matchers.rb +7 -1
- data/spec/vcr/moneta_api_requests_createbankaccountrequest/id_.yml +13707 -0
- data/spec/vcr/moneta_api_requests_editbankaccountrequest/success_.yml +13708 -0
- data/spec/vcr/moneta_api_requests_profile_createclientprofilerequest/response_.yml +13711 -0
- data/spec/vcr/moneta_api_requests_profile_createclientprofilerequest/response_profile_id_.yml +13707 -0
- data/spec/vcr/moneta_api_requests_profile_createorganizationprofilerequest/response_profile_id_.yml +13709 -0
- data/spec/vcr/moneta_api_requests_profile_editclientprofilerequest/_with_real_connection_true_.yml +13725 -0
- data/spec/vcr/moneta_api_requests_profile_editclientprofilerequest/success_.yml +13707 -0
- data/spec/vcr/moneta_api_requests_profile_editorganizationprofilerequest/success_.yml +13709 -0
- 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.
|
data/lib/moneta/api/version.rb
CHANGED
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
|
data/spec/support/matchers.rb
CHANGED
@@ -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
|
+
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
|