remark_analytics 1.0.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.
- checksums.yaml +7 -0
- data/README.md +29 -0
- data/lib/remark_analytics/event.rb +36 -0
- data/lib/remark_analytics/jobs/application_job.rb +8 -0
- data/lib/remark_analytics/jobs/post_event_job.rb +45 -0
- data/lib/remark_analytics/railtie.rb +4 -0
- data/lib/remark_analytics/version.rb +3 -0
- data/lib/remark_analytics.rb +8 -0
- metadata +91 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4c76a31814603a543b8ded0d7160a91742560ebf3a0fecef0bc3eb9398a83e92
|
4
|
+
data.tar.gz: e5f4c54206f4623f730ca26459212fa90c6785f1ded21849384fa48eab94a6b7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9cfb9a742215c299b72d254beb2f36a11bcc1b65a3f1c2d4f04d324ddbe9ab1afa01a8afc1b6e436d8afdec12b3c91aa94c571c5258f01f0cfe504e450836955
|
7
|
+
data.tar.gz: cb957ffc43dec4a9d3d44aff5bc206a9dfe819c620a7bff4afb70c761866da741a7d08d1822a86885f50a658cdb561615520aa31a6f81b5b42e66c9aa909cd2b
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# README #
|
2
|
+
|
3
|
+
This README would normally document whatever steps are necessary to get your application up and running.
|
4
|
+
|
5
|
+
### What is this repository for? ###
|
6
|
+
|
7
|
+
* Quick summary
|
8
|
+
* Version
|
9
|
+
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
|
10
|
+
|
11
|
+
### How do I get set up? ###
|
12
|
+
|
13
|
+
* Summary of set up
|
14
|
+
* Configuration
|
15
|
+
* Dependencies
|
16
|
+
* Database configuration
|
17
|
+
* How to run tests
|
18
|
+
* Deployment instructions
|
19
|
+
|
20
|
+
### Contribution guidelines ###
|
21
|
+
|
22
|
+
* Writing tests
|
23
|
+
* Code review
|
24
|
+
* Other guidelines
|
25
|
+
|
26
|
+
### Who do I talk to? ###
|
27
|
+
|
28
|
+
* Repo owner or admin
|
29
|
+
* Other community or team contact
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RemarkAnalytics
|
4
|
+
class Event
|
5
|
+
def self.emit(event_parameters)
|
6
|
+
event_params = prepare_post_parameters(event_parameters)
|
7
|
+
post_event(event_params)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.prepare_post_parameters(event_parameters)
|
11
|
+
# mix up the event params with other reuired data
|
12
|
+
result = {}
|
13
|
+
result[:name] = event_parameters[:name].presence
|
14
|
+
result[:resource_type] = event_parameters[:resource_type].presence
|
15
|
+
result[:resource_id] = event_parameters[:resource_id].presence
|
16
|
+
result[:data] = event_parameters[:data].presence || {}
|
17
|
+
result[:application_version] = event_parameters[:application_version].presence ||
|
18
|
+
RemarkAnalytics::VERSION
|
19
|
+
result[:occured_at] = event_parameters[:occured_at].presence || Time.zone.now
|
20
|
+
result[:tenant_name] = event_parameters[:tenant_name].presence ||
|
21
|
+
Rails.application.secrets.try(:REMARK_ANALYTICS_TENANT_NAME) || VP_SETTINGS[:tenant]
|
22
|
+
|
23
|
+
# validate params at the other side (analytics api endoint)
|
24
|
+
result
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.post_event(event_params)
|
28
|
+
if Rails.env.development? || Rails.env.test?
|
29
|
+
RemarkAnalytics::Jobs::PostEventJob.perform_now(event_params)
|
30
|
+
return
|
31
|
+
end
|
32
|
+
|
33
|
+
RemarkAnalytics::Jobs::PostEventJob.perform_later(event_params)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RemarkAnalytics
|
4
|
+
module Jobs
|
5
|
+
class PostEventJob < ApplicationJob
|
6
|
+
def perform(event_params)
|
7
|
+
return if connection.blank?
|
8
|
+
|
9
|
+
connection.post(
|
10
|
+
@events_endpoint,
|
11
|
+
{ event: event_params }.to_json,
|
12
|
+
'Content-Type' => 'application/json'
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def connection
|
19
|
+
analytics_url = Rails.application.secrets.try(:REMARK_ANALYTICS_URL)
|
20
|
+
username = Rails.application.secrets.try(:REMARK_ANALYTICS_USERNAME)
|
21
|
+
password = Rails.application.secrets.try(:REMARK_ANALYTICS_PASSWORD)
|
22
|
+
@events_endpoint = "#{analytics_url}/api/v1/events"
|
23
|
+
|
24
|
+
if analytics_url.blank?
|
25
|
+
Sentry.capture_message('REMARK_ANALYTICS_URL not set')
|
26
|
+
return
|
27
|
+
end
|
28
|
+
|
29
|
+
if username.blank?
|
30
|
+
Sentry.capture_message('REMARK_ANALYTICS_USERNAME not set')
|
31
|
+
return
|
32
|
+
end
|
33
|
+
|
34
|
+
if password.blank?
|
35
|
+
Sentry.capture_message('REMARK_ANALYTICS_PASSWORD not set')
|
36
|
+
return
|
37
|
+
end
|
38
|
+
|
39
|
+
Faraday.new do |conn|
|
40
|
+
conn.request(:authorization, :basic, username, password)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: remark_analytics
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nick Rockx
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-06-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.3'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.3.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.3'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.3.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rails
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 6.0.4
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 6.0.4.8
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 6.0.4
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 6.0.4.8
|
53
|
+
description: This gem/plugin is used in applications that need to fire events to the
|
54
|
+
ReMark Analytics system
|
55
|
+
email:
|
56
|
+
- nick.rockx@remarkgroup.com
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- README.md
|
62
|
+
- lib/remark_analytics.rb
|
63
|
+
- lib/remark_analytics/event.rb
|
64
|
+
- lib/remark_analytics/jobs/application_job.rb
|
65
|
+
- lib/remark_analytics/jobs/post_event_job.rb
|
66
|
+
- lib/remark_analytics/railtie.rb
|
67
|
+
- lib/remark_analytics/version.rb
|
68
|
+
homepage: https://bitbucket.org/ivaldi/rubygems-remark-analytics/src/master/
|
69
|
+
licenses:
|
70
|
+
- MIT
|
71
|
+
metadata: {}
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '3'
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
requirements: []
|
87
|
+
rubygems_version: 3.3.16
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: Gem to fire events to ReMark Analytics API from a client application
|
91
|
+
test_files: []
|