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.



2482
2483
2484
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2482

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



2578
2579
2580
2581
2582
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2578

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



2616
2617
2618
2619
2620
2621
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2616

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.



2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2526

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.



2563
2564
2565
2566
2567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2563

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.



2504
2505
2506
2507
2508
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2504

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_and_statuses_by_organization(organization) ⇒ Object

Status of all countries



2511
2512
2513
2514
2515
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2511

def get_countries_and_statuses_by_organization(organization)
  HttpClient::Preconditions.assert_class('organization', organization, String)
  r = @client.request("/#{CGI.escape(organization)}/countries/statuses").get
  r.map { |x| ::Io::Flow::V0::Models::CountryStatus.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.



2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2489

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)),
    :status => HttpClient::Preconditions.assert_class('status', (x = opts.delete(:status); x.nil? ? [] : x), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::ExperienceStatus) ? x : ::Io::Flow::V0::Models::ExperienceStatus.apply(x)).value },
    :context => (x = opts.delete(:context); x.nil? ? nil : HttpClient::Preconditions.assert_class('context', 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.



2585
2586
2587
2588
2589
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2585

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



2600
2601
2602
2603
2604
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2600

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.



2592
2593
2594
2595
2596
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2592

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



2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2549

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.



2542
2543
2544
2545
2546
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2542

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.



2570
2571
2572
2573
2574
2575
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2570

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_countries_and_statuses_by_organization_and_country(organization, country, country_status_form) ⇒ Object



2517
2518
2519
2520
2521
2522
2523
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2517

def put_countries_and_statuses_by_organization_and_country(organization, country, country_status_form)
  HttpClient::Preconditions.assert_class('organization', organization, String)
  HttpClient::Preconditions.assert_class('country', country, String)
  (x = country_status_form; x.is_a?(::Io::Flow::V0::Models::CountryStatusForm) ? x : ::Io::Flow::V0::Models::CountryStatusForm.new(x))
  r = @client.request("/#{CGI.escape(organization)}/countries/statuses/#{CGI.escape(country)}").with_json(country_status_form.to_json).put
  ::Io::Flow::V0::Models::CountryStatus.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



2607
2608
2609
2610
2611
2612
2613
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 2607

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