class Zuora::Calls::Subscribe
Constants
- SIMPLE_OBJECTS
Public Instance Methods
xml_builder()
click to toggle source
Generates a function that adds login fields to a buidler @return [Callable] function of builder
# File lib/zuora/calls/subscribe.rb, line 19 def xml_builder lambda do |builder| builder[:api].subscribe do builder[:api].subscribes do build_simple_objects builder build_complex_objects builder end end end end
Private Instance Methods
build_complex_objects(builder)
click to toggle source
Builds the complex, nested part of the subscribe request @param [Nokogiri::XML::Builder] builder
# File lib/zuora/calls/subscribe.rb, line 47 def build_complex_objects(builder) if subscribe_options builder[:api].SubscribeOptions do Zuora::Utils::Envelope.build_fields(builder, :api, subscribe_options) end end builder[:api].SubscriptionData do build_object(builder, :Subscription, subscription) builder[:api].RatePlanData do build_object(builder, :RatePlan, rate_plan) builder[:api].RatePlanChargeData do build_object(builder, :RatePlanCharge, rate_plan_charge) end end end end
build_fields(builder, data)
click to toggle source
- Nokogiri::XML::Builder
-
builder
- Nokogiri::XML::Builder
-
builder
- Hash
-
data
# File lib/zuora/calls/subscribe.rb, line 80 def build_fields(builder, data) Zuora::Utils::Envelope.build_fields(builder, :obj, data) end
build_object(builder, type, data)
click to toggle source
Helper for building one object
- Nokogiri::XML::Builder
-
builder
- Symbol
-
type
- Hash
-
data
# File lib/zuora/calls/subscribe.rb, line 69 def build_object(builder, type, data) if data builder[:api].send(type) do build_fields builder, data end end end
build_simple_objects(builder)
click to toggle source
Builds the non-complex / non-nested part of the subscribe request @param [Nokogiri::XML::Builder] builder
# File lib/zuora/calls/subscribe.rb, line 34 def build_simple_objects(builder) SIMPLE_OBJECTS.each do |obj_name| obj = send obj_name next unless obj zuora_name = Zuora::Utils::Envelope.to_zuora_key obj_name builder[:api].send(zuora_name) do Zuora::Utils::Envelope.build_fields(builder, :obj, obj) end end end