publishing_platform_api_adapters 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4cbccea8ae641f826ce2961ac0cc15f43276023f7626fa5ef069bf879989cdf
4
- data.tar.gz: 18d958e5143484a040340649c1709e59f43bf1fb6d92a6881c00066637affa64
3
+ metadata.gz: eb62fed6a72d2512d1f471e22d685569e135cf51778862f55144b232b2de6c60
4
+ data.tar.gz: ccd79815a040973a078ae707d4dfcf5d3b1f7b8c27347d3c8c190f2f651a022a
5
5
  SHA512:
6
- metadata.gz: 6ecc55e99bf9b3940e3a9f58fa0068fcc121511e8e680e1dafeab3516c9cd8f8ac330b54d47c8e1264478cf689379e1a09abe755f2678b74efc4fc4a9eef5f5e
7
- data.tar.gz: 4533f2ff437bd7cda8d2c6d04b4e15dc0a40581e327ad62ffe2352cd1a14bb239db165ac9b4549fce10a4e5767c4e31202f3afaade3c2de9b48681a4d230f995
6
+ metadata.gz: f3266daeaf38ba3f4faef257188f1a4e8cb06dad0ec451aba60aa285eec5b380c1e247569c072de8b5394df39c67b5813288ab24f50cfa7635c381bc105c37b1
7
+ data.tar.gz: 91291529747a1d3f6b6182f633411e23c7df07214238f4fa44352666da0430c5451ac742c0f31575b3286dc9dc0f48e8745c2c3b846916f4d603f7f328df8e10
@@ -0,0 +1,63 @@
1
+ require_relative "base"
2
+
3
+ class PublishingPlatformApi::Router < PublishingPlatformApi::Base
4
+ ### Backends
5
+
6
+ def get_backend(id)
7
+ get_json("#{endpoint}/backends/#{CGI.escape(id)}")
8
+ end
9
+
10
+ def add_backend(id, url)
11
+ put_json("#{endpoint}/backends/#{CGI.escape(id)}", backend: { backend_url: url })
12
+ end
13
+
14
+ def delete_backend(id)
15
+ delete_json("#{endpoint}/backends/#{CGI.escape(id)}")
16
+ end
17
+
18
+ ### Routes
19
+
20
+ def get_route(path)
21
+ get_json("#{endpoint}/routes?incoming_path=#{CGI.escape(path)}")
22
+ end
23
+
24
+ def add_route(path, type, backend_id)
25
+ put_json(
26
+ "#{endpoint}/routes",
27
+ route: {
28
+ incoming_path: path,
29
+ route_type: type,
30
+ handler: "backend",
31
+ backend_id:,
32
+ },
33
+ )
34
+ end
35
+
36
+ def add_redirect_route(path, type, destination, redirect_type = "permanent", options = {})
37
+ put_json(
38
+ "#{endpoint}/routes",
39
+ route: {
40
+ incoming_path: path,
41
+ route_type: type,
42
+ handler: "redirect",
43
+ redirect_to: destination,
44
+ redirect_type:,
45
+ segments_mode: options[:segments_mode],
46
+ },
47
+ )
48
+ end
49
+
50
+ def add_gone_route(path, type)
51
+ put_json(
52
+ "#{endpoint}/routes",
53
+ route: { incoming_path: path, route_type: type, handler: "gone" },
54
+ )
55
+ end
56
+
57
+ def delete_route(path, hard_delete: false)
58
+ url = "#{endpoint}/routes?incoming_path=#{CGI.escape(path)}"
59
+ url += "&hard_delete=true" if hard_delete
60
+
61
+ delete_json(url)
62
+ end
63
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PublishingPlatformApi
4
- VERSION = "0.5.1"
4
+ VERSION = "0.6.0"
5
5
  end
@@ -1,11 +1,25 @@
1
1
  require "addressable"
2
2
  require "publishing_platform_location"
3
3
  require "time"
4
- require "publishing_platform_api/publishing_api"
5
4
  require "publishing_platform_api/content_store"
5
+ require "publishing_platform_api/publishing_api"
6
+ require "publishing_platform_api/router"
6
7
 
7
8
  # @api documented
8
9
  module PublishingPlatformApi
10
+ # Creates a PublishingPlatformApi::ContentStore adapter
11
+ #
12
+ # This will set a bearer token if a CONTENT_STORE_BEARER_TOKEN environment
13
+ # variable is set
14
+ #
15
+ # @return [PublishingPlatformApi::ContentStore]
16
+ def self.content_store(options = {})
17
+ PublishingPlatformApi::ContentStore.new(
18
+ PublishingPlatformLocation.find("content-store"),
19
+ { bearer_token: ENV["CONTENT_STORE_BEARER_TOKEN"] }.merge(options),
20
+ )
21
+ end
22
+
9
23
  # Creates a PublishingPlatformApi::PublishingApi adapter
10
24
  #
11
25
  # This will set a bearer token if a PUBLISHING_API_BEARER_TOKEN environment
@@ -19,16 +33,16 @@ module PublishingPlatformApi
19
33
  )
20
34
  end
21
35
 
22
- # Creates a PublishingPlatformApi::ContentStore adapter
36
+ # Creates a PublishingPlatformApi::Router adapter for communicating with Router API
23
37
  #
24
- # This will set a bearer token if a CONTENT_STORE_BEARER_TOKEN environment
38
+ # This will set a bearer token if a ROUTER_API_BEARER_TOKEN environment
25
39
  # variable is set
26
40
  #
27
- # @return [PublishingPlatformApi::ContentStore]
28
- def self.content_store(options = {})
29
- PublishingPlatformApi::ContentStore.new(
30
- PublishingPlatformLocation.find("content-store"),
31
- { bearer_token: ENV["CONTENT_STORE_BEARER_TOKEN"] }.merge(options),
41
+ # @return [PublishingPlatformApi::Router]
42
+ def self.router(options = {})
43
+ PublishingPlatformApi::Router.new(
44
+ PublishingPlatformLocation.find("router-api"),
45
+ { bearer_token: ENV["ROUTER_API_BEARER_TOKEN"] }.merge(options),
32
46
  )
33
47
  end
34
48
  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.5.1
4
+ version: 0.6.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-08-05 00:00:00.000000000 Z
11
+ date: 2024-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -113,6 +113,7 @@ files:
113
113
  - lib/publishing_platform_api/publishing_platform_headers.rb
114
114
  - lib/publishing_platform_api/railtie.rb
115
115
  - lib/publishing_platform_api/response.rb
116
+ - lib/publishing_platform_api/router.rb
116
117
  - lib/publishing_platform_api/version.rb
117
118
  - lib/publishing_platform_api_adapters.rb
118
119
  homepage: