Class: Io::Flow::V0::Clients::Organizations

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Organizations

Returns a new instance of Organizations.



1606
1607
1608
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1606

def initialize(client)
  @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
end

Instance Method Details

#delete_by_organization_id(organization_id) ⇒ Object

Delete the organization with this id



1685
1686
1687
1688
1689
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1685

def delete_by_organization_id(organization_id)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  r = @client.request("/organizations/#{CGI.escape(organization_id)}").delete
  nil
end

#delete_settings_and_regions_by_organization_id_and_region(organization_id, region) ⇒ Object

Removes the setting for this region for a specific organization



1723
1724
1725
1726
1727
1728
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1723

def delete_settings_and_regions_by_organization_id_and_region(organization_id, region)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  HttpClient::Preconditions.assert_class('region', region, String)
  r = @client.request("/organizations/#{CGI.escape(organization_id)}/settings/regions/#{CGI.escape(region)}").delete
  nil
end

#get(incoming = {}) ⇒ Object

Search organizations. Always paginated.



1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1633

def get(incoming={})
  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) }),
    :name => (x = opts.delete(:name); x.nil? ? nil : HttpClient::Preconditions.assert_class('name', x, String)),
    :environment => (x = opts.delete(:environment); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Environment) ? x : ::Io::Flow::V0::Models::Environment.apply(x)).value),
    :parent => (x = opts.delete(:parent); x.nil? ? nil : HttpClient::Preconditions.assert_class('parent', 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("/organizations").with_query(query).get
  r.map { |x| ::Io::Flow::V0::Models::Organization.new(x) }
end

#get_by_organization_id(organization_id) ⇒ Object

Returns information about a specific organization.



1670
1671
1672
1673
1674
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1670

def get_by_organization_id(organization_id)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  r = @client.request("/organizations/#{CGI.escape(organization_id)}").get
  ::Io::Flow::V0::Models::Organization.new(r)
end

#get_countries_and_destinations_by_organization(organization) ⇒ Object

List of all destination countries available for this organization, including countries within a world experience.



1626
1627
1628
1629
1630
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1626

def get_countries_and_destinations_by_organization(organization)
  HttpClient::Preconditions.assert_class('organization', organization, String)
  r = @client.request("/#{CGI.escape(organization)}/countries/destinations").get
  r.map { |x| ::Io::Flow::V0::Models::Country.new(x) }
end

#get_countries_by_organization(organization, incoming = {}) ⇒ Object

The countries resources provides a unique list of all of the countries for which an experience exists. We generate this list of countries by iterating through all of the experience regions, and collecting all of the countries.



1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1613

def get_countries_by_organization(organization, incoming={})
  HttpClient::Preconditions.assert_class('organization', organization, String)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  query = {
    :ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)),
    :country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
  }.delete_if { |k, v| v.nil? }
  r = @client.request("/#{CGI.escape(organization)}/countries").with_query(query).get
  r.map { |x| ::Io::Flow::V0::Models::Country.new(x) }
end

#get_settings_and_currencies_by_organization_id(organization_id) ⇒ Object

Returns currencies for a specific organization.



1692
1693
1694
1695
1696
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1692

def get_settings_and_currencies_by_organization_id(organization_id)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  r = @client.request("/organizations/#{CGI.escape(organization_id)}/settings/currencies").get
  r.map { |x| ::Io::Flow::V0::Models::Currency.new(x) }
end

#get_settings_and_regions_and_countries_and_available_by_organization_id(organization_id) ⇒ Object

Returns the list of enabled countries based on the region settings for a specific organization



1707
1708
1709
1710
1711
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1707

def get_settings_and_regions_and_countries_and_available_by_organization_id(organization_id)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  r = @client.request("/organizations/#{CGI.escape(organization_id)}/settings/regions/countries/available").get
  r.map { |x| ::Io::Flow::V0::Models::Country.new(x) }
end

#get_settings_and_regions_by_organization_id(organization_id) ⇒ Object

Returns the region settings associated to a specific organization.



1699
1700
1701
1702
1703
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1699

def get_settings_and_regions_by_organization_id(organization_id)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  r = @client.request("/organizations/#{CGI.escape(organization_id)}/settings/regions").get
  r.map { |x| ::Io::Flow::V0::Models::RegionSetting.new(x) }
end

#get_versions(incoming = {}) ⇒ Object

Provides visibility into recent changes of each object, including deletion



1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1656

def get_versions(incoming={})
  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) }),
    :organization => (x = opts.delete(:organization); x.nil? ? nil : HttpClient::Preconditions.assert_class('organization', x, Array).map { |v| HttpClient::Preconditions.assert_class('organization', 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("/organizations/versions").with_query(query).get
  r.map { |x| ::Io::Flow::V0::Models::OrganizationVersion.new(x) }
end

#post(organization_form) ⇒ Object

Create a new organization.



1649
1650
1651
1652
1653
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1649

def post(organization_form)
  (x = organization_form; x.is_a?(::Io::Flow::V0::Models::OrganizationForm) ? x : ::Io::Flow::V0::Models::OrganizationForm.new(x))
  r = @client.request("/organizations").with_json(organization_form.to_json).post
  ::Io::Flow::V0::Models::Organization.new(r)
end

#put_by_organization_id(organization_id, organization_put_form) ⇒ Object

Update or create an organization with the specified id.



1677
1678
1679
1680
1681
1682
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1677

def put_by_organization_id(organization_id, organization_put_form)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  (x = organization_put_form; x.is_a?(::Io::Flow::V0::Models::OrganizationPutForm) ? x : ::Io::Flow::V0::Models::OrganizationPutForm.new(x))
  r = @client.request("/organizations/#{CGI.escape(organization_id)}").with_json(organization_put_form.to_json).put
  ::Io::Flow::V0::Models::Organization.new(r)
end

#put_settings_and_regions_by_organization_id_and_region(organization_id, region, region_setting_form) ⇒ Object

Updates or creates a region setting for a specific organization



1714
1715
1716
1717
1718
1719
1720
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1714

def put_settings_and_regions_by_organization_id_and_region(organization_id, region, region_setting_form)
  HttpClient::Preconditions.assert_class('organization_id', organization_id, String)
  HttpClient::Preconditions.assert_class('region', region, String)
  (x = region_setting_form; x.is_a?(::Io::Flow::V0::Models::RegionSettingForm) ? x : ::Io::Flow::V0::Models::RegionSettingForm.new(x))
  r = @client.request("/organizations/#{CGI.escape(organization_id)}/settings/regions/#{CGI.escape(region)}").with_json(region_setting_form.to_json).put
  ::Io::Flow::V0::Models::RegionSetting.new(r)
end