class SyncReadme::ConfluenceSync
Public Class Methods
new(config)
click to toggle source
# File lib/sync_readme/confluence_sync.rb, line 6 def initialize(config) @page_id = config.page_id @client = Faraday.new(url: config.url) do |faraday| faraday.request :url_encoded # faraday.response :logger # log requests to STDOUT faraday.adapter Faraday.default_adapter # make requests with Net::HTTP faraday.basic_auth(config.username, config.password) end end
Public Instance Methods
get_page()
click to toggle source
# File lib/sync_readme/confluence_sync.rb, line 21 def get_page response = @client.get("rest/api/content/#{@page_id}", expand: 'body.view,version') JSON.parse(response.body) end
increment_version(page)
click to toggle source
# File lib/sync_readme/confluence_sync.rb, line 51 def increment_version(page) page['version']['number'] + 1 end
update(params)
click to toggle source
# File lib/sync_readme/confluence_sync.rb, line 26 def update(params) @client.put do |request| request.url "rest/api/content/#{@page_id}" request.headers['Content-Type'] = 'application/json' request.body = params.to_json end end
update_page_content(content)
click to toggle source
# File lib/sync_readme/confluence_sync.rb, line 16 def update_page_content(content) page = get_page update(updated_page_params(page, content)) end
updated_page_params(page, new_content)
click to toggle source
# File lib/sync_readme/confluence_sync.rb, line 34 def updated_page_params(page, new_content) { version: { number: increment_version(page), minorEdit: true }, title: page['title'], type: 'page', body: { storage: { value: new_content, representation: 'storage' } } } end