cpaas-sdk 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +4 -0
- data/LICENSE.md +1 -0
- data/README.md +25 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/cpaas-sdk.gemspec +32 -0
- data/docs/Cpaas.html +446 -0
- data/docs/Cpaas/Conversation.html +1742 -0
- data/docs/Cpaas/Notification.html +301 -0
- data/docs/Cpaas/TwoFactor.html +908 -0
- data/docs/_index.html +146 -0
- data/docs/_index.md +21 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +496 -0
- data/docs/file.README.html +102 -0
- data/docs/file._index.html +94 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +94 -0
- data/docs/js/app.js +303 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +251 -0
- data/docs/mv_index.html +102 -0
- data/docs/top-level-namespace.html +663 -0
- data/examples/2fa/.env.example +6 -0
- data/examples/2fa/.gitignore +159 -0
- data/examples/2fa/.ruby-gemset +1 -0
- data/examples/2fa/.ruby-version +1 -0
- data/examples/2fa/Gemfile +8 -0
- data/examples/2fa/README.md +34 -0
- data/examples/2fa/app.rb +134 -0
- data/examples/2fa/config.ru +10 -0
- data/examples/2fa/helper.rb +37 -0
- data/examples/2fa/public/stylesheets/forms.css +28 -0
- data/examples/2fa/public/stylesheets/global.css +7 -0
- data/examples/2fa/public/stylesheets/layout.css +45 -0
- data/examples/2fa/public/stylesheets/main.css +3 -0
- data/examples/2fa/views/alert.erb +5 -0
- data/examples/2fa/views/dashboard.erb +4 -0
- data/examples/2fa/views/index.erb +17 -0
- data/examples/2fa/views/login.erb +13 -0
- data/examples/2fa/views/verify.erb +8 -0
- data/examples/sms/.env.example +4 -0
- data/examples/sms/.gitignore +159 -0
- data/examples/sms/.ruby-gemset +1 -0
- data/examples/sms/.ruby-version +1 -0
- data/examples/sms/Gemfile +8 -0
- data/examples/sms/README.md +80 -0
- data/examples/sms/app.rb +87 -0
- data/examples/sms/config.ru +10 -0
- data/examples/sms/helper.rb +33 -0
- data/examples/sms/public/scripts/notification.js +46 -0
- data/examples/sms/public/stylesheets/forms.css +28 -0
- data/examples/sms/public/stylesheets/global.css +7 -0
- data/examples/sms/public/stylesheets/layout.css +74 -0
- data/examples/sms/public/stylesheets/main.css +3 -0
- data/examples/sms/views/alert.erb +5 -0
- data/examples/sms/views/index.erb +48 -0
- data/lib/cpaas-sdk.rb +30 -0
- data/lib/cpaas-sdk/api.rb +139 -0
- data/lib/cpaas-sdk/config.rb +9 -0
- data/lib/cpaas-sdk/resources.rb +4 -0
- data/lib/cpaas-sdk/resources/conversation.rb +268 -0
- data/lib/cpaas-sdk/resources/notification.rb +62 -0
- data/lib/cpaas-sdk/resources/notification_channel.rb +39 -0
- data/lib/cpaas-sdk/resources/twofactor.rb +136 -0
- data/lib/cpaas-sdk/util.rb +93 -0
- data/lib/cpaas-sdk/version.rb +3 -0
- data/tutorials/2FA.md +109 -0
- data/tutorials/2fa-flow.png +0 -0
- data/tutorials/GetStarted.md +86 -0
- data/tutorials/SMSMessaging.md +132 -0
- data/tutorials/index.html +86 -0
- data/tutorials/quickstarts.yml +15 -0
- metadata +238 -0
Binary file
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# Get Started
|
2
|
+
|
3
|
+
In this quickstart, we will help you dip your toes in before you dive in. This guide will help you get started with the $KANDY$ Ruby SDK.
|
4
|
+
|
5
|
+
## Using the SDK
|
6
|
+
|
7
|
+
To begin, you will need to install the ruby library in your application. The library can be installed by using the following ways:
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'cpaas-ruby'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
```bash
|
18
|
+
bundle
|
19
|
+
```
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
```bash
|
23
|
+
gem install cpaas-ruby
|
24
|
+
```
|
25
|
+
|
26
|
+
In your application, you simply need to create a new initializer `config/initializers/cpaas.rb`.
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
# Call the configure method
|
30
|
+
Cpaas.configure do |config|
|
31
|
+
# Configuration
|
32
|
+
end
|
33
|
+
```
|
34
|
+
|
35
|
+
After you've configured the SDK client, you can begin playing around with it to learn its functionality and see how it fits in your application. The API reference documentation will help to explain the details of the available features.
|
36
|
+
|
37
|
+
## Configuration
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
Cpaas.configure do |config|
|
41
|
+
config.client_id = '<private project key>'
|
42
|
+
config.client_secret = '<private project secret>'
|
43
|
+
config.base_url = '$KANDYFQDN$'
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
The information required to be authenticated should be under:
|
48
|
+
|
49
|
+
+ `Projects` -> `{your project}` -> `Project info`/`Project secret`
|
50
|
+
|
51
|
+
> + `Private Project key` should be mapped to `client_id`
|
52
|
+
> + `Private Project secret` should be mapped to `client_secret`
|
53
|
+
|
54
|
+
## Usage
|
55
|
+
|
56
|
+
All modules can be accessed via the client instance. All method invocations follow the namespaced signature
|
57
|
+
|
58
|
+
`{Client}::{ModuleName}.{method_name}(params)`
|
59
|
+
|
60
|
+
Example:
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
Cpaas::Conversation.create_message(params)
|
64
|
+
```
|
65
|
+
|
66
|
+
## Default Error Response
|
67
|
+
|
68
|
+
### Format
|
69
|
+
|
70
|
+
```ruby
|
71
|
+
{
|
72
|
+
name: '<exception type>',
|
73
|
+
exception_id: '<exception id/code>',
|
74
|
+
message: '<exception message>'
|
75
|
+
}
|
76
|
+
```
|
77
|
+
|
78
|
+
### Example
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
{
|
82
|
+
name: 'serviceException',
|
83
|
+
exception_id: 'SVC0002',
|
84
|
+
message: 'Invalid input value for message part address'
|
85
|
+
}
|
86
|
+
```
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# SMS Messaging
|
2
|
+
In this section we will send an SMS to a mobile phone, then investigate how to receive incoming SMS messages.
|
3
|
+
|
4
|
+
## Send SMS
|
5
|
+
Let's assume that you want to send SMS to +16131234567 using +16139998877 as sender address, saying "hi :)":
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
Cpaas::Conversation.create_message({
|
9
|
+
type: Cpaas::Conversation.types[:SMS],
|
10
|
+
destination_address: '+16131234567',
|
11
|
+
sender_address: '+16139998877',
|
12
|
+
message: 'hi :)'
|
13
|
+
})
|
14
|
+
```
|
15
|
+
Before moving to how the response body looks, let's walk through the highlights on the SMS request:
|
16
|
+
|
17
|
+
+ `sender_address` indicates which DID number that user desires to send the SMS from. It is expected to be an E.164 formatted number.
|
18
|
+
+ If `sender_address` field contains `default` keyword, $KANDY$ discovers the default assigned SMS DID number for that user and utilizes it as the sender address.
|
19
|
+
+ `destination_address` can either be an array of phone numbers or a single phone number string within the params containing the destinations that corresponding SMS message will be sent. For v1, only one destination is supported on $KANDY$.
|
20
|
+
+ Address value needs to contain a phone number, ideally in E.164 format. Some valid formats are:
|
21
|
+
- +16131234567
|
22
|
+
- 6131234567
|
23
|
+
- tel:+16131234567
|
24
|
+
- sip:+16131234567@domain
|
25
|
+
- sip:6131234567@domain
|
26
|
+
+ `message` field contains the text message in `UTF-8` encoded format.
|
27
|
+
|
28
|
+
> The number provided in `sender_address` field should be an assigned/purchased number for the user, otherwise $KANDY$ replies back with a Forbidden error.
|
29
|
+
|
30
|
+
Now, let's check the successful response:
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
{
|
34
|
+
delivery_info: [{
|
35
|
+
destination_address: '+16131234567',
|
36
|
+
delivery_status: 'DeliveredToNetwork'
|
37
|
+
}],
|
38
|
+
message: 'hi :)',
|
39
|
+
sender_address: '+16139998877'
|
40
|
+
}
|
41
|
+
```
|
42
|
+
In case of requesting `default` sender_address usage, sender_address field in response can be used to understand the actual number used since it contains the number being used as from address.
|
43
|
+
|
44
|
+
> + The delivery_status can have the following values `DeliveredToNetwork`, `DeliveryImpossible`
|
45
|
+
|
46
|
+
|
47
|
+
## Receive SMS
|
48
|
+
To receive SMS, you need to:
|
49
|
+
|
50
|
+
+ have a SMS capable DID number assigned and configured on $KANDY$
|
51
|
+
+ subscribe to inbound SMS
|
52
|
+
|
53
|
+
### Step 1: Subscription
|
54
|
+
You subscribe to receive inbound SMS:
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
Cpaas::Conversation.subscribe({
|
58
|
+
type: Cpaas::Conversation.types[:SMS],
|
59
|
+
webhook_url: 'https://myapp.com/inbound-sms/webhook',
|
60
|
+
destination_address: '+16139998877'
|
61
|
+
})
|
62
|
+
```
|
63
|
+
+ `destination_address` is an optional parameter to indicate which SMS DID number has been desired to receive SMS messages. Corresponding number should be one of the assigned/purchased numbers of the user or project/application, otherwise $KANDY$ replies back with Forbidden error. Also not providing this parameter triggers $KANDY$ to use the default assigned DID number against this user, in which case the response message for the subscription contains the `destination_address` field. It is highly recommended to provide `destination_address` parameter.
|
64
|
+
+ `webhook_url` is a webhook that is present in your application which is accessible from the public web. The sms notifications would be delivered to the webhook and the received notification can be consumed by using the `Cpaas::Notification.parse` helper method. The usage of `Cpaas::Notification.parse` is explained in Step 2.
|
65
|
+
|
66
|
+
A successful subscription would return:
|
67
|
+
```ruby
|
68
|
+
{
|
69
|
+
webhook_url: 'https://myapp.com/inbound-sms/webhook',
|
70
|
+
destination_address: '+16139998877'
|
71
|
+
subscription_id: '544f12a3-123ad5e-b169'
|
72
|
+
}
|
73
|
+
```
|
74
|
+
|
75
|
+
> + For every number required to receive incoming SMS, there should be an individual subscription.
|
76
|
+
> + When a number has been unassigned from a user or project/application, all corresponding inbound SMS subscriptions are cancelled and `sms_subscription_cancellation_notification` notification is sent.
|
77
|
+
|
78
|
+
Now, you are ready to receive inbound SMS messages via webhook, for example - 'https://myapp.com/inbound-sms/webhook'.
|
79
|
+
|
80
|
+
### Step 2: Receiving notification
|
81
|
+
An inbound SMS notification via webhook can be parsed by using the `Cpaas::Notification.parse` method:
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
def webhook(inbound_notification)
|
85
|
+
parsed_Response = Cpaas::Notification.parse(inbound_notification)
|
86
|
+
end
|
87
|
+
```
|
88
|
+
The parsed response returned from the `Cpaas::Notification.parse` method can look like this:
|
89
|
+
```ruby
|
90
|
+
{
|
91
|
+
date_time: 1568889113850,
|
92
|
+
destination_address: '+15202241139',
|
93
|
+
message: 'hi :)',
|
94
|
+
message_id: 'SM1-1568889114-1020821-00-66406cba',
|
95
|
+
sender_address: '+12066417772',
|
96
|
+
notification_id: '5ceb215a-163e-44f8-bbe2-d372d227ef44',
|
97
|
+
notification_date_time: 1568889114122,
|
98
|
+
type: 'inbound'
|
99
|
+
}
|
100
|
+
```
|
101
|
+
|
102
|
+
## Real-time outbound SMS sync
|
103
|
+
$KANDY$ provides notification for outbound SMS messages, to sync all online clients up-to-date in real time. The outbound notification received can also be parsed by using the `Cpaas::Notification.parse` method:
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
def webhook(outbound_notification)
|
107
|
+
parsed_response = Cpaas::Notification.parse(outbound_notification)
|
108
|
+
end
|
109
|
+
```
|
110
|
+
The parsed response returned from the `Cpaas::Notification.parse` method can look like this:
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
{
|
114
|
+
date_time: 1569218381777,
|
115
|
+
destination_address: '+12533751556',
|
116
|
+
message: 'hi',
|
117
|
+
message_id: 'SM1-1569218382-1020821-10-d042a653',
|
118
|
+
sender_address: '+13162158074',
|
119
|
+
notification_id: 'fa1fd235-2042-4273-889e-904b0c6e58c5',
|
120
|
+
notification_date_time: 1569218381182,
|
121
|
+
type: 'outbound'
|
122
|
+
}
|
123
|
+
```
|
124
|
+
With the help of this notification, clients can sync their view on sent SMS messages in real-time.
|
125
|
+
|
126
|
+
> In order to receive this notification, user should have inbound SMS subscription. Obviously this notification cannot be provided when only send SMS has been used without an SMS related subscription.
|
127
|
+
|
128
|
+
> For trial users, maximum number of SMS messages stored is 1000. When new messages are inserted to history, oldest ones are being removed.
|
129
|
+
|
130
|
+
|
131
|
+
## References
|
132
|
+
For all SMS related method details, refer to [SMS](/developer/references/ruby/1.0.0#sms-send).
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<!DOCTYPE>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
6
|
+
<title>Node.js SDK Tutorials</title>
|
7
|
+
<link rel="stylesheet" href="https://unpkg.com/docute@4/dist/docute.css">
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div id="docute"></div>
|
11
|
+
<script src="https://unpkg.com/docute@4/dist/docute.js"></script>
|
12
|
+
<script src="//cdn.jsdelivr.net/remarkable/1.7.1/remarkable.min.js"></script>
|
13
|
+
<script>
|
14
|
+
const sidebar = [{
|
15
|
+
title: "Tutorials",
|
16
|
+
links: [
|
17
|
+
{
|
18
|
+
title: 'Get Started',
|
19
|
+
link: 'GetStarted'
|
20
|
+
},
|
21
|
+
{
|
22
|
+
title: 'SMS Messaging',
|
23
|
+
link: 'SMSMessaging'
|
24
|
+
},
|
25
|
+
{
|
26
|
+
title: 'Two-Factor Authentication',
|
27
|
+
link: '2FA'
|
28
|
+
},
|
29
|
+
]
|
30
|
+
}]
|
31
|
+
const queryParams = new URLSearchParams(window.location.search);
|
32
|
+
new Docute({
|
33
|
+
target: '#docute',
|
34
|
+
sidebar,
|
35
|
+
plugins: [
|
36
|
+
{
|
37
|
+
name: 'Hide Front Matter',
|
38
|
+
extend(api) {
|
39
|
+
api.processMarkdown(md => md.replace(/---([^]*?)---/m, ''))
|
40
|
+
}
|
41
|
+
},
|
42
|
+
{
|
43
|
+
name: 'Convert KANDYFQDN',
|
44
|
+
extend(api) {
|
45
|
+
const kandyFQDN = queryParams.get('KANDYFQDN') || '$KANDYFQDN$'
|
46
|
+
api.processMarkdown(md => md.replace(/\$KANDYFQDN\$/gm, kandyFQDN))
|
47
|
+
}
|
48
|
+
},
|
49
|
+
{
|
50
|
+
name: 'Convert KANDY',
|
51
|
+
extend(api) {
|
52
|
+
const kandy = queryParams.get('KANDY') || '$KANDY$'
|
53
|
+
api.processMarkdown(md => md.replace(/\$KANDY\$/gm, kandy))
|
54
|
+
}
|
55
|
+
},
|
56
|
+
{
|
57
|
+
// This is required so that docute/vue don't mangle
|
58
|
+
// the codepen form.
|
59
|
+
name: 'Unescape HTML',
|
60
|
+
extend(api) {
|
61
|
+
// This hook will wrap the html generated by the markdown
|
62
|
+
// in a div that uses vue's "v-html" directive so that the
|
63
|
+
// html is not escaped by Vue.
|
64
|
+
api.extendMarkdownComponent(component =>{
|
65
|
+
const rawHtml = String(component.template)
|
66
|
+
// Loop through every line of the markdown to find the codepen form
|
67
|
+
// and replace it with a div with the v-html directive and set the form
|
68
|
+
// as data for the view so that it gets rendered without being escaped.
|
69
|
+
const modifiedHtml = rawHtml.split('\n')
|
70
|
+
.map(line => {
|
71
|
+
if (line.startsWith('<form action="https://codepen.io/pen/define"')) {
|
72
|
+
component.data = () => ({codepenForm: line})
|
73
|
+
return '<div v-html="codepenForm"></div>'
|
74
|
+
}
|
75
|
+
return line
|
76
|
+
})
|
77
|
+
.join('\n')
|
78
|
+
component.template = modifiedHtml
|
79
|
+
})
|
80
|
+
}
|
81
|
+
}
|
82
|
+
]
|
83
|
+
})
|
84
|
+
</script>
|
85
|
+
</body>
|
86
|
+
</html>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# "Display" data about quickstarts.
|
2
|
+
# Information to be displayed on the Quickstarts page.
|
3
|
+
|
4
|
+
- name: Get Started
|
5
|
+
description: This guide will get you started with $KANDY$ REST API Configuration, Authentication & Authorization, and Notification Channels.
|
6
|
+
link: /quickstarts/node/GetStarted
|
7
|
+
|
8
|
+
- name: SMS Messaging
|
9
|
+
description: In this section we will send an SMS to a mobile phone, then investigate how to receive delivery receipts and incoming SMS messages.
|
10
|
+
link: /quickstarts/node/SMSMessaging
|
11
|
+
|
12
|
+
- name: 2FA
|
13
|
+
description: $KANDY$ provides 2FA (two-factor authentication) API for developers to integrate their user authentication with other means, such as SMS.
|
14
|
+
link: /quickstarts/node/2FA
|
15
|
+
|
metadata
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cpaas-sdk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Keepworks
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-11-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: webmock
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.6.2
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.6.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: yard
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.9.20
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.9.20
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.12.2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.12.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jwt
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.2.1
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.2.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: httparty
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.17'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.17'
|
125
|
+
description: SDK to build robust real-time communication applications.
|
126
|
+
email:
|
127
|
+
- kandy@keepworks.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".rspec"
|
134
|
+
- ".travis.yml"
|
135
|
+
- CHANGELOG.md
|
136
|
+
- Gemfile
|
137
|
+
- LICENSE.md
|
138
|
+
- README.md
|
139
|
+
- Rakefile
|
140
|
+
- bin/console
|
141
|
+
- bin/setup
|
142
|
+
- cpaas-sdk.gemspec
|
143
|
+
- docs/Cpaas.html
|
144
|
+
- docs/Cpaas/Conversation.html
|
145
|
+
- docs/Cpaas/Notification.html
|
146
|
+
- docs/Cpaas/TwoFactor.html
|
147
|
+
- docs/_index.html
|
148
|
+
- docs/_index.md
|
149
|
+
- docs/class_list.html
|
150
|
+
- docs/css/common.css
|
151
|
+
- docs/css/full_list.css
|
152
|
+
- docs/css/style.css
|
153
|
+
- docs/file.README.html
|
154
|
+
- docs/file._index.html
|
155
|
+
- docs/file_list.html
|
156
|
+
- docs/frames.html
|
157
|
+
- docs/index.html
|
158
|
+
- docs/js/app.js
|
159
|
+
- docs/js/full_list.js
|
160
|
+
- docs/js/jquery.js
|
161
|
+
- docs/method_list.html
|
162
|
+
- docs/mv_index.html
|
163
|
+
- docs/top-level-namespace.html
|
164
|
+
- examples/2fa/.env.example
|
165
|
+
- examples/2fa/.gitignore
|
166
|
+
- examples/2fa/.ruby-gemset
|
167
|
+
- examples/2fa/.ruby-version
|
168
|
+
- examples/2fa/Gemfile
|
169
|
+
- examples/2fa/README.md
|
170
|
+
- examples/2fa/app.rb
|
171
|
+
- examples/2fa/config.ru
|
172
|
+
- examples/2fa/helper.rb
|
173
|
+
- examples/2fa/public/stylesheets/forms.css
|
174
|
+
- examples/2fa/public/stylesheets/global.css
|
175
|
+
- examples/2fa/public/stylesheets/layout.css
|
176
|
+
- examples/2fa/public/stylesheets/main.css
|
177
|
+
- examples/2fa/views/alert.erb
|
178
|
+
- examples/2fa/views/dashboard.erb
|
179
|
+
- examples/2fa/views/index.erb
|
180
|
+
- examples/2fa/views/login.erb
|
181
|
+
- examples/2fa/views/verify.erb
|
182
|
+
- examples/sms/.env.example
|
183
|
+
- examples/sms/.gitignore
|
184
|
+
- examples/sms/.ruby-gemset
|
185
|
+
- examples/sms/.ruby-version
|
186
|
+
- examples/sms/Gemfile
|
187
|
+
- examples/sms/README.md
|
188
|
+
- examples/sms/app.rb
|
189
|
+
- examples/sms/config.ru
|
190
|
+
- examples/sms/helper.rb
|
191
|
+
- examples/sms/public/scripts/notification.js
|
192
|
+
- examples/sms/public/stylesheets/forms.css
|
193
|
+
- examples/sms/public/stylesheets/global.css
|
194
|
+
- examples/sms/public/stylesheets/layout.css
|
195
|
+
- examples/sms/public/stylesheets/main.css
|
196
|
+
- examples/sms/views/alert.erb
|
197
|
+
- examples/sms/views/index.erb
|
198
|
+
- lib/cpaas-sdk.rb
|
199
|
+
- lib/cpaas-sdk/api.rb
|
200
|
+
- lib/cpaas-sdk/config.rb
|
201
|
+
- lib/cpaas-sdk/resources.rb
|
202
|
+
- lib/cpaas-sdk/resources/conversation.rb
|
203
|
+
- lib/cpaas-sdk/resources/notification.rb
|
204
|
+
- lib/cpaas-sdk/resources/notification_channel.rb
|
205
|
+
- lib/cpaas-sdk/resources/twofactor.rb
|
206
|
+
- lib/cpaas-sdk/util.rb
|
207
|
+
- lib/cpaas-sdk/version.rb
|
208
|
+
- tutorials/2FA.md
|
209
|
+
- tutorials/2fa-flow.png
|
210
|
+
- tutorials/GetStarted.md
|
211
|
+
- tutorials/SMSMessaging.md
|
212
|
+
- tutorials/index.html
|
213
|
+
- tutorials/quickstarts.yml
|
214
|
+
homepage: https://github.com/Kandy-IO/kandy-cpaas-ruby-sdk
|
215
|
+
licenses:
|
216
|
+
- SEE LICENSE IN LICENSE.md
|
217
|
+
metadata: {}
|
218
|
+
post_install_message:
|
219
|
+
rdoc_options: []
|
220
|
+
require_paths:
|
221
|
+
- lib
|
222
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
223
|
+
requirements:
|
224
|
+
- - ">="
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: '0'
|
227
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
|
+
requirements:
|
229
|
+
- - ">="
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: '0'
|
232
|
+
requirements: []
|
233
|
+
rubyforge_project:
|
234
|
+
rubygems_version: 2.7.3
|
235
|
+
signing_key:
|
236
|
+
specification_version: 4
|
237
|
+
summary: CPaaS Library
|
238
|
+
test_files: []
|