Class: MySolaredge::Request::AbstractRequest

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/my_solaredge/request/abstract_request.rb

Overview

Sends requests to solaredges’s main API

Direct Known Subclasses

Energy, EnergyDetails, Overview, Power, Sites, TimeFrameEnergy

Instance Method Summary collapse

Constructor Details

#initialize(api_key, site_id, options) ⇒ AbstractRequest

Returns a new instance of AbstractRequest.



12
13
14
15
16
# File 'lib/my_solaredge/request/abstract_request.rb', line 12

def initialize(api_key, site_id, options)
  @api_key = api_key
  @site_id = site_id
  @options = options
end

Instance Method Details

#base_paramsObject



26
27
28
29
30
# File 'lib/my_solaredge/request/abstract_request.rb', line 26

def base_params
  {
    "api_key" => @api_key,
  }
end

#bodyObject



45
46
47
# File 'lib/my_solaredge/request/abstract_request.rb', line 45

def body
  nil
end

#callObject



18
19
20
21
22
23
24
# File 'lib/my_solaredge/request/abstract_request.rb', line 18

def call
  puts "Calling #{endpoint} with #{base_params.merge(params)}" if @options[:debug]
  self.class.public_send(
    method, endpoint,
    query: base_params.merge(params),
  )
end

#convert_date(date) ⇒ Object



49
50
51
# File 'lib/my_solaredge/request/abstract_request.rb', line 49

def convert_date(date)
  Date.parse(date.to_s).strftime('%Y-%m-%d')
end

#convert_datetime(date) ⇒ Object



53
54
55
# File 'lib/my_solaredge/request/abstract_request.rb', line 53

def convert_datetime(date)
  DateTime.parse(date.to_s).strftime('%Y-%m-%d %H:%M:%S')
end

#klass_nameObject

is this needed?



41
42
43
# File 'lib/my_solaredge/request/abstract_request.rb', line 41

def klass_name
  self.class.to_s.gsub(/(.)([A-Z])/, '\1_\2').downcase
end

#methodObject



36
37
38
# File 'lib/my_solaredge/request/abstract_request.rb', line 36

def method
  :get
end

#paramsObject



32
33
34
# File 'lib/my_solaredge/request/abstract_request.rb', line 32

def params
  {}
end