Class: HybridPlatformsConductor::Confluence::ConfluenceApi
- Inherits:
-
Object
- Object
- HybridPlatformsConductor::Confluence::ConfluenceApi
- Includes:
- LoggerHelpers
- Defined in:
- lib/hybrid_platforms_conductor/confluence.rb
Overview
Provide an API access on Confluence
Constant Summary
Constants included from LoggerHelpers
LoggerHelpers::LEVELS_MODIFIERS, LoggerHelpers::LEVELS_TO_STDERR
Instance Method Summary collapse
-
#initialize(confluence_url, confluence_user_name, confluence_password, logger: Logger.new($stdout), logger_stderr: Logger.new($stderr)) ⇒ ConfluenceApi
constructor
Constructor.
-
#page_info(page_id) ⇒ Object
Return some info of a given page ID.
-
#page_storage_format(page_id) ⇒ Object
Return a Confluence storage format content from a page ID.
-
#update_page(page_id, content, version: nil) ⇒ Object
Update a Confluence page to a new content.
Methods included from LoggerHelpers
#err, #init_loggers, #log_component=, #log_debug?, #log_level=, #out, #section, #set_loggers_format, #stderr_device, #stderr_device=, #stderr_displayed?, #stdout_device, #stdout_device=, #stdout_displayed?, #stdouts_to_s, #with_progress_bar
Constructor Details
#initialize(confluence_url, confluence_user_name, confluence_password, logger: Logger.new($stdout), logger_stderr: Logger.new($stderr)) ⇒ ConfluenceApi
Constructor
- Parameters
-
confluence_url (String): The Confluence URL
-
confluence_user_name (String): Confluence user name to be used when querying the API
-
confluence_password (SecretString): Confluence password to be used when querying the API
-
logger (Logger): Logger to be used [default = Logger.new(STDOUT)]
-
logger_stderr (Logger): Logger to be used for stderr [default = Logger.new(STDERR)]
40 41 42 43 44 45 |
# File 'lib/hybrid_platforms_conductor/confluence.rb', line 40 def initialize(confluence_url, confluence_user_name, confluence_password, logger: Logger.new($stdout), logger_stderr: Logger.new($stderr)) init_loggers(logger, logger_stderr) @confluence_url = confluence_url @confluence_user_name = confluence_user_name @confluence_password = confluence_password end |
Instance Method Details
#page_info(page_id) ⇒ Object
Return some info of a given page ID
- Parameters
-
page_id (String): Confluence page ID
- Result
-
Hash: Page information, as returned by the Confluence API
63 64 65 |
# File 'lib/hybrid_platforms_conductor/confluence.rb', line 63 def page_info(page_id) JSON.parse(call_api("rest/api/content/#{page_id}").body) end |
#page_storage_format(page_id) ⇒ Object
Return a Confluence storage format content from a page ID
- Parameters
-
page_id (String): Confluence page ID
- Result
-
Nokogiri::HTML: Storage format content, as a Nokogiri object
53 54 55 |
# File 'lib/hybrid_platforms_conductor/confluence.rb', line 53 def page_storage_format(page_id) Nokogiri::HTML(call_api("plugins/viewstorage/viewpagestorage.action?pageId=#{page_id}").body) end |
#update_page(page_id, content, version: nil) ⇒ Object
Update a Confluence page to a new content.
- Parameters
-
page_id (String): Confluence page ID
-
content (String): New content
-
version (String or nil): New version, or nil to automatically increase last existing version [default: nil]
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/hybrid_platforms_conductor/confluence.rb', line 73 def update_page(page_id, content, version: nil) info = page_info(page_id) version = info['version']['number'] + 1 if version.nil? log_debug "Update Confluence page #{page_id}..." call_api("rest/api/content/#{page_id}", :put) do |request| request['Content-Type'] = 'application/json' request.body = { type: 'page', title: info['title'], body: { storage: { value: content, representation: 'storage' } }, version: { number: version } }.to_json end end |