Class: TokiCLI::TokiAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/API/toki_api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(db_path, bundles = nil) ⇒ TokiAPI

Returns a new instance of TokiAPI.



15
16
17
18
19
# File 'lib/API/toki_api.rb', line 15

def initialize(db_path, bundles = nil)
  @db = TokiCLI::TokiDB.new(db_path)
  @helpers = TokiCLI::Helpers.new
  @bundles = bundles
end

Instance Attribute Details

#bundlesObject (readonly)

Returns the value of attribute bundles.



13
14
15
# File 'lib/API/toki_api.rb', line 13

def bundles
  @bundles
end

#helpersObject (readonly)

Returns the value of attribute helpers.



13
14
15
# File 'lib/API/toki_api.rb', line 13

def helpers
  @helpers
end

#responseObject (readonly)

Returns the value of attribute response.



13
14
15
# File 'lib/API/toki_api.rb', line 13

def response
  @response
end

Instance Method Details

#apps_before(day) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/API/toki_api.rb', line 60

def apps_before(day)
  request = {command: 'apps_before', type: 'apps', args: [day], processed_at: Time.now}
  ending = @helpers.check_date_validity(day)
  return invalid_response(request) if ending == false
  resp = @db.apps_before(ending.to_time.to_i)
  return response_wrapper(request, resp) { make_apps_list(resp) }
end

#apps_day(day) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/API/toki_api.rb', line 36

def apps_day(day)
  request = {command: 'apps_day', type: 'apps', args: [day], processed_at: Time.now}
  date = @helpers.check_date_validity(day)
  return invalid_response(request) if date == false
  resp = @db.apps_range(date.to_time.to_i, date.next_day.to_time.to_i)
  return response_wrapper(request, resp) { make_apps_list(resp) }
end

#apps_range(day1, day2) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/API/toki_api.rb', line 44

def apps_range(day1, day2)
  request = {command: 'apps_range', type: 'apps', args: [day1, day2], processed_at: Time.now}
  starting, ending = @helpers.check_date_validity(day1), @helpers.check_date_validity(day2)
  return invalid_response(request) if starting == false || ending == false || starting > ending
  resp = @db.apps_range(starting.to_time.to_i, ending.to_time.to_i)
  return response_wrapper(request, resp) { make_apps_list(resp) }
end

#apps_since(day) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/API/toki_api.rb', line 52

def apps_since(day)
  request = {command: 'apps_since', type: 'apps', args: [day], processed_at: Time.now}
  starting = @helpers.check_date_validity(day)
  return invalid_response(request) if starting == false
  resp = @db.apps_since(starting.to_time.to_i)
  return response_wrapper(request, resp) { make_apps_list(resp) }
end

#apps_top(number = 5) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/API/toki_api.rb', line 27

def apps_top(number = 5)
  request = {command: 'apps_top', type: 'apps', args: [number], processed_at: Time.now}
  resp = @db.apps_total
  return invalid_response(request) if resp.empty?
  index = -number
  list = make_apps_list(resp)[index..-1]
  @response = make_basic_response(request, list)
end

#apps_totalObject



21
22
23
24
25
# File 'lib/API/toki_api.rb', line 21

def apps_total
  request = {command: 'apps_total', type: 'apps', args: [], processed_at: Time.now}
  resp = @db.apps_total
  return response_wrapper(request, resp) { make_apps_list(resp) }
end

#bundle_log(bundle) ⇒ Object



68
69
70
71
72
# File 'lib/API/toki_api.rb', line 68

def bundle_log(bundle)
  request = {command: 'bundle_log', type: 'log', args: [bundle], processed_at: Time.now}
  resp = @db.bundle_log(bundle)
  return response_wrapper(request, resp) { make_log_objects(resp) }
end

#bundle_log_before(bundle, date) ⇒ Object



82
83
84
85
86
87
88
# File 'lib/API/toki_api.rb', line 82

def bundle_log_before(bundle, date)
  request = {command: 'bundle_log_before', type: 'log', args: [bundle, date], processed_at: Time.now}
  ending = @helpers.check_date_validity(date)
  return invalid_response(request) if ending == false
  resp = @db.bundle_log_before(bundle, ending.to_time.to_i)
  return response_wrapper(request, resp) { make_log_objects(resp) }
end

#bundle_log_day(bundle, day) ⇒ Object



97
98
99
100
101
102
# File 'lib/API/toki_api.rb', line 97

def bundle_log_day(bundle, day)
  starting = @helpers.check_date_validity(day)
  return invalid_response(request) if starting == false
  next_day = starting.next_day.strftime('%Y-%m-%d')
  bundle_log_range(bundle, day, next_day)
end

#bundle_log_range(bundle, day1, day2) ⇒ Object



90
91
92
93
94
95
96
# File 'lib/API/toki_api.rb', line 90

def bundle_log_range(bundle, day1, day2)
  request = {command: 'bundle_log_range', type: 'log', args: [bundle, day1, day2], processed_at: Time.now}
  starting, ending = @helpers.check_date_validity(day1), @helpers.check_date_validity(day2)
  return invalid_response(request) if starting == false || ending == false || starting > ending
  resp = @db.bundle_log_range(bundle, starting.to_time.to_i, ending.to_time.to_i)
  return response_wrapper(request, resp) { make_log_objects(resp) }
end

#bundle_log_since(bundle, date) ⇒ Object



74
75
76
77
78
79
80
# File 'lib/API/toki_api.rb', line 74

def bundle_log_since(bundle, date)
  request = {command: 'bundle_log_since', type: 'log', args: [bundle, date], processed_at: Time.now}
  starting = @helpers.check_date_validity(date)
  return invalid_response(request) if starting == false
  resp = @db.bundle_log_since(bundle, starting.to_time.to_i)
  return response_wrapper(request, resp) { make_log_objects(resp) }
end

#delete_bundle(bundle_id) ⇒ Object




126
127
128
129
130
131
132
133
134
135
136
# File 'lib/API/toki_api.rb', line 126

def delete_bundle(bundle_id)
  request = {command: 'delete_bundle', type: 'action', args: [bundle_id], processed_at: Time.now}
  resp = @db.delete_bundle(bundle_id)
  if resp.empty? # success
    resp = [{'deleted' => bundle_id}]
    @response = make_basic_response(request, resp)
  else
    @response = bad_request(request)
  end
  return @response
end

#invalid_response(request) ⇒ Object




140
141
142
# File 'lib/API/toki_api.rb', line 140

def invalid_response(request)
  @response = bad_request(request)
end

#log_day(day) ⇒ Object



115
116
117
118
119
120
121
122
# File 'lib/API/toki_api.rb', line 115

def log_day(day)
  request = {command: 'log_range', type: 'log', args: [day], processed_at: Time.now}
  starting = @helpers.check_date_validity(day)
  return invalid_response(request) if starting == false
  ending = @helpers.check_date_validity(starting.next_day.strftime('%Y-%m-%d'))
  resp = @db.log_range(starting.to_time.to_i, ending.to_time.to_i)
  return response_wrapper(request, resp) { make_log_objects(resp) }
end

#log_since(day = nil) ⇒ Object



104
105
106
107
108
109
110
111
112
113
# File 'lib/API/toki_api.rb', line 104

def log_since(day = nil)
  request = {command: 'log_since', type: 'log', args: [day], processed_at: Time.now}
  starting = if day.nil?
    @helpers.check_date_validity(Time.now.to_s[0..9])
  else
    @helpers.check_date_validity(day)
  end
  resp = @db.log_since(starting.to_time.to_i)
  return response_wrapper(request, resp) { make_log_objects(resp) }
end