61 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| 
								 | 
							
								class Desktopapp::Otheraccounts < Sinatra::Base
							 | 
						||
| 
								 | 
							
									require 'open-uri'
							 | 
						||
| 
								 | 
							
								  	require 'rexml/document'
							 | 
						||
| 
								 | 
							
								  	require 'net/http' 
							 | 
						||
| 
								 | 
							
								  	require 'net/https'
							 | 
						||
| 
								 | 
							
								 # 	require 'twitter'
							 | 
						||
| 
								 | 
							
								  	include REXML
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  	get '/desktop/save_account_info' do
							 | 
						||
| 
								 | 
							
									  	@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 = OtherAccount.where(:type.all => [@account],:user_id.all => [current_user.id]) rescue nil
							 | 
						||
| 
								 | 
							
									      @otheraccount.first.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"}
							 | 
						||
| 
								 | 
							
									    a.to_json
							 | 
						||
| 
								 | 
							
								  	end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  	get '/desktop/forgmail' do
							 | 
						||
| 
								 | 
							
								  		 @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")
							 | 
						||
| 
								 | 
							
									    #   #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
							 | 
						||
| 
								 | 
							
									    #   root
							 | 
						||
| 
								 | 
							
									    # else
							 | 
						||
| 
								 | 
							
									    #   msg = "<HEAD><ERROR>true</ERROR><ERRORMSG>Account setting problem.</ERRORMSG></HEAD>"
							 | 
						||
| 
								 | 
							
									    #   # respond_to do |m|
							 | 
						||
| 
								 | 
							
									    #   #   m.xml {render :xml=>msg}
							 | 
						||
| 
								 | 
							
									    #   # end
							 | 
						||
| 
								 | 
							
									    #   msg.to_xml
							 | 
						||
| 
								 | 
							
									    # end
							 | 
						||
| 
								 | 
							
								  	end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  	get '/desktop/getaccounts' do
							 | 
						||
| 
								 | 
							
								  		 @accounts = OtherAccount.where(:user_id.all => [current_user.id]).without(:encrypted_password)
							 | 
						||
| 
								 | 
							
								   		 @accounts.to_json
							 | 
						||
| 
								 | 
							
								  	end
							 | 
						||
| 
								 | 
							
								end
							 |