| 
									
										
										
										
											2012-04-26 09:23:47 +00:00
										 |  |  | class OtheraccountsController< ApplicationController | 
					
						
							| 
									
										
										
										
											2012-04-26 06:47:49 +00:00
										 |  |  |   require 'open-uri' | 
					
						
							|  |  |  |   require 'rexml/document' | 
					
						
							|  |  |  |   require 'net/http'  | 
					
						
							|  |  |  |   require 'net/https' | 
					
						
							| 
									
										
										
										
											2012-05-04 12:28:12 +00:00
										 |  |  |  # require 'twitter' | 
					
						
							| 
									
										
										
										
											2012-04-26 06:47:49 +00:00
										 |  |  |   include REXML | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-26 13:30:13 +00:00
										 |  |  |   def saveaccountinfo | 
					
						
							| 
									
										
										
										
											2012-04-30 13:17:20 +00:00
										 |  |  |     @dowhat = params['dowhat'] | 
					
						
							| 
									
										
										
										
											2012-04-26 13:30:13 +00:00
										 |  |  |     @email = params['email'] | 
					
						
							|  |  |  |     @password = params['password'] | 
					
						
							|  |  |  |     @account = params['account'] | 
					
						
							| 
									
										
										
										
											2012-04-30 13:17:20 +00:00
										 |  |  |     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 | 
					
						
							| 
									
										
										
										
											2012-04-30 13:17:20 +00:00
										 |  |  |       @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 | 
					
						
							| 
									
										
										
										
											2012-04-30 13:17:20 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2012-04-30 06:29:42 +00:00
										 |  |  |     a = Array.new | 
					
						
							|  |  |  |     a << {"success"=>"true"} | 
					
						
							|  |  |  |     render :json=>a.to_json | 
					
						
							| 
									
										
										
										
											2012-04-26 13:30:13 +00:00
										 |  |  |   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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-03 13:30:12 +00:00
										 |  |  |   def twitter | 
					
						
							| 
									
										
										
										
											2012-05-04 12:28:12 +00:00
										 |  |  |     # 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 | 
					
						
							| 
									
										
										
										
											2012-05-03 13:30:12 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-03 06:40:54 +00:00
										 |  |  |   def getaccounts | 
					
						
							| 
									
										
										
										
											2012-05-03 13:30:12 +00:00
										 |  |  |     @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 |