Skip to content

Instantly share code, notes, and snippets.

@Fedcomp
Forked from lbvf50mobile/code_for_refactor.rb
Created October 30, 2016 11:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fedcomp/1a2d52256a0f22f03c2d66810ab19640 to your computer and use it in GitHub Desktop.
Save Fedcomp/1a2d52256a0f22f03c2d66810ab19640 to your computer and use it in GitHub Desktop.
def save_post_card
binding.pry
card = PostCard.where(:id => params[:post_card_id]).first
if card.nil?
render text: 'Nnot found postcard with provided ID', status: 404
return
end
text_data = params[:text_data]
name = params[:name].strip
from_address_select = params[:from_address_select]
from_name = params[:from_name].strip
from_line1 = params[:from_line1].strip
from_line2 = params[:from_line2].strip
from_city_name = params[:from_city_name].strip
from_state_name = params[:from_state_name].strip
from_zip = params[:from_zip].strip
from_country_ab = params[:from_country].strip
to_address_select = params[:to_address_select].strip
to_name = params[:to_name].strip
to_line1 = params[:to_line1].strip
to_line2 = params[:to_line2].strip
to_city_name = params[:to_city_name].strip
to_state_name = params[:to_state_name].strip
to_zip = params[:to_zip].strip
to_country_ab = params[:to_country].strip
unless from_address_select == '-2' # unless "without from address"
# we should find "from address". It could be same as saved previously or
from_country = Country.where(:ab => from_country_ab).first
from_address = Address.where(name: from_name, line1: from_line1, line2: from_line2, city_name: from_city_name,
state_name: from_state_name, zip: from_zip, country_id: from_country.id,
user_id: current_user.id).first
if from_address.nil?
from_address = Address.new(name: to_name, line1: to_line1, line2: to_line2, city_name: to_city_name,
state_name: from_state_name, zip: from_zip, country_id: from_country.id,
user_id: current_user.id)
from_address.save
end
end
case to_address_select
when '35' then
# no address yet - we do not updte it
to_address = Address.find(35)
else
# to_address provided
to_country = Country.where(:ab => to_country_ab).first
to_address = Address.where(name: to_name, line1: to_line1, line2: to_line2, city_name: to_city_name,
state_name: to_state_name, zip: to_zip, country_id: to_country.id,
user_id: current_user.id).first
if to_address.nil?
to_address = Address.new(name: to_name, line1: to_line1, line2: to_line2, city_name: to_city_name,
state_name: to_state_name, zip: to_zip, country_id: to_country.id,
user_id: current_user.id)
to_address.save
end
end
card.message = text_data
card.name = name
unless from_address_select == '-2'
card.from_address_id = from_address.id
end
card.to_address_id = to_address.id
if card.status == 0
card.status = 1
end
card.save
card = PostCard.where(:id => params[:post_card_id]).includes(:from_address, :to_address, :user).first
require 'lob'
@lob = Lob::Client.new(api_key: Rails.application.secrets.lob_test_api_key, pi_version: "2016-06-30")
#render text: get_back_side(card)
#return
to_obj = {
name: card.to_address.name,
address_line1: card.to_address.line1.to_s,
address_line2: card.to_address.line2.to_s,
address_city: card.to_address.city_name.to_s,
address_state: card.to_address.state_name.to_s,
address_country: card.to_address.country.ab.to_s,
address_zip: card.to_address.zip.to_s
}
front_string = get_front_side(card).gsub('<@#$>', '')
File.write('/webapps/sendmecard3/public/last_front.html', front_string)
back_string = get_back_side(card).gsub('<@#$>', '')
new_card_data = {
description: "Postcard #"+card.id.to_s+' preview',
to: to_obj,
front: front_string,
back: back_string,
metadata: {
user_id: card.user_id,
post_card_id: card.id
}
}
unless from_address_select == '-2'
# if not stated "Witout from address"
from_obj = {
name: card.from_address.name.to_s,
address_line1: card.from_address.line1.to_s,
address_line2: card.from_address.line2.to_s,
address_city: card.from_address.city_name.to_s,
address_state: card.from_address.state_name.to_s,
address_country: card.from_address.country.ab.to_s,
address_zip: card.from_address.zip.to_s
}
new_card_data['from'] = from_obj
end
the_data = @lob.postcards.create( new_card_data )
card.lob_data = the_data.to_json
card.cost = the_data['price'].to_f
if the_data['price'].to_f > 1.0
card.price = 5.0
else
card.price = 3.0
end
card.lob_key = the_data['id']
card.carrier = 'test'
card.tracking_code = 'test'
card.remove_front_preview!
card.remove_back_preview!
card.save!
# record "edit card"
user_activity = UserActivity.new(:user_id => current_user.id, :user_activity_type_id => 4, :card_num => card.id, :day => Time.now)
user_activity.save
render text: 'ok'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment