horntell 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore CHANGED
@@ -14,3 +14,10 @@
14
14
  mkmf.log
15
15
  .sketches
16
16
  /horntell-*.gem
17
+ Vagrantfile
18
+ savestate
19
+ .Vagrantfile.swp
20
+ .vagrant
21
+ webhook.rb
22
+ test.rb
23
+ text.txt
data/README.md CHANGED
@@ -43,7 +43,7 @@ bundle install
43
43
  You need to `init`ialize the SDK with the app's key and secret, which you can find in your account at [http://app.horntell.com](http://app.horntell.com). Sample usage looks like this.
44
44
 
45
45
  ```ruby
46
- Horntell::init('YOUR_APP_KEY', 'YOUR_APP_SECRET');
46
+ Horntell::App.init('YOUR_APP_KEY', 'YOUR_APP_SECRET');
47
47
  Horntell::Profile.create({
48
48
  :uid => "1337",
49
49
  :first_name => "John",
@@ -1,6 +1,7 @@
1
1
  require 'json'
2
2
  require 'rest_client'
3
3
  require 'openssl'
4
+ require 'cgi'
4
5
 
5
6
  require_relative "horntell/version.rb"
6
7
  require_relative 'horntell/errors/error.rb'
@@ -19,3 +20,5 @@ require_relative 'horntell/app.rb'
19
20
  require_relative 'horntell/profile.rb'
20
21
  require_relative 'horntell/horn.rb'
21
22
  require_relative 'horntell/campaign.rb'
23
+ require_relative 'horntell/card.rb'
24
+ require_relative 'horntell/event.rb'
@@ -48,7 +48,7 @@ module Horntell
48
48
  return @version
49
49
  end
50
50
 
51
- #return hash hmac 256
51
+ # return hash hmac 256
52
52
  def self.hash(uid)
53
53
  sha256 = OpenSSL::Digest::SHA256.new
54
54
  hash = OpenSSL::HMAC.hexdigest(sha256, @secret, "#{uid}")
@@ -9,11 +9,25 @@ module Horntell
9
9
  return raw_request('post', "/profiles/#{uid}/campaigns/#{campaignId}", data)
10
10
  end
11
11
 
12
- #triggers campaign for multiple profile
12
+ # triggers campaign for multiple profile
13
13
  def self.to_profiles(profiles, campaignId, meta = nil)
14
14
  data = { :profile_uids => profiles, :meta => meta }
15
15
 
16
16
  return raw_request('post', "/profiles/campaigns/#{campaignId}", data)
17
17
  end
18
+
19
+ # triggers campaign for single channel
20
+ def self.to_channel(uid, campaignId, meta = nil)
21
+ data = { :meta => meta }
22
+
23
+ return raw_request('post', "/channels/#{uid}/campaigns/#{campaignId}", data)
24
+ end
25
+
26
+ # triggers campaign for multiple profile
27
+ def self.to_channels(channels, campaignId, meta = nil)
28
+ data = { :channel_uids => channels, :meta => meta }
29
+
30
+ return raw_request('post', "/channels/campaigns/#{campaignId}", data)
31
+ end
18
32
  end
19
33
  end
@@ -0,0 +1,40 @@
1
+ module Horntell
2
+ class Card
3
+ extend Horntell::Http::Request
4
+
5
+ @default = 'default'
6
+
7
+ class << self
8
+ attr_accessor :default
9
+ end
10
+
11
+ # sends a card to a profile
12
+ def self.to_profile(uid, card)
13
+ card[:canvas] = card[:canvas] ? card[:canvas] : @default
14
+
15
+ return raw_request('post', "/profiles/#{uid}/cards", card)
16
+ end
17
+
18
+ # sends a card to multiple profiles
19
+ def self.to_profiles(profiles, card)
20
+ card[:profile_uids] = profiles
21
+ card[:canvas] = card[:canvas] ? card[:canvas] : @default
22
+
23
+ return raw_request('post', "/profiles/cards", card)
24
+ end
25
+ # sends a card to a channel
26
+ def self.to_channel(uid, card)
27
+ card[:canvas] = card[:canvas] ? card[:canvas] : @default
28
+
29
+ return raw_request('post', "/channels/#{uid}/cards", card)
30
+ end
31
+
32
+ # sends a card to multiple channels
33
+ def self.to_channels(channels, card)
34
+ card[:channel_uids] = channels
35
+ card[:canvas] = card[:canvas] ? card[:canvas] : @default
36
+
37
+ return raw_request('post', "/channels/cards", card)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,11 @@
1
+ module Horntell
2
+ class Event
3
+
4
+ # returns parsed payload in array
5
+ def self.from_webhook(request)
6
+ payload = request.body.read
7
+ data_parsed = CGI.parse(payload)
8
+ return JSON.parse(data_parsed['horntell_event'][0])
9
+ end
10
+ end
11
+ end
@@ -7,7 +7,7 @@ module Horntell
7
7
  return raw_request('post', "/profiles/#{uid}/horns", horn)
8
8
  end
9
9
 
10
- #sends a horn to multiple profiles
10
+ # sends a horn to multiple profiles
11
11
  def self.to_profiles(profiles, horn)
12
12
  horn[:profile_uids] = profiles
13
13
 
@@ -31,7 +31,7 @@ module Horntell
31
31
  def handle_api_error(code, body)
32
32
  error_obj = JSON.parse(body)
33
33
  error = error_obj["error"]
34
-
34
+
35
35
  case code
36
36
  when 400
37
37
  raise invalid_request_error error, code
@@ -2,17 +2,17 @@ module Horntell
2
2
  class Profile
3
3
  extend Horntell::Http::Request
4
4
 
5
- # find profile by its uid
5
+ # find profile by its uid
6
6
  def self.find(uid)
7
7
  return raw_request('get', "/profiles/#{uid}")
8
8
  end
9
9
 
10
-
10
+ # creates a profile
11
11
  def self.create(profile)
12
12
  return raw_request('post', "/profiles", profile)
13
13
  end
14
14
 
15
- # updates a profile by its uid
15
+ # updates a profile by its uid
16
16
  def self.update(uid, profile)
17
17
  return raw_request('put', "/profiles/#{uid}", profile)
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module Horntell
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,69 +1,78 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: horntell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Mohit Mamoria
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-04-04 00:00:00.000000000 Z
12
+ date: 2016-04-25 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rest-client
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - "~>"
19
+ - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '1.4'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - "~>"
27
+ - - ~>
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.4'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: json
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - "~>"
35
+ - - ~>
32
36
  - !ruby/object:Gem::Version
33
37
  version: 1.8.1
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - "~>"
43
+ - - ~>
39
44
  - !ruby/object:Gem::Version
40
45
  version: 1.8.1
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: bundler
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
53
  version: '1.7'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - "~>"
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '1.7'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rake
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - "~>"
67
+ - - ~>
60
68
  - !ruby/object:Gem::Version
61
69
  version: '10.0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - "~>"
75
+ - - ~>
67
76
  - !ruby/object:Gem::Version
68
77
  version: '10.0'
69
78
  description: This SDK allows you to easily integrate Horntell in your Ruby applications.
@@ -73,7 +82,7 @@ executables: []
73
82
  extensions: []
74
83
  extra_rdoc_files: []
75
84
  files:
76
- - ".gitignore"
85
+ - .gitignore
77
86
  - Gemfile
78
87
  - LICENSE.txt
79
88
  - README.md
@@ -82,6 +91,7 @@ files:
82
91
  - lib/horntell.rb
83
92
  - lib/horntell/app.rb
84
93
  - lib/horntell/campaign.rb
94
+ - lib/horntell/card.rb
85
95
  - lib/horntell/errors/authentication_error.rb
86
96
  - lib/horntell/errors/error.rb
87
97
  - lib/horntell/errors/forbidden_error.rb
@@ -89,6 +99,7 @@ files:
89
99
  - lib/horntell/errors/network_error.rb
90
100
  - lib/horntell/errors/not_found_error.rb
91
101
  - lib/horntell/errors/service_error.rb
102
+ - lib/horntell/event.rb
92
103
  - lib/horntell/horn.rb
93
104
  - lib/horntell/http/client.rb
94
105
  - lib/horntell/http/request.rb
@@ -98,25 +109,26 @@ files:
98
109
  homepage: http://github.com/horntell/ruby-sdk
99
110
  licenses:
100
111
  - MIT
101
- metadata: {}
102
112
  post_install_message:
103
113
  rdoc_options: []
104
114
  require_paths:
105
115
  - lib
106
116
  required_ruby_version: !ruby/object:Gem::Requirement
117
+ none: false
107
118
  requirements:
108
- - - ">="
119
+ - - ! '>='
109
120
  - !ruby/object:Gem::Version
110
121
  version: 1.9.2
111
122
  required_rubygems_version: !ruby/object:Gem::Requirement
123
+ none: false
112
124
  requirements:
113
- - - ">="
125
+ - - ! '>='
114
126
  - !ruby/object:Gem::Version
115
127
  version: '0'
116
128
  requirements: []
117
129
  rubyforge_project:
118
- rubygems_version: 2.4.3
130
+ rubygems_version: 1.8.23
119
131
  signing_key:
120
- specification_version: 4
132
+ specification_version: 3
121
133
  summary: Horntell SDK for Ruby
122
134
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: c8b857c286d6ec2a8b1c3afc89cbf9daa1b563a7
4
- data.tar.gz: eb0f7f62962d93858c40ebe9b32c51894675fd86
5
- SHA512:
6
- metadata.gz: d652b75c69eaa846fd64c702cf0f36b858bd8fb42401deb0d823bc38d7a4f550d83bcf639253dd420b4de44bde9cc28d96a0d06d75ce6e982f0c999d3b367fd2
7
- data.tar.gz: 3e48fb867e80847138151f9c0fb5ec6cd43f8e895c8f5a2dc8555c5b6c369a4f7c9dee0968aeb043c6ff50fb463bfc691992ce44411328f75de8c9f4d4fe5e88