torg_mailru_api 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -45,7 +45,6 @@ module TorgMailruApi
45
45
 
46
46
  module APIRequest
47
47
 
48
-
49
48
  class DeepOpenStruct < OpenStruct
50
49
 
51
50
  def to_h
@@ -89,6 +88,7 @@ module TorgMailruApi
89
88
  end
90
89
  end
91
90
 
91
+ # Рекурсивная декамелизация ключей хеша
92
92
  def decamelize_hash_keys value
93
93
  case value
94
94
  when Array
@@ -102,12 +102,24 @@ module TorgMailruApi
102
102
  end
103
103
  end
104
104
 
105
+ # Запрос к API
106
+ # @param [String] resource Ресурс API, к которому осуществляется запрос
107
+ # @param [Hash] params Хеш параметров
108
+ # @return [DeepOpenStruct] Результат запроса
105
109
  def get resource, params=nil
106
110
  response = super
107
111
  hash = decamelize_hash_keys response[response.keys.first]
108
112
  DeepOpenStruct.load hash
109
113
  end
110
114
 
115
+ # Вспомогательная функция для преобразования ответа API в листинг
116
+ # @param [String] resource Ресурс API, к которому осуществляется запрос
117
+ # @param [Hash] params Хеш параметров
118
+ # @return [Listing] Листинг
119
+ def listing resource, params=nil
120
+ Listing.new resource, params
121
+ end
122
+
111
123
  end
112
124
 
113
125
  class Listing
@@ -142,313 +154,310 @@ module TorgMailruApi
142
154
  end
143
155
 
144
156
  module APIMethods
145
- def listing resource, params=nil
146
- Listing.new resource, params
147
- end
148
-
149
- ### Товарные категории
150
157
 
151
- ## Список категорий
152
- # Получение списка товарных категорий верхнего уровня.
153
- # Ресурс является геозависимым и в ответе возвращает листинг.
154
- # Входные параметры:
155
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
156
- # geo_id Число Идентификатор региона. Нет Да
157
- # page Число Номер страницы. 1 Нет
158
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. выводятся все результаты Нет
158
+ # @!macro api_method
159
+ # @param [Hash] params Хеш параметров
160
+ # @!macro geodependent
161
+ # @note Ресурс является геозависимым.
162
+ # @option params [Integer] :geo_id Идентификатор региона (обязательно!)
163
+ # @!macro returns_listing
164
+ # @note Ресурс в ответе возвращает листинг.
165
+ # @return [Listing] Листинг
166
+ # @!macro returns_object
167
+ # @return [DeepOpenStruct] Объект
168
+ # @!macro paginated
169
+ # @option params [Integer] :page (1) Номер страницы
170
+ # @option params [Integer] :results_per_page (10) Количество результатов на страницу (max: 30)
171
+ # @!macro default_sort_order
172
+ # @option params [Symbol] :sort_order (:desc) Направление сортировки (:asc — по возрастанию; :desc — по убыванию)
173
+ # @!macro user_location
174
+ # @option params [Float] :latitude Широта точки нахождения пользователя
175
+ # @option params [Float] :longitude Долгота точки нахождения пользователя
176
+ # @!macro category_id
177
+ # @param [Integer] category_id Идентификатор товарной категории
178
+ # @!macro model_id
179
+ # @param [Integer] model_id Идентификатор модели
180
+ # @!macro offer_id
181
+ # @param [Integer] offer_id Идентификатор товарного предложения
182
+ # @!macro seller_id
183
+ # @param [Integer] seller_id Идентификатор магазина
184
+ # @!macro region_id
185
+ # @param [Integer] region_id Идентификатор региона
186
+ # @!macro vendor_id
187
+ # @param [Integer] vendor_id Идентификатор производителя
188
+
189
+ # @!group Товарные категории
190
+
191
+ # Список категорий: получение списка товарных категорий верхнего уровня.
192
+ # @macro api_method
193
+ # @macro geodependent
194
+ # @macro paginated
195
+ # @macro returns_listing
159
196
  def categories params
