gds-api-adapters 96.0.1 → 96.0.2

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: 97f27ebc485a71a0b76119ca9e0f8b4544b6da2e77f74730ac7a641c7056fa12
4
- data.tar.gz: 716e69344154e3cc0bed94ac564f9e1aa598f5b51c86873dc60d61d2449f8b23
3
+ metadata.gz: dc4d5293f2005f19ecf4e118705f8dada987a1dcc7d6a100ee750402d5d3ca2f
4
+ data.tar.gz: 90b47aa245e497c7d652fc1b2885af98438b69b704b8f7cb229b9960492426e2
5
5
  SHA512:
6
- metadata.gz: 3943261403391e42f4ff59e0eade97bcb45830e69bf8b267e7b9b9da73019c8344d59ddcbc3ea10e766ca299bbe0a900ba8528a60e021fa7b0cdd3c098c53e65
7
- data.tar.gz: f518c237981c112048dfc205cfe8f3cdd57c4ae3398bbb0917e1b1b4e556e4da1e99099b9f2f31cb5783c564c01b62d7ee6f2254cf76ff75c84b9a1242687e23
6
+ metadata.gz: f2bfe2f375887428b7f29dd888bce619900f0ff8f0c3d51d37fe7771a5282492ad54f584022ac28d4a2e7901c015cb9968c00b15d611b0915302027a27cc1e96
7
+ data.tar.gz: 3c5ef5415b155090e5c763d5c9087b8b1f2e7db181d558aba488bdcb35a548113d221a6330245999c3e6ea1d2665ef675e84d9efc9924158bd044ecaf1f659f6
@@ -487,6 +487,53 @@ class GdsApi::PublishingApi < GdsApi::Base
487
487
  e
488
488
  end
489
489
 
490
+ # Get all schemas
491
+ #
492
+ # @return [GdsApi::Response] A map of schema names with JSON schemas.
493
+ #
494
+ # @example
495
+ #
496
+ # publishing_api.get_schemas()
497
+ # # => {
498
+ # "email_address" => {
499
+ # "type": "email_address",
500
+ # "required": ["email"],
501
+ # "properties": {
502
+ # "email": { "type" => "string" },
503
+ # },
504
+ # }
505
+ # }
506
+ #
507
+ # @see https://github.com/alphagov/publishing-api/blob/main/docs/api.md#get-v2schemas
508
+ def get_schemas
509
+ get_json("#{endpoint}/v2/schemas").to_hash
510
+ end
511
+
512
+ # Get a content schema by name
513
+ #
514
+ # @param schema_name [String]
515
+ #
516
+ # @return [GdsApi::Response] A response mapping schema name with JSON schema.
517
+ #
518
+ # @example
519
+ #
520
+ # publishing_api.get_schema("email_address")
521
+ # # => {
522
+ # "email_address" => {
523
+ # "type": "email_address",
524
+ # "required": ["email"],
525
+ # "properties": {
526
+ # "email": { "type" => "string" },
527
+ # },
528
+ # }
529
+ # }
530
+ #
531
+ # @raise [HTTPNotFound] when the schema is not found
532
+ # @see https://github.com/alphagov/publishing-api/blob/main/docs/api.md#get-v2schemasschema_name
533
+ def get_schema(schema_name)
534
+ get_json("#{endpoint}/v2/schemas/#{schema_name}").to_hash
535
+ end
536
+
490
537
  private
491
538
 
492
539
  def content_url(content_id, params = {})
@@ -22,6 +22,22 @@ class GdsApi::SupportApi < GdsApi::Base
22
22
  post_json("#{endpoint}/anonymous-feedback/global-export-requests", global_export_request: request_details)
23
23
  end
24
24
 
25
+ # Raise a support ticket
26
+ # Makes a +POST+ request to support-api to create a new support ticket.
27
+ #
28
+ # @params params [Hash] Any attributes that relate to creating a new support ticket.
29
+
30
+ # @example
31
+ # SupportApi.raise_support_ticket(
32
+ # subject: "Feedback for app",
33
+ # tags: ["app_name"]
34
+ # user_agent: "Safari",
35
+ # description: "Ticket details go here.",
36
+ # )
37
+ def raise_support_ticket(params)
38
+ post_json("#{endpoint}/support-tickets", params)
39
+ end
40
+
25
41
  # Create a Page Improvement
