File: verify.rb

package info (click to toggle)
ruby-telesignenterprise 5.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 100 kB
  • sloc: ruby: 316; makefile: 4
file content (93 lines) | stat: -rw-r--r-- 3,928 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
require 'telesign/rest'
require_relative 'omniverify'
require_relative 'constants'

VERIFY_SMS_RESOURCE = '/v1/verify/sms'
VERIFY_VOICE_RESOURCE = '/v1/verify/call'
VERIFY_SMART_RESOURCE = '/v1/verify/smart'
VERIFY_STATUS_RESOURCE = '/v1/verify/%{reference_id}'
VERIFY_COMPLETION_RESOURCE = '/v1/verify/completion/%{reference_id}'
VERIFY_OMNICHANNEL_RESOURCE = '/verification'

module TelesignEnterprise

  # The Verify API delivers phone-based verification and two-factor authentication using a time-based, one-time passcode
  # sent via SMS message and Voice call.
  class VerifyClient < Telesign::RestClient
    def initialize(customer_id,
                   api_key,
                   rest_endpoint: 'https://rest-ww.telesign.com',
                   timeout: nil,
                   source: 'ruby_telesign_enterprise',
                   sdk_version_origin: TelesignEnterprise::SDK_VERSION,
                   sdk_version_dependency: Gem.loaded_specs['telesign'].version,
                   rest_endpoint_verify: 'https://verify.telesign.com')

      @omniVerifyClient = OmniVerifyClient.new(customer_id, api_key, rest_endpoint: rest_endpoint_verify)
      super(customer_id,
            api_key,
            rest_endpoint: rest_endpoint,
            timeout: timeout,
            source: source,
            sdk_version_origin: sdk_version_origin,
            sdk_version_dependency: sdk_version_dependency)
    end

    # The SMS Verify API delivers phone-based verification and two-factor authentication using a time-based,
    # one-time passcode sent over SMS.
    #
    # See https://developer.telesign.com/docs/rest_api-verify-sms for detailed API documentation.
    def sms(phone_number, **params)
      self.post(VERIFY_SMS_RESOURCE,
                phone_number: phone_number,
                **params)
    end

    # The Voice Verify API delivers patented phone-based verification and two-factor authentication using a one-time
    # passcode sent over voice message.
    #
    # See https://developer.telesign.com/docs/rest_api-verify-call for detailed API documentation.
    def voice(phone_number, **params)
      self.post(VERIFY_VOICE_RESOURCE,
                phone_number: phone_number,
                **params)
    end

    # The Smart Verify web service simplifies the process of verifying user identity by integrating several TeleSign
    # web services into a single API call. This eliminates the need for you to make multiple calls to the TeleSign
    # Verify resource.
    #
    # See https://developer.telesign.com/docs/rest_api-smart-verify for detailed API documentation.
    def smart(phone_number, ucid, **params)
      self.post(VERIFY_SMART_RESOURCE,
                phone_number: phone_number,
                ucid: ucid,
                **params)
    end

    # Retrieves the verification result for any verify resource.
    #
    # See https://developer.telesign.com/docs/rest_api-verify-transaction-callback for detailed API documentation.
    def status(reference_id, **params)
      self.get(VERIFY_STATUS_RESOURCE % {:reference_id => reference_id},
               **params)
    end

    # Notifies TeleSign that a verification was successfully delivered to the user in order to help improve the
    # quality of message delivery routes.
    #
    # See https://developer.telesign.com/docs/completion-service-for-verify-products for detailed API documentation.
    def completion(reference_id, **params)
      self.put(VERIFY_COMPLETION_RESOURCE % {:reference_id => reference_id},
               **params)
    end

    # Use this action to create a verification process for the specified phone number.
    #
    # See https://developer.telesign.com/enterprise/reference/createverificationprocess for detailed API documentation.
    def create_verification_process(phone_number, **params)
      @omniVerifyClient.create_verification_process(phone_number, **params)
    end

  end
end