160
197
  listing "category", params
161
198
  end
162
199
 
163
-
164
- ## Список подкатегорий
165
- # Получение списка подкатегорий для товарной категории.
166
- # Ресурс является геозависимым и в ответе возвращает листинг.
167
- # Входные параметры:
168
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
169
- # geo_id Число Идентификатор региона. Да
170
- # type Строка Фильтрация выходных данных по типу товарной категории: all | model | parameterized | general all Нет
171
- # page Число Номер страницы. 1 Нет
172
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. выводятся все результаты Нет
200
+ # Список подкатегорий: получение списка подкатегорий для товарной категории.
201
+ # @macro api_method
202
+ # @macro geodependent
203
+ # @macro category_id
204
+ # @option params [Symbol] :type (:all) Фильтрация выходных данных по типу товарной категории (:all | :model | :parameterized | :general)
205
+ # @option params [Integer] :page (1) Номер страницы
206
+ # @option params [Integer] :results_per_page (выводятся все результаты) Количество результатов на страницу (max: 30)
207
+ # @macro returns_listing
173
208
  def category_children category_id, params
174
209
  listing "category/#{category_id}/children", params
175
210
  end
176
211
 
177
- ## Информация о категории
178
- # Получение информации о товарной категории.
179
- # Ресурс является геозависимым.
180
- # Входные параметры:
181
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
182
- # geo_id Число Идентификатор региона. Да
212
+ # Информация о категории: получение информации о товарной категории.
213
+ # @macro api_method
214
+ # @macro geodependent
215
+ # @macro category_id
216
+ # @macro returns_object
183
217
  def category category_id, params
184
218
  get "category/#{category_id}", params
185
219
  end
186
220
 
187
- ## Список параметров категории
188
- # Получение списка параметров товарной категории
189
- # Входные параметры:
190
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
191
- # parameter_set Строка Тип набора параметров категории. popular | all popular Нет
221
+ # Список параметров категории: получение списка параметров товарной категории.
222
+ # @macro api_method
223
+ # @macro category_id
224
+ # @option params [Symbol] :parameter_set (:popular) Тип набора параметров категории (:popular популярные; :all — все)
225
+ # @macro returns_object
192
226
  def category_parameters category_id, params=nil
193
227
  get "category/#{category_id}/parameters", params
194
228
  end
195
229
 
196
- ## Список моделей категории
197
- # Получение списка моделей в модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
198
- # Ресурс является геозависимым и в ответе возвращает листинг.
199
- # Входные параметры:
200
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
201
- # geo_id Число Идентификатор региона. Да
202
- # vendor_id Число Идентификатор производителя. Нет
203
- # sort Строка Тип сортировки моделей. date - сортировка по новизне; popular - сортировка по популярности; price - сортировка по цене. popular Нет
204
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
205
- # page Число Номер страницы. 1 Нет
206
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
230
+ # Список моделей категории: получение списка моделей в модельной товарной категории.
231
+ # @note Для обычных категорий ресурс возвращает ошибку.
232
+ # @macro api_method
233
+ # @macro geodependent
234
+ # @macro category_id
235
+ # @option params [Integer] :vendor_id Идентификатор производителя
236
+ # @option params [Symbol] :sort (:popular) Тип сортировки моделей (:date — сортировка по новизне; :popular — сортировка по популярности; :price — сортировка по цене)
237
+ # @macro default_sort_order
238
+ # @macro returns_listing
207
239
  def category_models category_id, params
208
240
  listing "category/#{category_id}/models", params
209
241
  end
210
242
 
