class OtheraccountsController < ApplicationController require 'open-uri' require 'rexml/document' require 'net/http' require 'net/https' # require 'twitter' 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" @otheraccount = current_user.other_accounts.where(:type => @account).first rescue nil @otheraccount.update_attributes(:email => @email, :encrypted_password => @password) when "delete" @otheraccount = OtherAccount.where(:type.all => [@account], :user_id.all => [current_user.id]) rescue nil @otheraccount.destroy_all end a = Array.new a << {"success"=>"true"} render :json=>a.to_json end def gmail @gmailaccount = current_user.other_accounts.where(:type => "gmail") 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") #url = URI.parse("https://www.google.com/m8/feeds/contacts/default/full") req = Net::HTTP::Get.new(url.path) req.basic_auth @email, @decrypted_password req.content_type = 'text/xml' http = Net::HTTP.new(url.host, url.port) http.use_ssl = true response = http.start { |http| http.request(req) } root = Document.new(response.read_body).root render :text=>root else msg = "Unauthorized

No account connected.

" 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 #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 def getaccounts @accounts = current_user.other_accounts.without(:encrypted_password) render :json => @accounts.to_json end end