horntell 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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