Class: IntegrationsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/integrations_controller.rb

Instance Method Summary (collapse)

Methods inherited from ApplicationController

#admin_login_required, #boolean_param, #cas_enabled?, cas_enabled?, #check_for_deprecated_password_hash, #count_deferred_todos, #count_undone_todos, #count_undone_todos_phrase, #create_todo_from_recurring_todo, #enable_mobile_content_negotiation, #for_autocomplete, #format_date, #format_dependencies_as_json_for_auto_complete, #get_done_this_month, #get_done_this_week, #get_done_today, #handle_unverified_request, #init_data_for_sidebar, #init_not_done_counts, #init_project_hidden_todo_counts, #markdown, #mobile?, #notify, openid_enabled?, #openid_enabled?, #parse_date_per_user_prefs, prefered_auth?, #prefered_auth?, #redirect_back_or_home, #render_failure, #set_charset, #set_locale, #set_session_expiration, #set_time_zone, #set_zindex_counter

Methods included from LoginSystem

#access_denied, #authorize?, #basic_auth_denied, #current_user, #get_basic_auth_data, #get_current_user, #logged_in?, #login_from_cookie, #login_optional, #login_or_feed_token_required, #login_required, #logout_user, #prefs, #protect?, #redirect_back_or_default, #redirect_to_login, #set_current_user, #store_location

Instance Method Details

- (Object) cloudmailin



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'app/controllers/integrations_controller.rb', line 40

def cloudmailin
  # verify cloudmailin signature
  provided = request.request_parameters.delete(:signature)
  signature = Digest::MD5.hexdigest(request.request_parameters.sort{|a,b| a[0].to_s <=> b[0].to_s}.map{|k,v| v}.join + SITE_CONFIG['cloudmailin'])

  # if signature does not match, return 403
  if provided != signature
    render :text => "Message signature verification failed.", :status => 403
    return false
  end
  
  # parse message
  message = Mail.new(params[:message])
      
  # find user
  user = User.find(:first, :include => [:preference], :conditions => ["preferences.sms_email = ?", message.from])
  if user.nil?
    render :text => "No user found", :status => 404
    return false
  end

  # load user settings
  context = user.prefs.sms_context

  # prepare body
  if message.body.multipart?
    body = message.body.preamble
  else
    body = message.body.to_s
  end
  
  # parse mail
  if message.subject.to_s.empty?
    description = body
    notes = nil
  else
    description = message.subject.to_s
    notes = body
  end
  
  # create todo
  todo = Todo.from_rich_message(user, context.id, description, notes)
  todo.save!
  render :text => 'success', :status => 200
end

- (Object) get_applescript1



19
20
21
22
# File 'app/controllers/integrations_controller.rb', line 19

def get_applescript1
  context = current_user.contexts.find params[:context_id]
  render :partial => 'applescript1', :locals => { :context => context }
end

- (Object) get_applescript2



24
25
26
27
# File 'app/controllers/integrations_controller.rb', line 24

def get_applescript2
  context = current_user.contexts.find params[:context_id]
  render :partial => 'applescript2', :locals => { :context => context }
end

- (Object) get_quicksilver_applescript



14
15
16
17
# File 'app/controllers/integrations_controller.rb', line 14

def get_quicksilver_applescript
  context = current_user.contexts.find params[:context_id]
  render :partial => 'quicksilver_applescript', :locals => { :context => context }
end

- (Object) google_gadget



36
37
38
# File 'app/controllers/integrations_controller.rb', line 36

def google_gadget
  render :layout => false, :content_type => Mime::XML
end

- (Object) index



6
7
8
# File 'app/controllers/integrations_controller.rb', line 6

def index
  @page_title = 'TRACKS::Integrations'
end

- (Object) rest_api



10
11
12
# File 'app/controllers/integrations_controller.rb', line 10

def rest_api
  @page_title = 'TRACKS::REST API Documentation'
end

- (Object) search_plugin



29
30
31
32
33
34
# File 'app/controllers/integrations_controller.rb', line 29

def search_plugin
  @icon_data = [File.open(RAILS_ROOT + '/public/images/done.png').read].
    pack('m').gsub(/\n/, '')
 
  render :layout => false
end