26
42
  #
27
43
  # Makes a +POST+ request to the support api to create a Page Improvement.
@@ -802,6 +802,59 @@ module GdsApi
802
802
  body: { error: }.to_json)
803
803
  end
804
804
 
805
+ # Stub a request to get a schema by schema name
806
+ #
807
+ # @param [String] schema name
808
+ #
809
+ # @example
810
+ # stub_publishing_api_has_schemas_for_schema_name(
811
+ # "email_address",
812
+ # { "email_address" => {
813
+ # "type": "email_address",
814
+ # "required": ["email"],
815
+ # "properties": {
816
+ # "email": { "type" => "string" },
817
+ # },
818
+ # },
819
+ # }
820
+ # )
821
+ def stub_publishing_api_has_schemas_for_schema_name(schema_name, schema)
822
+ url = "#{PUBLISHING_API_V2_ENDPOINT}/schemas/#{schema_name}"
823
+ stub_request(:get, url).to_return(status: 200, body: schema.to_json, headers: {})
824
+ end
825
+
826
+ def stub_publishing_api_schema_name_path_to_return_not_found(schema_name)
827
+ url = "#{PUBLISHING_API_V2_ENDPOINT}/schemas/#{schema_name}"
828
+ stub_request(:get, url).to_return(status: 404, headers: { "Content-Type" => "application/json; charset=utf-8" })
829
+ end
830
+
831
+ # Stub a request to get all schemas
832
+ #
833
+ #
834
+ # @example
835
+ # stub_publishing_api_has_schemas(
836
+ # {
837
+ # "email_address" => {
838
+ # "type": "email_address",
839
+ # "required": ["email"],
840
+ # "properties": {
841
+ # "email": { "type" => "string" },
842
+ # },
843
+ # },
844
+ # "tax_bracket" => {
845
+ # "type": "tax_bracket",
846
+ # "required": ["code"],
847
+ # "properties": {
848
+ # "code": { "type" => "string" },
849
+ # },
850
+ # }
851
+ # }
852
+ # )
853
+ def stub_publishing_api_has_schemas(schemas)
854
+ url = "#{PUBLISHING_API_V2_ENDPOINT}/schemas"
855
+ stub_request(:get, url).to_return(status: 200, body: schemas.to_json, headers: {})
856
+ end
857
+
805
858
  private
806
859
 
807
860
  def stub_publishing_api_put(*args)
@@ -150,6 +150,18 @@ module GdsApi
150
150
  .to_return(status: 200, body: response_body.to_json)
151
151
  end
152
152
 
153
+ def stub_support_api_valid_raise_support_ticket(params)
154
+ post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/support-tickets")
155
+ post_stub.with(body: params)
156
+ post_stub.to_return(status: 201, body: { status: "success" }.to_json)
157
+ end
158
+
159
+ def stub_support_api_invalid_raise_support_ticket(params)
160
+ post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/support-tickets")
161
+ post_stub.with(body: params)
162
+ post_stub.to_return(status: 422, body: { status: "error" }.to_json)
163
+ end
164
+
153
165
  def stub_any_support_api_call
154
166
  stub_request(:any, %r{\A#{SUPPORT_API_ENDPOINT}})
155
167
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = "96.0.1".freeze
2
+ VERSION = "96.0.2".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gds-api-adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 96.0.1
4
+ version: 96.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-21 00:00:00.000000000 Z
11
+ date: 2024-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -268,14 +268,14 @@ dependencies:
268
268
  requirements:
269
269
  - - '='
270
270
  - !ruby/object:Gem::Version
271
- version: 4.16.1
271
+ version: 4.18.0
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - '='
277
277
  - !ruby/object:Gem::Version
278
- version: 4.16.1
278
+ version: 4.18.0
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: simplecov
281
281
  requirement: !ruby/object:Gem::Requirement
@@ -402,7 +402,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
402
402
  - !ruby/object:Gem::Version
403
403
  version: '0'
404
404
  requirements: []
405
- rubygems_version: 3.5.10
405
+ rubygems_version: 3.5.14
406
406
  signing_key:
407
407
  specification_version: 4
408
408
  summary: Adapters to work with GDS APIs