Sha256: 26fa2b8da887580b135ba0e2c23c0fac1a3088ed6405eb68f1567a0b8f0f2e05
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
require 'oauth2' module CobotClient # Used to install links into the Cobot navigation of a space. class NavigationLinkService # api_client - an CobotClient::ApiClient # access_token - an access token string (owner must be admin of the space to be used) def initialize(api_client, space_sudomain) @api_client = api_client @subdomain = space_sudomain end # Checks if links are already installed and if not installs them. # # new_links - any number of `CobotClient::NavigationLink`s # # Returns the links as `[CobotClient::NavigationLink]` def install_links(new_links) existing_links = get_links missing_links = new_links.reject do |new_link| existing_links.find do |existing_link| existing_link.section == new_link.section && existing_link.iframe_url == new_link.iframe_url end end created_links = missing_links.map do |link| create_link(link) end existing_links + created_links end private def get_links @api_client.get(@subdomain, '/navigation_links').map do |attributes| NavigationLink.new attributes end end def create_link(link) response = @api_client.post(@subdomain, '/navigation_links', section: link.section, label: link.label, iframe_url: link.iframe_url, user_editable: link.user_editable) NavigationLink.new response end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cobot_client-5.0.0 | lib/cobot_client/navigation_link_service.rb |
cobot_client-4.0.0 | lib/cobot_client/navigation_link_service.rb |