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.
-
#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.
150 151 152 153 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 150 def get_content_items(params) query = query_string(params) get_json("#{endpoint}/content#{query}") end |
#patch_links(content_id, params) ⇒ Object
Patch the links of a content item
123 124 125 126 127 128 129 130 131 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 123 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.
161 162 163 164 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 161 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
166 167 168 169 |
# File 'lib/publishing_platform_api/publishing_api.rb', line 166 def unreserve_path(base_path, publishing_app) payload = { publishing_app: } delete_json(unreserve_url(base_path), payload) end |