knockapi 0.1.0 → 0.3.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: df2a97ad8702bbb6843e12eeca370179e4ce14e1c591312d8bc6462c9114fd07
4
- data.tar.gz: bdaae5b1b47ef4e022ff4fa81f59250705880801ef6075af337b41ee657ef79a
3
+ metadata.gz: c8d8593021545fcd9b7c40062469882c43afe76a8777579719978ba9e54027ae
4
+ data.tar.gz: daad9dcf8d90f026cf056711b0616663edc9715d214e4a8e6b46a8c9ab021424
5
5
  SHA512:
6
- metadata.gz: 799e436d7ca5514f82b76f789f7fcf031fb67ed1d5f2705b34c9313c3a9369b04b450bd72e4e18c1d29d4119cf65a353729a5102fabfb1be3ef3ade48a9bd047
7
- data.tar.gz: aec1077db54be921685100263417cc360af0ede27c382282a0f117bf59bce26d41d1af7db4775dadfb7b19b27e3b53ceae1fab1c8b4c73b43f56dbd045ebc3a8
6
+ metadata.gz: 4525ed1305fded0310eb782031bd2e832dea431c94a6cddbeab5b72e06ee67b35458e78f1135f03911f41e0b669ee4819b514160a2bb198a648241972e3f3c6d
7
+ data.tar.gz: ab4906c79209c2159e6e2b420a1c7ad53752f174fd1bf10312afbe0775b47d38cbd11d793e7e400a3411fb6f48166018d9b5a4f8af7497b50b2ee40b0f72cb66
@@ -0,0 +1,17 @@
1
+ name: Publish Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+ jobs:
8
+ build:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v1
12
+ - name: Release Gem
13
+ uses: cadwallion/publish-rubygems-action@master
14
+ env:
15
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
16
+ RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
17
+ RELEASE_COMMAND: ./bin/publish
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- knockapi (0.1.0)
4
+ knockapi (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -44,4 +44,4 @@ DEPENDENCIES
44
44
  standard
45
45
 
46
46
  BUNDLED WITH
47
- 2.2.22
47
+ 2.2.26
data/README.md CHANGED
@@ -112,6 +112,25 @@ Knock::Preferences.set(
112
112
  Knock::Preferences.get(user_id: "jhammond")
113
113
  ```
114
114
 
115
+ ### Getting and setting channel data
116
+
117
+ ```ruby
118
+ require "knockapi"
119
+ Knock.key = "sk_12345"
120
+
121
+ # Set channel data for an APNS
122
+ Knock::Users.set_channel_data(
123
+ id: "jhammond",
124
+ channel_id: KNOCK_APNS_CHANNEL_ID,
125
+ channel_data: {
126
+ 'tokens': [apns_token]
127
+ }
128
+ )
129
+
130
+ # Get channel data for the APNS channel
131
+ Knock::Users.get_channel_data(user_id: "jhammond", channel_id: KNOCK_APNS_CHANNEL_ID)
132
+ ```
133
+
115
134
  ### Cancelling workflows
116
135
 
117
136
  ```ruby
data/bin/publish ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+
3
+ bundle install
4
+ bundle exec gem build knockapi --output=release.gem
5
+ bundle exec gem push release.gem
data/lib/knock/users.rb CHANGED
@@ -51,6 +51,38 @@ module Knock
51
51
 
52
52
  execute_request(request: request)
53
53
  end
54
+
55
+ # Get user's channel data for the given channel id
56
+ #
57
+ # @param [String] id the user ID
58
+ # @param [String] channel_id target channel ID
59
+ #
60
+ # @return [Hash] channel data
61
+ def get_channel_data(id:, channel_id:)
62
+ request = get_request(
63
+ auth: true,
64
+ path: "/v1/users/#{id}/channel_data/#{channel_id}"
65
+ )
66
+
67
+ execute_request(request: request)
68
+ end
69
+
70
+ # Upserts user's channel data for the given channel id
71
+ #
72
+ # @param [String] id the user ID
73
+ # @param [String] channel_id target channel ID
74
+ # @param [String] channel_data channel data
75
+ #
76
+ # @return [Hash] channel data
77
+ def set_channel_data(id:, channel_id:, channel_data:)
78
+ request = put_request(
79
+ auth: true,
80
+ path: "/v1/users/#{id}/channel_data/#{channel_id}",
81
+ body: { "data": channel_data }
82
+ )
83
+
84
+ execute_request(request: request)
85
+ end
54
86
  end
55
87
  end
56
88
  end
data/lib/knock/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Knock
4
- VERSION = "0.1.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knockapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Knock Labs, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-18 00:00:00.000000000 Z
11
+ date: 2021-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -57,9 +57,11 @@ email:
57
57
  - support@knock.app
58
58
  executables:
59
59
  - console
60
+ - publish
60
61
  extensions: []
61
62
  extra_rdoc_files: []
62
63
  files:
64
+ - ".github/workflows/publish.yml"
63
65
  - ".gitignore"
64
66
  - ".ruby-version"
65
67
  - Gemfile
@@ -67,6 +69,7 @@ files:
67
69
  - LICENSE
68
70
  - README.md
69
71
  - bin/console
72
+ - bin/publish
70
73
  - knockapi.gemspec
71
74
  - lib/knock.rb
72
75
  - lib/knock/base.rb
@@ -96,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
99
  - !ruby/object:Gem::Version
97
100
  version: '0'
98
101
  requirements: []
99
- rubygems_version: 3.2.22
102
+ rubygems_version: 3.2.26
100
103
  signing_key:
101
104
  specification_version: 4
102
105
  summary: API client for Knock