Class: Io::Flow::V0::Clients::Experiences
- Inherits:
-
Object
- Object
- Io::Flow::V0::Clients::Experiences
- Defined in:
- lib/flow_commerce/flow_api_v0_client.rb
Instance Method Summary collapse
-
#delete_by_key(organization, key) ⇒ Object
Delete the experience with this key.
- #delete_margins_by_experience_key_and_key(organization, experience_key, key) ⇒ Object
-
#get(organization, incoming = {}) ⇒ Object
Search experiences.
-
#get_by_key(organization, key) ⇒ Object
Returns information about a specific experience.
-
#get_conversions_by_base_and_amount(organization, base, amount, incoming = {}) ⇒ Object
Formats the requested amount using the formatting settings for the experience.
-
#get_items(organization, incoming = {}) ⇒ Object
Returns localized information about 1 or more items.
-
#get_items_and_price_by_key_and_number(organization, key, number) ⇒ Object
Returns detailed information on the pricing of this item within this experience.
-
#get_items_by_number(organization, number, incoming = {}) ⇒ Object
Returns information about this item localized based on the query parameters.
- #get_margins_and_versions_by_experience_key(organization, experience_key, incoming = {}) ⇒ Object
- #get_margins_by_experience_key(organization, experience_key, incoming = {}) ⇒ Object
- #get_margins_by_experience_key_and_key(organization, experience_key, key) ⇒ Object
-
#get_pricing_by_key(organization, key) ⇒ Object
Get the pricing settings for this experience.
-
#get_versions(organization, incoming = {}) ⇒ Object
Provides visibility into recent changes of each object, including deletion.
-
#initialize(client) ⇒ Experiences
constructor
A new instance of Experiences.
-
#post(organization, experience_form) ⇒ Object
Add experience.
- #post_margins_by_experience_key(organization, experience_key, item_margin_post_form) ⇒ Object
-
#put_by_key(organization, key, experience_form) ⇒ Object
Update experience with the specified key, creating if it does not exist.
- #put_margins_by_experience_key_and_key(organization, experience_key, key, item_margin_put_form) ⇒ Object
-
#put_pricing_by_key(organization, key, pricing) ⇒ Object
Update the pricing settings for this experience.
Constructor Details
#initialize(client) ⇒ Experiences
Returns a new instance of Experiences.
519 520 521 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 519 def initialize(client) @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client) end |
Instance Method Details
#delete_by_key(organization, key) ⇒ Object
Delete the experience with this key
630 631 632 633 634 635 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 630 def delete_by_key(organization, key) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('key', key, String) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}").delete nil end |
#delete_margins_by_experience_key_and_key(organization, experience_key, key) ⇒ Object
590 591 592 593 594 595 596 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 590 def delete_margins_by_experience_key_and_key(organization, experience_key, key) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_key', experience_key, String) HttpClient::Preconditions.assert_class('key', key, String) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/margins/#{CGI.escape(key)}").delete nil end |
#get(organization, incoming = {}) ⇒ Object
Search experiences. Always paginated.
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 524 def get(organization, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }), :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }), :name => (x = opts.delete(:name); x.nil? ? nil : HttpClient::Preconditions.assert_class('name', x, String)), :region => (x = opts.delete(:region); x.nil? ? nil : HttpClient::Preconditions.assert_class('region', x, String)), :currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)), :subcatalog => (x = opts.delete(:subcatalog); x.nil? ? nil : HttpClient::Preconditions.assert_class('subcatalog', x, String)), :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)), :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer), :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer), :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "name" : x), String) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences").with_query(query).get r.map { |x| ::Io::Flow::V0::Models::Experience.new(x) } end |
#get_by_key(organization, key) ⇒ Object
Returns information about a specific experience.
613 614 615 616 617 618 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 613 def get_by_key(organization, key) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('key', key, String) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}").get ::Io::Flow::V0::Models::Experience.new(r) end |
#get_conversions_by_base_and_amount(organization, base, amount, incoming = {}) ⇒ Object
Formats the requested amount using the formatting settings for the experience.
666 667 668 669 670 671 672 673 674 675 676 677 678 679 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 666 def get_conversions_by_base_and_amount(organization, base, amount, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('base', base, String) HttpClient::Preconditions.assert_class('amount', amount, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :experience => (x = opts.delete(:experience); x.nil? ? nil : HttpClient::Preconditions.assert_class('experience', x, String)), :country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String)), :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)), :currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences/conversions/#{CGI.escape(base)}/#{CGI.escape(amount)}").with_query(query).get ::Io::Flow::V0::Models::PriceWithBase.new(r) end |
#get_items(organization, incoming = {}) ⇒ Object
Returns localized information about 1 or more items. The items will be localized based on the experience selected by the query parameters in the order of experience, then country, then ip address.
684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 684 def get_items(organization, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :number => (x = opts.delete(:number); x.nil? ? nil : HttpClient::Preconditions.assert_class('number', x, Array).map { |v| HttpClient::Preconditions.assert_class('number', v, String) }), :status => (x = opts.delete(:status); x.nil? ? nil : HttpClient::Preconditions.assert_class('status', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::SubcatalogItemStatus) ? x : ::Io::Flow::V0::Models::SubcatalogItemStatus.apply(x)).value }), :experience => (x = opts.delete(:experience); x.nil? ? nil : HttpClient::Preconditions.assert_class('experience', x, String)), :country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String)), :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)), :currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)), :language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String)), :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer), :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer), :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences/items").with_query(query).get r.map { |x| ::Io::Flow::V0::Models::Item.new(x) } end |
#get_items_and_price_by_key_and_number(organization, key, number) ⇒ Object
Returns detailed information on the pricing of this item within this experience
639 640 641 642 643 644 645 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 639 def get_items_and_price_by_key_and_number(organization, key, number) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('key', key, String) HttpClient::Preconditions.assert_class('number', number, String) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}/items/#{CGI.escape(number)}/price").get ::Io::Flow::V0::Models::PriceCheck.new(r) end |
#get_items_by_number(organization, number, incoming = {}) ⇒ Object
Returns information about this item localized based on the query parameters
704 705 706 707 708 709 710 711 712 713 714 715 716 717 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 704 def get_items_by_number(organization, number, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('number', number, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :experience => (x = opts.delete(:experience); x.nil? ? nil : HttpClient::Preconditions.assert_class('experience', x, String)), :country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String)), :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)), :currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)), :language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String)) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences/items/#{CGI.escape(number)}").with_query(query).get ::Io::Flow::V0::Models::Item.new(r) end |
#get_margins_and_versions_by_experience_key(organization, experience_key, incoming = {}) ⇒ Object
598 599 600 601 602 603 604 605 606 607 608 609 610 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 598 def get_margins_and_versions_by_experience_key(organization, experience_key, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_key', experience_key, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }), :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer), :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer), :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/margins/versions").with_query(query).get r.map { |x| ::Io::Flow::V0::Models::ItemMarginVersion.new(x) } end |
#get_margins_by_experience_key(organization, experience_key, incoming = {}) ⇒ Object
551 552 553 554 555 556 557 558 559 560 561 562 563 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 551 def get_margins_by_experience_key(organization, experience_key, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_key', experience_key, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }), :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer), :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer), :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "name" : x), String) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/margins").with_query(query).get r.map { |x| ::Io::Flow::V0::Models::ItemMargin.new(x) } end |
#get_margins_by_experience_key_and_key(organization, experience_key, key) ⇒ Object
573 574 575 576 577 578 579 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 573 def get_margins_by_experience_key_and_key(organization, experience_key, key) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_key', experience_key, String) HttpClient::Preconditions.assert_class('key', key, String) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/margins/#{CGI.escape(key)}").get ::Io::Flow::V0::Models::ItemMargin.new(r) end |
#get_pricing_by_key(organization, key) ⇒ Object
Get the pricing settings for this experience
648 649 650 651 652 653 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 648 def get_pricing_by_key(organization, key) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('key', key, String) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}/pricing").get ::Io::Flow::V0::Models::Pricing.new(r) end |
#get_versions(organization, incoming = {}) ⇒ Object
Provides visibility into recent changes of each object, including deletion
720 721 722 723 724 725 726 727 728 729 730 731 732 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 720 def get_versions(organization, incoming={}) HttpClient::Preconditions.assert_class('organization', organization, String) opts = HttpClient::Helper.symbolize_keys(incoming) query = { :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }), :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, Array).map { |v| HttpClient::Preconditions.assert_class('key', v, String) }), :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer), :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer), :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String) }.delete_if { |k, v| v.nil? } r = @client.request("/#{CGI.escape(organization)}/experiences/versions").with_query(query).get r.map { |x| ::Io::Flow::V0::Models::ExperienceVersion.new(x) } end |
#post(organization, experience_form) ⇒ Object
Add experience
544 545 546 547 548 549 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 544 def post(organization, experience_form) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_form', experience_form, ::Io::Flow::V0::Models::ExperienceForm) r = @client.request("/#{CGI.escape(organization)}/experiences").with_json(experience_form.to_json).post ::Io::Flow::V0::Models::Experience.new(r) end |
#post_margins_by_experience_key(organization, experience_key, item_margin_post_form) ⇒ Object
565 566 567 568 569 570 571 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 565 def post_margins_by_experience_key(organization, experience_key, item_margin_post_form) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_key', experience_key, String) HttpClient::Preconditions.assert_class('item_margin_post_form', item_margin_post_form, ::Io::Flow::V0::Models::ItemMarginPostForm) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/margins").with_json(item_margin_post_form.to_json).post ::Io::Flow::V0::Models::ItemMargin.new(r) end |
#put_by_key(organization, key, experience_form) ⇒ Object
Update experience with the specified key, creating if it does not exist.
621 622 623 624 625 626 627 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 621 def put_by_key(organization, key, experience_form) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('key', key, String) HttpClient::Preconditions.assert_class('experience_form', experience_form, ::Io::Flow::V0::Models::ExperienceForm) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}").with_json(experience_form.to_json).put ::Io::Flow::V0::Models::Experience.new(r) end |
#put_margins_by_experience_key_and_key(organization, experience_key, key, item_margin_put_form) ⇒ Object
581 582 583 584 585 586 587 588 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 581 def put_margins_by_experience_key_and_key(organization, experience_key, key, item_margin_put_form) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('experience_key', experience_key, String) HttpClient::Preconditions.assert_class('key', key, String) HttpClient::Preconditions.assert_class('item_margin_put_form', item_margin_put_form, ::Io::Flow::V0::Models::ItemMarginPutForm) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(experience_key)}/margins/#{CGI.escape(key)}").with_json(item_margin_put_form.to_json).put ::Io::Flow::V0::Models::ItemMargin.new(r) end |
#put_pricing_by_key(organization, key, pricing) ⇒ Object
Update the pricing settings for this experience
656 657 658 659 660 661 662 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 656 def put_pricing_by_key(organization, key, pricing) HttpClient::Preconditions.assert_class('organization', organization, String) HttpClient::Preconditions.assert_class('key', key, String) HttpClient::Preconditions.assert_class('pricing', pricing, ::Io::Flow::V0::Models::Pricing) r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}/pricing").with_json(pricing.to_json).put ::Io::Flow::V0::Models::Pricing.new(r) end |