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