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.



1584
1585
1586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1584

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



1663
1664
1665
1666
1667
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1663

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



1701
1702
1703
1704
1705
1706
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1701

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.



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

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.



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

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.



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

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.



1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1591

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.



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

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



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

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.



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

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



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

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.



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

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.



1655
1656
1657
1658
1659
1660
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 1655

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



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

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