publishing_platform_api_adapters 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c27ed233993ab4172ab605d12f5b0f3d9a8186c2f5195c51e787fbee896e1ae7
4
- data.tar.gz: 1e1bcf222b956010f9df064385d5c4f66184fea3452cc0cb4b86d8341c7484b8
3
+ metadata.gz: 6d5184264eb9e2b1bb5c025980563ad23348940805a21fae7f1f43018f1e1b19
4
+ data.tar.gz: b2c57528a81f4e8dc7b5e615ac1c596f6a2035d04f1a47926ac28bd234035e6b
5
5
  SHA512:
6
- metadata.gz: 306199b8e21a09fc9f86edbdc4050e304d92e3ca4598284ba8f0e05a80f214f16eed64b011145f25cee4c242c59eaf81975ebb0899724b93f298ecf6a48b3ff0
7
- data.tar.gz: d13b2599f10934a2e104f6084598bc8481ff7988550ebd8b8e949141782025353d81b2463ff35f1413d87e2529e3f1a6fdc1ebca2203cccbc0c51e5824937fc9
6
+ metadata.gz: f9de58b5a14da0ee00752bf7cb940f97d9ef9bcb1301a12e380bae23ad50e6ccef56e66387cd89e197d047c92de576676623d9a970ed9475638e66c8d6a10252
7
+ data.tar.gz: 268df30f6a6806f315d92fe1fc00a8a46c4c52b75b505988756b460b5bf2a00912656113c855ef987cea611f9187e0ca2be7154c44e75ee17db63f6bbc301e63
@@ -35,16 +35,11 @@ class PublishingPlatformApi::PublishingApi < PublishingPlatformApi::Base
35
35
  # on the public site.
36
36
  #
37
37
  # @param content_id [UUID]
38
- # @param update_type [String] Either 'major', 'minor' or 'republish'
39
38
  # @param options [Hash]
40
- def publish(content_id, update_type = nil, options = {})
41
- params = {
42
- update_type:,
43
- }
44
-
39
+ def publish(content_id, options = {})
45
40
  optional_keys = %i[previous_version]
46
41
 
47
- params = merge_optional_keys(params, options, optional_keys)
42
+ params = merge_optional_keys({}, options, optional_keys)
48
43
 
49
44
  post_json(publish_url(content_id), params)
50
45
  end
@@ -107,6 +102,61 @@ class PublishingPlatformApi::PublishingApi < PublishingPlatformApi::Base
107
102
  post_json(discard_url(content_id), params)
108
103
  end
109
104
 
105
+ # Get the link set for the given content_id.
106
+ #
107
+ # Given a Content ID, it fetchs the existing link set and their version.
108
+ #
109
+ # @param content_id [String]
110
+ #
111
+ # @return [PublishingPlatformApi::Response] A response containing `links` and `version`.
112
+ #
113
+ # @example
114
+ #
115
+ # publishing_api.get_links("a-content-id")
116
+ # # => {
117
+ # "content_id" => "a-content-id",
118
+ # "links" => [
119
+ # "organisation" => "organisation-content-id",
120
+ # "document_collection" => "document-collection-content-id"
121
+ # ],
122
+ # "version" => 17
123
+ # }
124
+ def get_links(content_id)
125
+ get_json(links_url(content_id))
126
+ end
127
+
128
+ # Get expanded links
129
+ #
130
+ # Return the expanded links of the item.
131
+ #
132
+ # @param content_id [UUID]
133
+ # @param with_drafts [Bool] Whether links to draft-only editions are returned, defaulting to `true`.
134
+ # @param generate [Bool] Whether to require publishing-api to generate the expanded links, which may be slow. Defaults to `false`.
135
+ #
136
+ # @example
137
+ #
138
+ # publishing_api.get_expanded_links("8157589b-65e2-4df6-92ba-2c91d80006c0", with_drafts: false).to_h
139
+ #
140
+ # #=> {
141
+ # "generated" => "2017-08-01T10:42:49Z",
142
+ # "expanded_links" => {
143
+ # "organisations" => [
144
+ # {
145
+ # "content_id" => "21aa83a2-a47f-4189-a252-b02f8c322012",
146
+ # ... (and more attributes)
147
+ # }
148
+ # ]
149
+ # }
150
+ # }
151
+ def get_expanded_links(content_id, with_drafts: true, generate: false)
152
+ params = {}
153
+ params[:with_drafts] = "false" unless with_drafts
154
+ params[:generate] = "true" if generate
155
+ query = query_string(params)
156
+ validate_content_id(content_id)
157
+ get_json("#{endpoint}/expanded-links/#{content_id}#{query}")
158
+ end
159
+
110
160
  # Patch the links of a content item
111
161
  #
112
162
  # @param content_id [UUID]
@@ -157,6 +207,15 @@ class PublishingPlatformApi::PublishingApi < PublishingPlatformApi::Base
157
207
  get_json("#{endpoint}/content#{query}")
158
208
  end
159
209
 
210
+ # FIXME: Add documentation
211
+ def get_linkables(document_type: nil)
212
+ if document_type.nil?
213
+ raise ArgumentError, "Please provide a `document_type`"
214
+ end
215
+
216
+ get_json("#{endpoint}/linkables?document_type=#{document_type}")
217
+ end
218
+
160
219
  # Reserves a path for a publishing application
161
220
  #
162
221
  # Returns success or failure only.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PublishingPlatformApi
4
- VERSION = "0.2.0"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: publishing_platform_api_adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Publishing Platform
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-12 00:00:00.000000000 Z
11
+ date: 2024-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable