Class: Alexa::TodoistApi::Base
- Inherits:
-
Object
- Object
- Alexa::TodoistApi::Base
show all
- Includes:
- Configuration
- Defined in:
- lib/alexa/todoist_api/base.rb
Defined Under Namespace
Classes: MethodNotImplemented, UnsuccessfulResponseError
Instance Method Summary
collapse
#api_endpoint
Instance Method Details
#connection ⇒ Object
13
14
15
16
|
# File 'lib/alexa/todoist_api/base.rb', line 13
def connection()
= (headers: )
Faraday.new url: api_endpoint, headers:
end
|
#connection_requires_auth? ⇒ Boolean
18
19
20
|
# File 'lib/alexa/todoist_api/base.rb', line 18
def connection_requires_auth?
false
end
|
22
23
24
25
|
# File 'lib/alexa/todoist_api/base.rb', line 22
def
logger_warn('Todoist::BaseApi custom_headers() method not implemented.')
raise MethodNotImplemented
end
|
#do_request ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/alexa/todoist_api/base.rb', line 50
def do_request
@connection = connection
retries ||= 0
response = @connection.post method_route, method_params
if response.status == 200
response_success(response: response)
else
logger_warn("[Todoist::BaseApi] Route: #{method_route} Response code: #{response.status} Response body: #{response.body}")
response_fail(response: response)
end
rescue Faraday::TimeoutError
logger_warn("[Todoist::BaseApi] Route: #{method_route} Retrying...") && retry if (retries += 1) < 2
rescue Faraday::ClientError => e
logger_warn("[Todoist::BaseApi] Route: #{method_route}, Error: #{e.class}, #{e.message}")
end
|
#get_route(url:) ⇒ Object
46
47
48
|
# File 'lib/alexa/todoist_api/base.rb', line 46
def get_route(url:)
url.sub(api_endpoint, '')
end
|
#method_params ⇒ Object
31
32
33
34
|
# File 'lib/alexa/todoist_api/base.rb', line 31
def method_params
logger_warn('Todoist::BaseApi method_params() method not implemented.')
raise MethodNotImplemented
end
|
#method_route ⇒ Object
27
28
29
|
# File 'lib/alexa/todoist_api/base.rb', line 27
def method_route
'/API/v7/sync'
end
|
#response_fail(response:) ⇒ Object
41
42
43
44
|
# File 'lib/alexa/todoist_api/base.rb', line 41
def response_fail(response:)
logger_warn("Todoist::BaseApi response_fail(response: #{response}) method not implemented.")
raise MethodNotImplemented
end
|
#response_success(response:) ⇒ Object
36
37
38
39
|
# File 'lib/alexa/todoist_api/base.rb', line 36
def response_success(response:)
logger_warn("Todoist::BaseApi response_success(response: #{response}) method not implemented.")
raise MethodNotImplemented
end
|