openpanel-sdk 0.2.7 → 0.2.8
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.
- checksums.yaml +4 -4
- data/README.md +17 -1
- data/lib/openpanel/sdk/tracker.rb +31 -0
- data/lib/openpanel/sdk/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 16d0c70749e9b13369c48b6fce17861da507dfb98213a9c5caa9a408d7398ef9
|
|
4
|
+
data.tar.gz: a853ae76dae3f2b801c6841d8a949e558feeb2c5d0df391a92c80a0802f2b760
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e86fcb48012bbefe587e9f5170bdd7d3509f6d84bf90dc2214a1a54b5975c7e0e9be7dc2527091ab8d29386b8f83acb75a23291b53ff40cbd1652527ccce2b6
|
|
7
|
+
data.tar.gz: 6418589ef60bf5716f5054db667a0af6fcc29dff087c9a86ae99da3a5ca997aa182bea4e5e428b1e34e39709eb7745d54aadbbfca2d3ac5199f1bd4d76614983
|
data/README.md
CHANGED
|
@@ -87,7 +87,7 @@ as shown in [.env_sample](.env_sample)
|
|
|
87
87
|
|
|
88
88
|
### Filtering events
|
|
89
89
|
|
|
90
|
-
Filters are used to prevent sending events to OpenPanel in certain cases
|
|
90
|
+
Filters are used to prevent sending events to OpenPanel in certain cases.
|
|
91
91
|
You can filter events by passing a `filter` lambda expression to the `track` method:
|
|
92
92
|
|
|
93
93
|
```ruby
|
|
@@ -98,6 +98,22 @@ response = tracker.track('test_event', payload: { name: 'test' }, filter: filter
|
|
|
98
98
|
# response is nil
|
|
99
99
|
``````
|
|
100
100
|
|
|
101
|
+
### Revenue tracking
|
|
102
|
+
|
|
103
|
+
Revenue tracking is done easily:
|
|
104
|
+
|
|
105
|
+
```ruby
|
|
106
|
+
response = tracker.revenue user, 100, { currency: 'EUR' }
|
|
107
|
+
# Faraday::Response
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
If you need to add the device ID, you can fetch it from the SDK:
|
|
111
|
+
|
|
112
|
+
```ruby
|
|
113
|
+
device_id = tracker.device_id
|
|
114
|
+
# <Some-fancy-id>
|
|
115
|
+
``````
|
|
116
|
+
|
|
101
117
|
## Contributing
|
|
102
118
|
|
|
103
119
|
Bug reports and pull requests are welcome on GitHub at https://github.com/tstaetter/openpanel-sdk.
|
|
@@ -89,6 +89,37 @@ module OpenPanel
|
|
|
89
89
|
send_request payload: payload
|
|
90
90
|
end
|
|
91
91
|
|
|
92
|
+
# Track revenue in OpenPanel
|
|
93
|
+
# @param user [OpenPanel::SDK::IdentifyUser] user to identify
|
|
94
|
+
# @param amount [Integer] amount of revenue
|
|
95
|
+
# @param properties [Hash] additional properties to track
|
|
96
|
+
def revenue(user, amount, properties = {})
|
|
97
|
+
payload = { name: "revenue", properties: { profileId: user.profile_id, revenue: amount }.merge(properties) }
|
|
98
|
+
payload = { type: TRACKING_TYPE_TRACK, payload: payload }
|
|
99
|
+
|
|
100
|
+
send_request payload: payload
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def fetch_device_id
|
|
104
|
+
return if @disabled
|
|
105
|
+
|
|
106
|
+
url = "#{ENV['OPENPANEL_TRACK_URL']}/device-id"
|
|
107
|
+
response = Faraday.get url, {}, @headers
|
|
108
|
+
|
|
109
|
+
case response.status
|
|
110
|
+
when 401
|
|
111
|
+
raise OpenPanel::SDK::OpenPanelError, 'Unauthorized'
|
|
112
|
+
when 429
|
|
113
|
+
raise OpenPanel::SDK::OpenPanelError, 'Too many requests'
|
|
114
|
+
when 500
|
|
115
|
+
raise OpenPanel::SDK::OpenPanelError, 'Internal server error'
|
|
116
|
+
else
|
|
117
|
+
JSON.parse(response.body, symbolize_names: true)[:deviceId]
|
|
118
|
+
end
|
|
119
|
+
rescue StandardError => e
|
|
120
|
+
raise OpenPanel::SDK::OpenPanelError, e.message
|
|
121
|
+
end
|
|
122
|
+
|
|
92
123
|
private
|
|
93
124
|
|
|
94
125
|
# Send request to OpenPanel API
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openpanel-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Stätter
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-12-
|
|
11
|
+
date: 2025-12-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|