Module: Yclients::Api::Companies
- Included in:
- Client
- Defined in:
- lib/yclients/api/companies.rb
Constant Summary collapse
- URL1 =
'https://api.yclients.com/api/v1/company'- URL2 =
'https://api.yclients.com/api/v1/companies'
Instance Method Summary collapse
-
#companies(args = {}) ⇒ Object
group_id (Number, 83): ID сети компаний.
-
#company(id, args = {}) ⇒ Object
for_booking (Number, 1): Если нужно получить поле next_slot по каждой компании show_groups (Number, 1): Включить в обьект компании список сетей в которые входит эта компания.
Instance Method Details
#companies(args = {}) ⇒ Object
group_id (Number, 83): ID сети компаний. Фильтр по идентификатору сети компаний Default: 83 my (Number, 1): Только для авторизованного пользователя. Если нужно компании, на управление которыми пользователь имеет права active (Number, 1): Если нужно получить только активные для онлайн-записи компании moderated (Number, 1): Если нужно получить только прошедшие модерацию компании. Т.е. чей контент проверен для публикации for_booking (Number, 1): Если нужно получить поле next_slot по каждой компании show_groups (Number, 1): Включить в обьект компании список сетей в которые входит эта компания title: Поиск по вхождению подстроки в название компании distance: Радиус поиска coordinate_lat: Широта центра поиска по координатам coordinate_lon: Долгота центра поиска по координатам
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/yclients/api/companies.rb', line 18 def companies(args={}) uri = URI(URL2) params = {} params.merge!(query_param(:group_id, args[:group_id], :numeric)) if args.key?(:group_id) params.merge!(query_param(:my, args[:my], :boolean)) if args.key?(:my) params.merge!(query_param(:active, args[:active], :boolean)) if args.key?(:active) params.merge!(query_param(:moderated, args[:moderated], :boolean)) if args.key?(:moderated) params.merge!(query_param(:forBooking, args[:for_booking], :boolean)) if args.key?(:for_booking) params.merge!(query_param(:show_groups, args[:show_groups], :boolean)) if args.key?(:show_groups) params.merge!(query_param(:title, args[:title], :string)) if args.key?(:title) # params.merge!(query_param(:distance, args[:distance], :string)) if args.key?(:distance) # params.merge!(query_param(:coordinate_lat, args[:coordinate_lat], :string)) if args.key?(:coordinate_lat) # params.merge!(query_param(:coordinate_lon, args[:coordinate_lon], :string)) if args.key?(:coordinate_lon) uri.query = URI.encode_www_form(params) req = Net::HTTP::Get.new(uri, headers({ auth: args.key?(:my) && [true, false].include?(args[:my]) })) res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(req) end json = JSON.parse(res.body) if json.kind_of?(Array) json else raise CompaniesAccessError, json.to_s end end |
#company(id, args = {}) ⇒ Object
for_booking (Number, 1): Если нужно получить поле next_slot по каждой компании show_groups (Number, 1): Включить в обьект компании список сетей в которые входит эта компания
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/yclients/api/companies.rb', line 51 def company(id, args={}) uri = URI("#{URL1}/#{id}/") params = {} params.merge!(query_param(:forBooking, args[:for_booking], :boolean)) if args.key?(:for_booking) params.merge!(query_param(:show_groups, args[:show_groups], :boolean)) if args.key?(:show_groups) uri.query = URI.encode_www_form(params) req = Net::HTTP::Get.new(uri, headers({ auth: false })) res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(req) end json = JSON.parse(res.body) if json.kind_of?(Hash) && json.key?('id') json else raise CompaniesAccessError, json.to_s end end |