Module: DellinInfo::API

Defined in:
lib/dellin_info_api.rb,
lib/dellininfo/order.rb,
lib/dellininfo/client.rb,
lib/dellininfo/reference.rb,
lib/dellininfo/valide_data.rb,
lib/dellininfo/order_status.rb,
lib/dellininfo/order_collection.rb

Defined Under Namespace

Modules: ValideData Classes: Client, Order, OrderCollection, OrderStatus, Reference

Constant Summary collapse

PATH =

Приложение можно сконфигурировать, для конфикурации необходимо указать в константе DellinInfo::API::PATH путь до файла yml где ключ - название класса в snakecase, а значение - пара (параметр - значение)

'path to config.yml'

Class Method Summary collapse

Class Method Details

.client_request(dellin_class, params = {}) ⇒ Object



61
62
63
64
65
66
# File 'lib/dellin_info_api.rb', line 61

def self.client_request(dellin_class, params = {})
  client = Client.new()
  data = client.request(dellin_class.config['partial_url'], params).body
  JSON.parse data
  
end

.configure!Object

Все основные настройки хранятся в отдельном файле, данный метод рализует конфигурацию всех классов модуля



20
21
22
23
24
25
26
27
# File 'lib/dellin_info_api.rb', line 20

def self.configure!

  YAML.load_file(PATH).each_pair do |config_class, params|
    params.each_pair do |param, value|
      "DellinInfo::API::#{config_class.camelize}".constantize.config[param] = value
    end
  end
end

.find_oders(params = {}) ⇒ Object

метод поиска накладных по неполным данным



43
44
45
46
47
48
49
50
51
52
# File 'lib/dellin_info_api.rb', line 43

def self.find_oders(params = {})
  if params[:date_start].nil?
    set_time!
    params[:date_start] = @start_date
    params[:date_end] = @end_day
  end
  data = client_request(OrderCollection, params)
  OrderCollection.new data
  
end

.reference(type) ⇒ Object

Данный метод получает ссылку на csv с данными справочников Деловых линиях dev.dellin.ru/api/public/tables/ и хэш, по которому можно отследить актуальность данных возвращается объект класса DellinInfo::API::Reference



34
35
36
37
38
39
40
# File 'lib/dellin_info_api.rb', line 34

def self.reference(type)
  type = type.to_sym
  url_type = Reference::TYPE[type]
  data = client_request(url_type)

  Reference.new(data)
end

.set_time!Object



68
69
70
71
72
73
74
# File 'lib/dellin_info_api.rb', line 68

def self.set_time!
  
  @start_date  = 6.day.ago.strftime('%Y-%m-%d')
  @end_day     = Time.now.strftime('%Y-%m-%d')
  
  
end

.status_oder(id_oder) ⇒ Object

метод проверяющий статусы накладной по номеру



55
56
57
58
59
# File 'lib/dellin_info_api.rb', line 55

def self.status_oder(id_oder)
  data = client_request(OrderStatus, docid: id_oder)
  DellinInfo::API::OrderStatus.new data
  
end