211
- ## Список товарных предложений категории
212
- # Получение списка товарных предложений в обычной товарной категории. Для модельных и параметризированных категорий ресурс возвращает ошибку.
213
- # Ресурс является геозависимым и в ответе возвращает листинг.
214
- # Входные параметры:
215
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
216
- # geo_id Число Идентификатор региона. Да
217
- # category_id Число Идентификатор товарной категории. Да
218
- # sort Строка Тип сортировки предложений. auction - по убыванию ставки; price - сортировка по цене. auction Нет
219
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
220
- # page Число Номер страницы. 1 Нет
221
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
243
+ # Список товарных предложений категории: получение списка товарных предложений в обычной товарной категории.
244
+ # @note Для модельных и параметризированных категорий ресурс возвращает ошибку.
245
+ # @macro api_method
246
+ # @macro category_id
247
+ # @macro geodependent
248
+ # @option params [Symbol] :sort (:auction) Тип сортировки предложений (:auction — по убыванию ставки; :price — сортировка по цене)
249
+ # @macro default_sort_order
250
+ # @macro paginated
251
+ # @macro returns_listing
222
252
  def category_offers category_id, params
223
253
  listing "category/#{category_id}/offers", params
224
254
  end
225
255
 
226
- ## Список хитов продаж категории
227
- # Получение списка 50 моделей - хитов продаж модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
228
- # Список отсортирован по степени убывания популярности у покупателей.
229
- # Ресурс является геозависимым.
230
- # Входные параметры:
231
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
232
- # geo_id Число Идентификатор региона. Да
256
+ # Список хитов продаж категории: получение списка 50 моделей-хитов продаж модельной товарной категории.
257
+ # @note Список отсортирован по степени убывания популярности у покупателей.
258
+ # @note Для обычных категорий ресурс возвращает ошибку.
259
+ # @macro api_method
260
+ # @macro category_id
261
+ # @macro geodependent
262
+ # @macro returns_object
233
263
  def category_hits category_id, params
234
- listing "category/#{category_id}/hits", params
235
- end
236
-
237
- # Список новинок категории
238
- # Получение списка моделей в модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
239
- # Ресурс является геозависимым и в ответе возвращает листинг.
240
- # Входные параметры:
241
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
242
- # geo_id Число Идентификатор региона. Да
243
- # sort Строка Тип сортировки моделей. popular - сортировка по популярности; price - сортировка по цене. popular Нет
244
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
245
- # page Число Номер страницы. 1 Нет
246
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
264
+ get "category/#{category_id}/hits", params
265
+ end
266
+
267
+ # Список новинок категории: получение списка моделей в модельной товарной категории.
268
+ # @note Для обычных категорий ресурс возвращает ошибку.
269
+ # @macro api_method
270
+ # @macro category_id
271
+ # @macro geodependent
272
+ # @option params [Symbol] :sort (:popular) Тип сортировки моделей (:popular — сортировка по популярности; :price — сортировка по цене)
273
+ # @macro default_sort_order
274
+ # @macro paginated
275
+ # @macro returns_listing
247
276
  def category_newmodels category_id, params
248
277
  listing "category/#{category_id}/newmodels", params
249
278
  end
250
279
 
280
+ # @!group Модели товаров
251
281
 
252
- ### Модели товаров
253
-
254
- ## Информация о модели
255
- # Получение информации об указанной модели.
256
- # Ресурс является геозависимым.
257
- # Входные параметры:
258
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
259
- # geo_id Число Идентификатор региона Да
282
+ # Информация о модели: получение информации об указанной модели.
283
+ # @macro api_method
284
+ # @macro model_id
285
+ # @macro geodependent
286
+ # @macro returns_object
260
287
  def model model_id, params
261
288
  get "model/#{model_id}", params
262
289
  end
263
290
 
264
- ## Список характеристик модели
265
- # Получение списка характеристик указанной модели.
266
- # Входные параметры:
267
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
268
- # parameter_set Строка popular|all popular Нет
291
+ # Список характеристик модели: получение списка характеристик указанной модели.
292
+ # @macro api_method
293
+ # @macro model_id
294
+ # @option params :parameter_set [Symbol] (:popular) Тип набора параметров категории (:popular популярные, :all — все)
295
+ # @macro returns_object
269
296
  def model_parameters model_id, params=nil
270
297
  get "model/#{model_id}/parameters", params
271
298
  end
272
299
 
273
- # Список предложений модели
274
- # Получение списка товарных предложений указанной модели.
275
- # Ресурс является геозависимым и в ответе возвращает листинг.
276
- # Входные параметры:
277
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
278
- # geo_id Число Идентификатор региона. Да
279
- # sort Строка Тип сортировки предложений.
280
- # price - по цене;
281
- # rating - по рейтингу магазина + цене;
282
- # range - по расстоянию до ближайшей точки продаж (при указании местоположения пользователя);
283
- # auction - по убыванию ставки.
284
- # auction Нет
285
- # sort_order Строка Направление сортировки. Задается только в том случае, если у параметра sort_order указано значение price.
286
- # asc - по возрастанию desc - по убыванию
287
- # если у параметра sort_order указано значение price, сортировка по возрастанию;
288
- # если у параметра sort_order указано значение rating, сортировка по убыванию;
289
- # если у параметра sort_order указано значение range, сортировка по возрастанию.
290
- # Нет
291
- # page Число Номер страницы. 1 Нет
292
- # results_per_page Число Количество результатов на страницу.
293
- # Максимальное значение: 30. 10 Нет
294
- # latitude Число Широта точки нахождения пользователя. Нет
295
- # longitude Число Долгота точки нахождения пользователя. Нет
300
+ # Список предложений модели: получение списка товарных предложений указанной модели.
301
+ # @macro api_method
302
+ # @macro model_id
303
+ # @macro geodependent
304
+ # @option params [Symbol] :sort (:auction) Тип сортировки предложений (:auction по убыванию ставки; :price — по цене,
305
+ # :rating по рейтингу магазина + цене, :range — по расстоянию до ближайшей точки продаж (при указании местоположения пользователя)).
306
+ # * Если у параметра :sort указано значение :price, сортировка по возрастанию;
307
+ # * если у параметра :sort указано значение :rating, сортировка по убыванию;
308
+ # * если у параметра :sort указано значение :range, сортировка по возрастанию.
309
+ # @option params [Symbol] :sort_order (:desc) Направление сортировки (:asc по возрастанию; :desc — по убыванию).
310
+ # Задается только в том случае, если у параметра :sort указано значение :price
311
+ # @macro paginated
312
+ # @macro user_location
313
+ # @macro returns_listing
296
314
  def model_offers model_id, params
297
315
  listing "model/#{model_id}/offers", params
298
316
  end
299
317
 
300
- ## Список точек продаж модели
301
- # Получение списка точек продаж указанной модели.
302
- # Ресурс является геозависимым и в ответе возвращает листинг.
303
- # Входные параметры:
304
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
305
- # geo_id Число Идентификатор региона. Да
306
- # page Число Номер страницы. 1 Нет
307
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
308
- # latitude Число Широта точки нахождения пользователя. Нет
309
- # longitude Число Долгота точки нахождения пользователя. Нет
318
+ # Список точек продаж модели: получение списка точек продаж указанной модели.
319
+ # @macro api_method
320
+ # @macro model_id
321
+ # @macro geodependent
322
+ # @macro paginated
323
+ # @macro user_location
324
+ # @macro returns_listing
310
325
  def model_outlets model_id, params
311
326
  listing "model/#{model_id}/outlets", params
312
327
  end
313
328
 
314
- ### Товарные предложения
329
+ # @!group Товарные предложения
315
330
 
316
- ## Информация о товарном предложении
317
- # Получение расширенной информации об указанном товарном предложении магазина.
331
+ # Информация о товарном предложении: получение расширенной информации об указанном товарном предложении магазина.
332
+ # @macro api_method
333
+ # @macro offer_id
334
+ # @macro returns_object
318
335
  def offer offer_id, params=nil
319
336
  get "offer/#{offer_id}", params
320
337
  end
321
338
 
322
- ### Поиск
323
-
324
- ## Полнотекстовый поиск
325
- # Получение списка моделей и товарных предложений, удовлетворяющих строке запроса.
326
- # Входные параметры:
327
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
328
- # geo_id Число Идентификатор региона. Да
329
- # query Строка Поисковый запрос. Да
330
- # category_id Число Фильтрация результатов поиска по товарной категории. Нет
331
- # seller_id Число Фильтрация результатов поиска по магазину. Нет
332
- # price_min Число Фильтрация результатов поиска по минимальной цене товарных предложений. Нет
333
- # price_max Число Фильтрация результатов поиска по максимальной цене товарных предложений. Нет
334
- # sort Строка Тип сортировки результатов поиска. price - сортировка по возрастанию цены. relevance - по релевантности. relevance Нет
335
- # page Число Номер страницы. 1 Нет
336
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
339
+ # @!group Поиск
340
+
341
+ # Полнотекстовый поиск: получение списка моделей и товарных предложений, удовлетворяющих строке запроса.
342
+ # @macro api_method
343
+ # @macro geodependent
344
+ # @option params [String] :query Поисковый запрос (обязательно!)
345
+ # @option params [Integer] :category_id Фильтрация результатов поиска по товарной категории
346
+ # @option params [Integer] :seller_id Фильтрация результатов поиска по магазину
347
+ # @option params [Integer] :price_min Фильтрация результатов поиска по минимальной цене товарных предложений
348
+ # @option params [Integer] :price_max Фильтрация результатов поиска по максимальной цене товарных предложений
349
+ # @option params [Symbol] :sort (:relevance) Тип сортировки результатов поиска (:price — сортировка по возрастанию цены, :relevance — по релевантности)
350
+ # @macro paginated
351
+ # @macro returns_listing
337
352
  def search params
338
353
  listing "search", params
339
354
  end
340
355
 
341
- ## Параметрический поиск
342
- # Получение списка моделей категории, удовлетворяющих набору заданных параметров.
343
- # Входные параметры:
344
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
345
- # geo_id Число Идентификатор региона. Да
346
- # {parameter_id} Строка Параметр товарной категории.
347
- # В запросе вместо {parameter_id} указыватся id параметра. Список параметров и их id для определенной товарной категории можно получить с помощью ресурса "Список параметров категории".
348
- # Значение зависит от типа выбранного параметра категории:
349
- # тип параметра numeric - числовое значение {value} или числовой диапазон, значения границ которого разделяются запятой {min_value},{max_value};
350
- # тип параметра enum - список идентификаторов допустимых значений параметра, разделенный запятыми, {value1_id},{value2_id},{value3_id}, где {valueN_id} - идентификатор значения;
351
- # тип параметра bool - допустимые значения параметра: true и false. Нет
352
- # sort Строка Тип сортировки результатов поиска. date - по новизне; popular - популярности; price - по цене; popular Нет
353
- # sort_order Строка Направление сортировки по цене. asc - по возрастанию desc - по убыванию desc Нет
354
- # page Число Номер страницы. 1 Нет
355
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
356
+ # Параметрический поиск: получение списка моделей категории, удовлетворяющих набору заданных параметров.
357
+ # @macro api_method
358
+ # @macro geodependent
359
+ # @option params [String] &lt;parameter_id&gt; Параметр товарной категории. В запросе вместо <parameter_id> указыватся id параметра.
360
+ # Список параметров и их id для определенной товарной категории можно получить с помощью ресурса "Список параметров категории".
361
+ # Значение зависит от типа выбранного параметра категории:
362
+ # * тип параметра numeric числовое значение <value> или числовой диапазон, значения границ которого разделяются запятой "<min_value>,<max_value>";
363
+ # * тип параметра enum список идентификаторов допустимых значений параметра, разделенный запятыми, "<value1_id>,<value2_id>,<value3_id>", где <valueN_id> — идентификатор значения;
364
+ # * тип параметра bool допустимые значения параметра: "true" и "false".
365
+ # @option params [Symbol] :sort (:popular) Тип сортировки результатов поиска (:date по новизне; :popular по популярности; :price — по цене)
366
+ # @macro default_sort_order
367
+ # @macro paginated
368
+ # @macro returns_listing
356
369
  def category_filter category_id, params
357
370
  listing "category/#{category_id}/filter", params
358
371
  end
359
372
 
360
- ### Отзывы
373
+ # @!group Отзывы
361
374
 
362
- ## Отзывы о магазине
363
- # Получение списка отзывов о магазине.
364
- # Входные параметры:
365
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
366
- # sort Строка Тип сортировки отзывов. mark - по оценке пользователя; date - по дате добавления отзыва; valuable - по оценке полезности отзыва. date Нет
367
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
368
- # mark Число Фильтрация отзывов по оценке магазина. Возможные значения: 1 2 3 4 5 all - все значения all Нет
369
- # page Число Номер страницы. 1 Нет
370
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 0 (выводятся все результаты) Нет
375
+ # Отзывы о магазине: получение списка отзывов о магазине.
376
+ # @macro api_method
377
+ # @option params [Symbol] :sort (:date) Тип сортировки отзывов (:mark — по оценке пользователя; :date — по дате добавления отзыва; :valuable — по оценке полезности отзыва)
378
+ # @macro default_sort_order
379
+ # @option params [Integer,Symbol] :mark (:all) Фильтрация отзывов по оценке магазина (1, 2, 3, 4, 5; :all все значения)
380
+ # @option params [Integer] :page (1) Номер страницы
381
+ # @option params [Integer] :results_per_page (выводятся все результаты) Количество результатов на страницу (max: 30)
382
+ # @macro returns_listing
371
383
  def seller_reviews seller_id, params
372
384
  listing "seller/#{seller_id}/reviews", params
373
385
  end
374
386
 
375
- ### Магазины
387
+ # @!group Магазины
376
388
 
377
- ## Информация о магазине
378
- # Получение информации о выбранном магазине.
389
+ # Информация о магазине: получение информации о выбранном магазине.
390
+ # @macro seller_id
391
+ # @macro returns_object
379
392
  def seller seller_id
380
393
  get "seller/#{seller_id}"
381
394
  end
382
395
 
383
- ## Список точек продаж магазина
384
- # Получение списка точек продаж выбранного магазина.
385
- # Ресурс является геозависимым и в ответе возвращает листинг.
386
- # Входные параметры:
387
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
388
- # geo_id Число Идентификатор региона. Да
389
- # page Число Номер страницы. 1 Нет
390
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
391
- # latitude Число Широта точки нахождения пользователя. Нет
392
- # longitude Число Долгота точки нахождения пользователя. Нет
396
+ # Список точек продаж магазина: получение списка точек продаж выбранного магазина.
397
+ # @macro api_method
398
+ # @macro seller_id
399
+ # @macro geodependent
400
+ # @macro paginated
401
+ # @macro user_location
402
+ # @macro returns_listing
393
403
  def seller_outlets seller_id, params
394
404
  listing "seller/#{seller_id}/outlets", params
395
405
  end
396
406
 
397
- ### Производители
407
+ # @!group Производители
398
408
 
