address saving almost works

This commit is contained in:
Senad Uka
2015-02-26 06:48:34 +01:00
parent 6e327c758f
commit 1ca7d4509a
10 changed files with 618 additions and 571 deletions

View File

@@ -30,6 +30,8 @@ end
helpers Sinatra::Cookies

View File

@@ -1,4 +1,4 @@
helpers do
def anonymous_id
@@ -42,4 +42,20 @@ get '/cart/item/display' do
items = []
items = Item.find(item_ids) if cart.item_in_carts.length > 0
prepare_items_for_mass_display(items)
end
end
get '/cart/delivery_destination' do
cart = Cart.find_or_create(anonymous_id, -1)
cart.delivery_destination.to_json(:except => [:created_at, :email_verification_code, :phone_verification_code])
end
update_delivery_destination = ->() {
cart = Cart.find_or_create(anonymous_id, -1)
allowed_keys = ["name", "address", "place", "postal_code", "phone", "email", "note"]
params = @json_params.reject { |key,_| !allowed_keys.include?(key) }
cart.delivery_destination.update_attributes(params)
cart.delivery_destination.save!
cart.delivery_destination.to_json
}
put '/cart/delivery_destination', &update_delivery_destination
post '/cart/delivery_destination', &update_delivery_destination

View File

@@ -2,7 +2,6 @@
get '/category' do
Category.order(:name).all.to_json(:include => [:section, :sub_categories, :filter_criterias =>{:include => :filter_criteria_values} ])
end
get '/category/:id' do

View File

@@ -1,4 +1,4 @@
get '/filter/section/:id' do |id_s|
get '/filter/section/:id' do |id_s|
# get filter criteria for a section with id
FilterCriteria.where(:owner_type => "Section").where(:owner_id => id_s.to_i).to_json(
:include => [:filter_criteria_values]

View File

@@ -1,10 +1,13 @@
class Cart < ActiveRecord::Base
has_many :item_in_carts, -> { order "created_at" }
belongs_to :delivery_destination
def self.find_or_create(anonymous_id, user_id)
cart = Cart.where(user_id: user_id).where(ordered: false).first
cart ||= Cart.where(anonymous_id_string: anonymous_id).where(ordered: false).first
safe_user_id = (user_id > 0) ? user_id : nil
cart ||= Cart.create!(anonymous_id_string: anonymous_id, user_id: safe_user_id, ordered: false )
cart.delivery_destination ||= DeliveryDestination.create!
return cart
end
end

View File

@@ -0,0 +1,4 @@
class DeliveryDestination < ActiveRecord::Base
has_one :cart
belongs_to :user
end

View File

@@ -43,6 +43,11 @@ var CartActions = {
property: property,
value: value
});
},
confirmDelivery: function() {
AppDispatcher.handleAction({
actionType: CartConstants.CONFIRM_DELIVERY,
});
}
};

File diff suppressed because it is too large Load Diff

View File

@@ -9,5 +9,6 @@ module.exports = keyMirror({
TAKE_ITEM_OUT: null ,
CART_DATA_LOADED: null,
SAVE_CART_STATE_FOR_ITEM: null,
CHANGE_DELIVERY_DESTINATION_PROPERTY: null
CHANGE_DELIVERY_DESTINATION_PROPERTY: null,
CONFIRM_DELIVERY: null
});

View File

@@ -34,6 +34,11 @@ var loadCart = function() {
CartActions.dataLoaded();
}
})
_deliveryDestination.fetch({
success: function() {
CartActions.dataLoaded();
}
})
};
@@ -74,7 +79,13 @@ var changeDeliveryDestinationProperty = function (property, value) {
_deliveryDestination.set(property, value);
};
var saveDeliveryDestination = function() {
_deliveryDestination.save({
success: function() {
CartActions.dataLoaded();
}
})
};
// Extend CartStore with EventEmitter to add eventing capabilities
@@ -156,6 +167,8 @@ AppDispatcher.register(function(payload) {
break;
case CartConstants.CHANGE_DELIVERY_DESTINATION_PROPERTY:
changeDeliveryDestinationProperty(action.propety, action.value)
case CartConstants.CONFIRM_DELIVERY:
saveDeliveryDestination();
default:
return true;
}