vonage 7.27.1 → 7.28.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: 882867135989a3281df945f45ee52c5f8ccd01f60878e0987570f43d5802b384
4
- data.tar.gz: 805db1a403bdbe6ceae3adb90b7e1cf8afdc25215b947e5a41a010b5050e4836
3
+ metadata.gz: cf9fa1d6af062f6e7d75fb963409c9a0f040baed06cddba83bd6fa6898d81277
4
+ data.tar.gz: 5962037b1656b38a3805bbea7a7b166e99377408700b93d23a268739f2b67b09
5
5
  SHA512:
6
- metadata.gz: 14edb2c22f6e54e58bd17a26290944ec5d963706436b3b41d1f5598f094e57a7fdd09fa6ece3d4885a575c567eddaeb16bf8ebf2bd52a5fdd107a4404e7d20ce
7
- data.tar.gz: 284099e63365b6e08bbcb6ec3a03213ba9f812963841470b83e35b8f03e040611f75bdba1d6c35d5e4982604dcc1e9803e96fc5a290ed5677474537837687a38
6
+ metadata.gz: ed10b77ccd84032ac6aed5a06b4dc0978e49cfcc966b1e2208ee382bfacbd7ee507319470ac8b3e12758fac8571b1d979a25b4231e6ee11c0d1f6ca928bc917f
7
+ data.tar.gz: 971e7f19c8e151891001e2101cee4ad756e2109c70df5a2c9bee272470909a7f25cb287a09ac10b138c4fff73f930ddde187612aae42f3103bba1df88506c0c9
data/README.md CHANGED
@@ -488,6 +488,66 @@ if code_check.http_response.code == '200'
488
488
  end
