Class: PublishingPlatformApi::PublishingApi
- Defined in:
- lib/publishing_platform_api/publishing_api.rb
Overview
Adapter for the Publishing API.
Defined Under Namespace
Classes: NoLiveVersion
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#discard_draft(content_id, options = {}) ⇒ Object
Discard a draft.
-
#get_content(content_id, params = {}) ⇒ PublishingPlatformApi::Response
Return a content item.
-
#get_content_items(params) ⇒ Object
Get a list of content items from the Publishing API.
-
#get_expanded_links(content_id, with_drafts: true, generate: false) ⇒ Object
Get expanded links.
-
#get_linkables(document_type: nil) ⇒ Object
FIXME: Add documentation.
-
#get_links(content_id) ⇒ PublishingPlatformApi::Response
Get the link set for the given content_id.
-
#patch_links(content_id, params) ⇒ Object
Patch the links of a content item.
-
#publish(content_id, options = {}) ⇒ Object
Publish a content item.
-
#put_content(content_id, payload) ⇒ Object
Put a content item.
-
#put_path(base_path, payload) ⇒ Object
Reserves a path for a publishing application.
-
#republish(content_id, options = {}) ⇒ Object
Republish a content item.
-
#unpublish(content_id, type:, explanation: nil, alternative_path: nil, discard_drafts: false, allow_draft: false, previous_version: nil, unpublished_at: nil, redirects: nil) ⇒ Object
Unpublish a content item.
- #unreserve_path(base_path, publishing_app) ⇒ Object
Methods inherited from Base
#client, #create_client, #get_list, #initialize, #url_for_slug
Constructor Details
This class inherits a constructor from PublishingPlatformApi::Base
Instance Method Details
#discard_draft(content_id, options = {}) ⇒ Object
Discard a draft
Deletes the draft content item.
97 98 99 100 101 102 103 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 97 def discard_draft(content_id, = {}) optional_keys = %i[previous_version] params = merge_optional_keys({}, , optional_keys) post_json(discard_url(content_id), params) end |
#get_content(content_id, params = {}) ⇒ PublishingPlatformApi::Response
Return a content item
Raises exception if the item doesn’t exist.
28 29 30 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 28 def get_content(content_id, params = {}) get_json(content_url(content_id, params)) end |
#get_content_items(params) ⇒ Object
Get a list of content items from the Publishing API.
The only required key in the params hash is ‘document_type`. These will be used to filter down the content items being returned by the API. Other allowed options can be seen from the link below.
205 206 207 208 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 205 def get_content_items(params) query = query_string(params) get_json("#{endpoint}/content#{query}") end |
#get_expanded_links(content_id, with_drafts: true, generate: false) ⇒ Object
Get expanded links
Return the expanded links of the item.
151 152 153 154 155 156 157 158 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 151 def (content_id, with_drafts: true, generate: false) params = {} params[:with_drafts] = "false" unless with_drafts params[:generate] = "true" if generate query = query_string(params) validate_content_id(content_id) get_json("#{endpoint}/expanded-links/#{content_id}#{query}") end |
#get_linkables(document_type: nil) ⇒ Object
FIXME: Add documentation
211 212 213 214 215 216 217 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 211 def get_linkables(document_type: nil) if document_type.nil? raise ArgumentError, "Please provide a `document_type`" end get_json("#{endpoint}/linkables?document_type=#{document_type}") end |
#get_links(content_id) ⇒ PublishingPlatformApi::Response
Get the link set for the given content_id.
Given a Content ID, it fetchs the existing link set and their version.
124 125 126 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 124 def get_links(content_id) get_json(links_url(content_id)) end |
#patch_links(content_id, params) ⇒ Object
Patch the links of a content item
178 179 180 181 182 183 184 185 186 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 178 def patch_links(content_id, params) payload = { links: params.fetch(:links), } payload = merge_optional_keys(payload, params, %i[previous_version bulk_publishing]) patch_json(links_url(content_id), payload) end |
#publish(content_id, options = {}) ⇒ Object
Publish a content item
The publishing-api will “publish” a draft item, so that it will be visible on the public site.
39 40 41 42 43 44 45 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 39 def publish(content_id, = {}) optional_keys = %i[previous_version] params = merge_optional_keys({}, , optional_keys) post_json(publish_url(content_id), params) end |
#put_content(content_id, payload) ⇒ Object
Put a content item
14 15 16 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 14 def put_content(content_id, payload) put_json(content_url(content_id), payload) end |
#put_path(base_path, payload) ⇒ Object
Reserves a path for a publishing application
Returns success or failure only.
225 226 227 228 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 225 def put_path(base_path, payload) url = "#{endpoint}/paths#{base_path}" put_json(url, payload) end |
#republish(content_id, options = {}) ⇒ Object
Republish a content item
The publishing-api will “republish” a live edition. This can be used to remove an unpublishing or to re-send a published edition downstream
54 55 56 57 58 59 60 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 54 def republish(content_id, = {}) optional_keys = %i[previous_version] params = merge_optional_keys({}, , optional_keys) post_json(republish_url(content_id), params) end |
#unpublish(content_id, type:, explanation: nil, alternative_path: nil, discard_drafts: false, allow_draft: false, previous_version: nil, unpublished_at: nil, redirects: nil) ⇒ Object
Unpublish a content item
The publishing API will “unpublish” a live item, to remove it from the public site, or update an existing unpublishing.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 75 def unpublish(content_id, type:, explanation: nil, alternative_path: nil, discard_drafts: false, allow_draft: false, previous_version: nil, unpublished_at: nil, redirects: nil) params = { type:, } params[:explanation] = explanation if explanation params[:alternative_path] = alternative_path if alternative_path params[:previous_version] = previous_version if previous_version params[:discard_drafts] = discard_drafts if discard_drafts params[:allow_draft] = allow_draft if allow_draft params[:unpublished_at] = unpublished_at.utc.iso8601 if unpublished_at params[:redirects] = redirects if redirects post_json(unpublish_url(content_id), params) end |
#unreserve_path(base_path, publishing_app) ⇒ Object
230 231 232 233 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 230 def unreserve_path(base_path, publishing_app) payload = { publishing_app: } delete_json(unreserve_url(base_path), payload) end |