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.
- 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
|