399
- ## Список производителей
400
- # Получение списка производителей, товары которых представлены в каталоге моделей на Товарах@Mail.Ru
401
- # Ресурс в ответе возвращает листинг.
402
- # Входные параметры:
403
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
404
- # category_id Число Идентификатор товарной категории, для которой нужно получить список производителей. Нет
405
- # page Число Номер страницы. 1 Нет
406
- # results_per_page Число Количество результатов на страницу.
407
- # Максимальное значение: 30. 0 (выводятся все результаты) Нет
408
- def vendors
409
+ # Список производителей: получение списка производителей, товары которых представлены в каталоге моделей на Товарах@Mail.Ru
410
+ # @option params [Integer] :category_id Идентификатор товарной категории, для которой нужно получить список производителей
411
+ # @option params [Integer] :page (1) Номер страницы
412
+ # @option params [Integer] :results_per_page (выводятся все результаты) Количество результатов на страницу (max: 30)
413
+ # @macro returns_listing
414
+ def vendors params=nil
409
415
  listing "vendor"
410
416
  end
411
417
 
412
- ## Информация о производителе
413
- # Получение информации о производителе.
414
- def vendor vendor_id, params=nil
418
+ # Информация о производителе: получение информации о производителе.
419
+ # @macro vendor_id
420
+ # @macro returns_object
421
+ def vendor vendor_id
415
422
  get "vendor/#{vendor_id}"
416
423
  end
417
424
 
418
- ### Геоинформация
425
+ # @!group Геоинформация
419
426
 
420
- ## Список регионов
421
- # Получение списка регионов верхнего уровня.
422
- # Ресурс в ответе возвращает листинг.
423
- # Входные параметры:
424
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
425
- # page Число Номер страницы. 1 Нет
426
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
427
+ # Список регионов: получение списка регионов верхнего уровня.
428
+ # @macro api_method
429
+ # @macro paginated
430
+ # @macro returns_listing
427
431
  def regions params=nil
428
432
  listing "regions", params
429
433
  end
430
434
 
431
- ## Список дочерних регионов
432
- # Получение списка дочерних регионов для выбранного региона.
433
- # Ресурс в ответе возвращает листинг.
435
+ # Список дочерних регионов: получение списка дочерних регионов для выбранного региона.
436
+ # @macro api_method
437
+ # @macro region_id
438
+ # @macro paginated
439
+ # @macro returns_listing
434
440
  def region_children region_id, params=nil
435
441
  listing "region/#{region_id}/children", params
436
442
  end
437
443
 
438
- ## Информация о регионе
439
- # Получение информации о выбранном регионе.
440
- # Ошибка в документации: Ресурс в ответе НЕ возвращает листинг.
444
+ # Информация о регионе: получение информации о выбранном регионе.
445
+ # @macro region_id
446
+ # @macro returns_object
441
447
  def region region_id
442
448
  get "region/#{region_id}"
443
449
  end
444
450
 
445
- ## Текстовый поиск региона
446
- # Получение списка регионов, удовлетворяющих строке запроса.
447
- # Ошибка в документации: Ресурс в ответе НЕ возвращает листинг.
451
+ # Текстовый поиск региона: получение списка регионов, удовлетворяющих строке запроса.
452
+ # @option params [String] :query Полное или частичное название региона (обязательно!)
453
+ # @option params [Integer] :total (5) Количество результатов (max: 10)
454
+ # @macro returns_object
448
455
  def region_suggest params
449
456
  get "region/suggest", params
450
457
  end
451
458
 
459
+ # @!endgroup
460
+
452
461
  end
453
462
 
454
463
  extend Configuration
@@ -1,4 +1,4 @@
1
1
  module TorgMailruApi
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  API_VERSION = "1.0"
4
4
  end
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "yard"
24
+ spec.add_development_dependency "redcarpet"
23
25
 
24
26
  spec.add_runtime_dependency 'faraday', '~> 0.8.8'
25
27
  spec.add_runtime_dependency 'faraday_middleware', '~> 0.9.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torg_mailru_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,6 +43,38 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: yard
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: redcarpet
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
46
78
  - !ruby/object:Gem::Dependency
47
79
  name: faraday
48
80
  requirement: !ruby/object:Gem::Requirement