489
489
  ```
490
490
 
491
+ ### Working with Verify Custom Templates and Template Fragments
492
+
493
+ Verify custom templates allow you to customize the message sent to deliver an OTP to your users, rather than using the default Vonage templates. See the [Template Management Guide document](https://developer.vonage.com/en/verify/guides/custom-templates) for more information.
494
+
495
+ #### Templates
496
+
497
+ ```ruby
498
+ # Get a list of all templates
499
+ template_list = verify.templates.list
500
+
501
+ # Get details of a specific template
502
+ template = verify.templates.info(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
503
+
504
+ # Create a new template
505
+ verify.templates.create(name: 'my-template')
506
+
507
+ # Update an existing template
508
+ verify.templates.update(
509
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
510
+ name: 'my-updated-template'
511
+ )
512
+
513
+ # Delete a template
514
+ verify.templates.delete(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
515
+ ```
516
+
517
+ #### Template Fragments
518
+
519
+ ```ruby
520
+ # Get a list of template fragments for a specific template
521
+ template_fragment_list = verify.template_fragments.list(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
522
+
523
+ # Get details of a specific template fragment
524
+ template_fragment = verify.template_fragments.info(
525
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
526
+ template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
527
+ )
528
+
529
+ # Create a new template fragement
530
+ verify.template_fragments.create(
531
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
532
+ channel: 'sms',
533
+ locale: 'en-gb',
534
+ text: 'Your code is: ${code}'
535
+ )
536
+
537
+ # Update an existing template fragment
538
+ verify.template_fragments.update(
539
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
540
+ template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc1',
541
+ text: 'Your one-time code is: ${code}'
542
+ )
543
+
544
+ # Delete a template fragment
545
+ verify.template_fragments.delete(
546
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
547
+ template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
548
+ )
549
+ ```
550
+
491
551
  ## Voice API
492
552
 
493
553
  The [Vonage Voice API](The [Vonage Verify API v2](https://developer.vonage.com/en/verify/verify-v2/overview) allows you to automate voice interactions by creating calls, streaming audio, playing text to speech, playing DTMF tones, and other actions. See the Vonage Developer Documentation for a [complete API reference](https://developer.vonage.com/en/api/voice) listing all the Voice API capabilities.
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+
3
+ class Vonage::Verify2::TemplateFragments::ListResponse < Vonage::Response
4
+ include Enumerable
5
+
6
+ def each
7
+ return enum_for(:each) unless block_given?
8
+
9
+ @entity._embedded.template_fragments.each { |item| yield item }
10
+ end
11
+ end
@@ -0,0 +1,125 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Vonage
5
+ class Verify2::TemplateFragments < Namespace
6
+ CHANNELS = ['sms', 'voice'].freeze
7
+
8
+ self.authentication = BearerToken
9
+
10
+ self.request_body = JSON
11
+
12
+ # Get a list of of template fragments for a specific template.
13
+ #
14
+ # @example
15
+ # template_fragment_list = client.verify2.template_fragments.list(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
16
+ #
17
+ # @param [required, String] :template_id. The ID of the template for which to retreive the fragments
18
+ #
19
+ # @param [optional, Integer] :page_size. The amount of template fragments to list per page
20
+ #
21
+ # @param [optional, Integer] :page. The page number to retrieve
22
+ #
23
+ # @return [ListResponse]
24
+ #
25
+ # @see https://developer.vonage.com/en/api/verify.v2#listTemplateFragments
26
+ def list(template_id:, **params)
27
+ request("/v2/verify/templates/#{template_id}/template_fragments", params: params, response_class: ListResponse)
28
+ end
29
+
30
+ # Get details of a specific template fragment.
31
+ #
32
+ # @example
33
+ # template_fragment = client.verify2.template_fragments.info(
34
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
35
+ # template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
36
+ # )
37
+ #
38
+ # @param [required, String] :template_id. The ID of the template for which to retreive the fragment
39
+ #
40
+ # @param [required, String] :template_fragment_id. The ID of the fragment to be retreived
41
+ #
42
+ # @return [Response]
43
+ #
44
+ # @see https://developer.vonage.com/en/api/verify.v2#getTemplateFragment
45
+ def info(template_id:, template_fragment_id:)
46
+ request("/v2/verify/templates/#{template_id}/template_fragments/#{template_fragment_id}")
47
+ end
48
+
49
+ # Create a new template fragment.
50
+ #
51
+ # @example
52
+ # client.verify2.template_fragments.create(
53
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
54
+ # channel: 'sms',
55
+ # locale: 'en-gb',
56
+ # text: 'Your code is: ${code}'
57
+ # )
58
+ #
59
+ # @param [required, String] :template_id. The ID of the template for which to create the fragment
60
+ #
61
+ # @param [required, String] :channel. The verification channel for which to create the fragment. Must be one of 'sms' or 'voice'
62
+ #
63
+ # @param [required, String] :locale. The locale for which to create the fragment.
64
+ #
65
+ # @param [required, String] :text. The text to be used in the template fragment.
66
+ # There are 4 reserved variables available to use as part of the text: ${code}, ${brand}, ${time-limit} and ${time-limit-unit}
67
+ #
68
+ # @return [Response]
69
+ #
70
+ # @see https://developer.vonage.com/en/api/verify.v2#addTemplateFragmentToTemplate
71
+ def create(template_id:, channel:, locale:, text:)
72
+ raise ArgumentError, "Invalid 'channel' #{channel}. Must be one of #{CHANNELS.join(', ')}" unless CHANNELS.include?(channel)
73
+ request(
74
+ "/v2/verify/templates/#{template_id}/template_fragments",
75
+ params: {
76
+ channel: channel,
77
+ locale: locale,
78
+ text: text
79
+ },
80
+ type: Post)
81
+ end
82
+
83
+ # Update an existing template fragment.
84
+ #
85
+ # @example
86
+ # client.verify2.template_fragments.update(
87
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
88
+ # template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19',
89
+ # text: 'Your one-time code is: ${code}'
90
+ # )
91
+ #
92
+ # @param [required, String] :template_id. The ID of the template with which the fragment to be updated is associated
93
+ #
94
+ # @param [required, String] :template_fragment_id. The ID of the fragment to be updated
95
+ #
96
+ # @param [required, String] :text. The text to be used in the template fragment.
97
+ # There are 4 reserved variables available to use as part of the text: ${code}, ${brand}, ${time-limit} and ${time-limit-unit}
98
+ #
99
+ # @return [Response]
100
+ #
101
+ # @see https://developer.vonage.com/en/api/verify.v2#updateTemplateFragment
102
+ def update(template_id:, template_fragment_id:, text:)
103
+ request("/v2/verify/templates/#{template_id}/template_fragments/#{template_fragment_id}", params: {text: text}, type: Patch)
104
+ end
105
+
106
+ # Delete a template fragment.
107
+ #
108
+ # @example
109
+ # client.verify2.template_fragments.delete(
110
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
111
+ # template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
112
+ # )
113
+ #
114
+ # @param [required, String] :template_id. The ID of the template with which the fragment to be deleted is associated
115
+ #
116
+ # @param [required, String] :template_fragment_id. The ID of the fragment to be deleted
117
+ #
118
+ # @return [Response]
119
+ #
120
+ # @see https://developer.vonage.com/en/api/verify.v2#deleteTemplateFragment
121
+ def delete(template_id:, template_fragment_id:)
122
+ request("/v2/verify/templates/#{template_id}/template_fragments/#{template_fragment_id}", type: Delete)
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+
3
+ class Vonage::Verify2::Templates::ListResponse < Vonage::Response
4
+ include Enumerable
5
+
6
+ def each
7
+ return enum_for(:each) unless block_given?
8
+
9
+ @entity._embedded.templates.each { |item| yield item }
10
+ end
11
+ end
@@ -0,0 +1,86 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Vonage
5
+ class Verify2::Templates < Namespace
6
+ self.authentication = BearerToken
7
+
8
+ self.request_body = JSON
9
+
10
+ # Get a list of all templates.
11
+ #
12
+ # @example
13
+ # template_list = client.verify2.templates.list
14
+ #
15
+ # @param [optional, Integer] :page_size. The amount of templates to list per page
16
+ #
17
+ # @param [optional, Integer] :page. The page number to retrieve
18
+ #
19
+ # @return [ListResponse]
20
+ #
21
+ # @see https://developer.vonage.com/en/api/verify.v2#listTemplates
22
+ def list(**params)
23
+ request('/v2/verify/templates', params: params, response_class: ListResponse)
24
+ end
25
+
26
+ # Get details of a specific template.
27
+ #
28
+ # @example
29
+ # template = client.verify2.templates.info(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
30
+ #
31
+ # @param [required, String] :template_id. The ID of the template to be retreived
32
+ #
33
+ # @return [Response]
34
+ #
35
+ # @see https://developer.vonage.com/en/api/verify.v2#getTemplate
36
+ def info(template_id:)
37
+ request('/v2/verify/templates/' + template_id)
38
+ end
39
+
40
+ # Create a new template.
41
+ #
42
+ # @example
43
+ # client.verify2.templates.create(name: 'my-template')
44
+ #
45
+ # @param [required, String] :name. The name of the template. The following characters are permitted: [A-Z a-z 0-9 _ -]
46
+ #
47
+ # @return [Response]
48
+ #
49
+ # @see https://developer.vonage.com/en/api/verify.v2#createTemplate
50
+ def create(name:)
51
+ request('/v2/verify/templates', params: { name: name }, type: Post)
52
+ end
53
+
54
+ # Update an existing template.
55
+ #
56
+ # @example
57
+ # client.verify2.templates.update(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9', name: 'my-updated-template')
58
+ #
59
+ # @param [required, String] :template_id. The ID of the template to be updated
60
+ #
61
+ # @param [optional, String] :name. The name of the template. The following characters are permitted: [A-Z a-z 0-9 _ -]
62
+ #
63
+ # @param [optional, Boolean] :is_default. Whether the template is the default template for a specific locale/channel combination
64
+ #
65
+ # @return [Response]
66
+ #
67
+ # @see https://developer.vonage.com/en/api/verify.v2#updateTemplate
68
+ def update(template_id:, **params)
69
+ request('/v2/verify/templates/' + template_id, params: params, type: Patch)
70
+ end
71
+
72
+ # Delete a template.
73
+ #
74
+ # @example
75
+ # client.verify2.templates.delete(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
76
+ #
77
+ # @param [required, String] :template_id. The ID of the template to be deleted
78
+ #
79
+ # @return [Response]
80
+ #
81
+ # @see https://developer.vonage.com/en/api/verify.v2#deleteTemplate
82
+ def delete(template_id:)
83
+ request('/v2/verify/templates/' + template_id, type: Delete)
84
+ end
85
+ end
86
+ end
@@ -96,5 +96,17 @@ module Vonage
96
96
  def workflow_builder
97
97
  WorkflowBuilder.itself
98
98
  end
99
+
100
+ # @return [Templates]
101
+ # Returns existing or instantiates a new Vonage::Verify2::Templates object
102
+ def templates
103
+ @templates ||= Templates.new(@config)
104
+ end
105
+
106
+ # @return [TemplateFragments]
107
+ # Returns existing or instantiates a new Vonage::Verify2::Templates object
108
+ def template_fragments
109
+ @template_fragments ||= TemplateFragments.new(@config)
110
+ end
99
111
  end
100
112
  end
@@ -1,5 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module Vonage
4
- VERSION = '7.27.1'
4
+ VERSION = '7.28.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vonage
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.27.1
4
+ version: 7.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-23 00:00:00.000000000 Z
11
+ date: 2024-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vonage-jwt
@@ -238,6 +238,10 @@ files:
238
238
  - lib/vonage/verify2/channels/whats_app.rb
239
239
  - lib/vonage/verify2/channels/whats_app_interactive.rb
240
240
  - lib/vonage/verify2/start_verification_options.rb
241
+ - lib/vonage/verify2/template_fragments.rb
242
+ - lib/vonage/verify2/template_fragments/list_response.rb
243
+ - lib/vonage/verify2/templates.rb
244
+ - lib/vonage/verify2/templates/list_response.rb
241
245
  - lib/vonage/verify2/workflow.rb
242
246
  - lib/vonage/verify2/workflow_builder.rb
243
247
  - lib/vonage/version.rb