Class: APN::Feedback

Inherits:
Base
  • Object
show all
Includes:
AASM
Defined in:
lib/urbanairship_on_rails/models/apn/feedback.rb

Overview

The return value is application/json with the following structure:

Constant Summary

Constants inherited from Base

Base::MAX_RETRIES, Base::OPEN_TIMEOUT, Base::READ_TIMEOUT

Instance Method Summary collapse

Methods inherited from Base

#http_delete, #http_get, #http_post, #http_put, table_name

Instance Method Details

#get_feedback {|result| ... } ⇒ Object

Yields:

  • (result)


55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/urbanairship_on_rails/models/apn/feedback.rb', line 55

def get_feedback
  self.activate!
  # puts "APN::get_feedback"
  # time = 1.day.ago.iso8601
  time = last_feedback_time
  # puts "    since #{time}"
  result = http_get("/api/device_tokens/feedback/?since=#{time}", nil, {}, true)
  self.code = result.code.to_s
  self.message = result.message.to_s
  self.body = result.body.to_s

  yield result if block_given?
end

#last_feedback_timeObject



69
70
71
72
# File 'lib/urbanairship_on_rails/models/apn/feedback.rb', line 69

def last_feedback_time
  f = APN::Feedback.last_feedback_request.first
  f.nil? ? Time.at(0).iso8601 : f.created_at.iso8601
end

#runObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/urbanairship_on_rails/models/apn/feedback.rb', line 39

def run
  raise "save feedback record before running" if self.new_record?
  get_feedback { |results|

    puts results.inspect
    if results.code.to_i == 200
      result = JSON.parse(results.body) # parse json results
      result.each do |item| # iterate results and delete devices that have been deactivated
        d = APN::Device.find_by_ua_token(item['device_token'])
        d.deactivate! if d
      end
      self.process!
    end
  }
end