Skip to content

Instantly share code, notes, and snippets.

@sam452
Created August 24, 2012 16:05
Show Gist options
  • Save sam452/3452330 to your computer and use it in GitHub Desktop.
Save sam452/3452330 to your computer and use it in GitHub Desktop.
class DatafeedsController < ApplicationController
API_KEY = 'my encrypted key is here'
# Parses Foxycart datafeed v060
# see http://wiki.foxycart.com/docs/datafeed for details
def create
require 'ruby-rc4'
require 'nokogiri'
decryptor = RubyRc4.new(API_KEY)
xml = decryptor.encrypt(CGI::unescape(params['FoxyData']))
feed = Nokogiri::XML(xml)
order_data = {}
feed.xpath('.//transaction').each do |transaction|
# PROCESS THE FEED AS YOU LIKE HERE
transaction.customer_first_name = order_data[:customer_first_name]
transaction.customer_last_name = order_data[:customer_last_name]
transaction.id = order_data[:cart_id]
if Order.create(order_data)
success
else
failure
end
end
render :text => 'foxy'
rescue Exception=>e
render :text => e.to_s
end
end
---------------------
my gem file
source 'https://rubygems.org'
gem 'rails', '3.2.3'
#gem 'sqlite3'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem "haml", ">= 3.1.4"
gem "haml-rails", ">= 0.3.4", :group => :development
gem "rspec-rails", ">= 2.9.0.rc2", :group => [:development, :test]
gem "factory_girl_rails", ">= 3.2.0", :group => [:development, :test]
gem "email_spec", ">= 1.2.1", :group => :test
gem "cucumber-rails", ">= 1.3.0", :group => :test
gem "capybara", ">= 1.1.2", :group => :test
gem "database_cleaner", ">= 0.7.2", :group => :test
gem "launchy", ">= 2.1.0", :group => :test
gem "devise", ">= 2.1.0.rc"
gem "cancan", ">= 1.6.7"
gem "rolify", ">= 3.1.0"
gem "bootstrap-sass", ">= 2.0.1"
gem "therubyracer", :group => :assets, :platform => :ruby
gem "pg", ">=0.12.2"
#gem "pry-rails", :group => [:development, :test]
gem 'ruby-rc4', :require => "rc4"
gem 'nokogiri'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment