orbit-basic/app/controllers/otheraccounts_controller.rb

78 lines
2.7 KiB
Ruby
Raw Permalink Normal View History

2012-11-01 12:42:40 +00:00
class Desktop::OtheraccountsController< ApplicationController
2012-04-26 06:47:49 +00:00
require 'open-uri'
require 'rexml/document'
require 'net/http'
require 'net/https'
# require 'twitter'
2012-04-26 06:47:49 +00:00
include REXML
def saveaccountinfo
@dowhat = params['dowhat']
@email = params['email']
@password = params['password']
@account = params['account']
case @dowhat
when "new"
OtherAccount.create(user_id: current_user.id, email: @email, encrypted_password: @password, type: @account)
when "edit"
2012-05-03 06:40:54 +00:00
@otheraccount = OtherAccount.where(:type.all => [@account],:user_id.all => [current_user.id]) rescue nil
@otheraccount.first.update_attributes(:email => @email, :encrypted_password => @password)
2012-05-03 06:40:54 +00:00
when "delete"
@otheraccount = OtherAccount.where(:type.all => [@account], :user_id.all => [current_user.id]) rescue nil
@otheraccount.destroy_all
end
2012-04-30 06:29:42 +00:00
a = Array.new
a << {"success"=>"true"}
render :json=>a.to_json
end
2012-04-26 09:23:47 +00:00
def gmail
2012-05-03 06:40:54 +00:00
@gmailaccount = OtherAccount.where(:type.all => ["gmail"],:user_id.all => [current_user.id]) rescue nil
if @gmailaccount.first != nil
@decrypted_password = @gmailaccount.first.encrypted_password.decrypt
@email = @gmailaccount.first.email
url = URI.parse("https://mail.google.com/mail/feed/atom")
2012-05-16 03:18:54 +00:00
#url = URI.parse("https://www.google.com/m8/feeds/contacts/default/full")
2012-05-03 06:40:54 +00:00
req = Net::HTTP::Get.new(url.path)
req.basic_auth @email, @decrypted_password
req.content_type = 'text/xml'
2012-04-26 06:47:49 +00:00
2012-05-03 06:40:54 +00:00
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
response = http.start { |http| http.request(req) }
2012-04-26 06:47:49 +00:00
2012-05-03 06:40:54 +00:00
root = Document.new(response.read_body).root
render :text=>root
else
msg = "<HEAD><ERROR>true</ERROR><ERRORMSG>Account setting problem.</ERRORMSG></HEAD>"
respond_to do |m|
m.xml {render :xml=>msg}
end
end
end
def twitter
# token = "Yh9qYe0lhWk27TZJamnhrA"
# secret = "iBgxJ5BrxfGFLkp7aB6pyCSzd0zcJiYDqJGFBK6Wdo"
# oauth = Twitter::OAuth.new(token,secret)
# oauth_token = oauth.request_token.token
# oauth_secret = oauth.request_token.secret
2012-05-16 03:18:54 +00:00
#require File.dirname(__FILE__)+"/../lib/contacts"
@gmailaccount = OtherAccount.where(:type.all => ["gmail"],:user_id.all => [current_user.id]) rescue nil
if @gmailaccount.first != nil
login = @gmailaccount.first.encrypted_password.decrypt
password = @gmailaccount.first.email
@contacts = Contacts::Gmail.new(login, password).contacts
render :json => @contacts.to_json
end
end
2012-05-03 06:40:54 +00:00
def getaccounts
@accounts = OtherAccount.where(:user_id.all => [current_user.id]).without(:encrypted_password)
2012-05-03 06:40:54 +00:00
render :json => @accounts.to_json
2012-04-26 06:47:49 +00:00
end
end