module Yclients::Api::Companies

Constants

URL1
URL2

Public Instance Methods

companies(args={}) click to toggle source

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: Долгота центра поиска по координатам

# 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={}) click to toggle source

for_booking (Number, 1): Если нужно получить поле next_slot по каждой компании show_groups (Number, 1): Включить в обьект компании список сетей в которые входит эта компания

# 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