remark_analytics 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RemarkAnalytics
4
+ module Jobs
5
+ class ApplicationJob < ActiveJob::Base
6
+ end
7
+ end
8
+ 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
@@ -0,0 +1,4 @@
1
+ module RemarkAnalytics
2
+ class Railtie < ::Rails::Railtie
3
+ end
4
+ end
@@ -0,0 +1,3 @@
1
+ module RemarkAnalytics
2
+ VERSION = '1.0.0'.freeze
3
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'remark_analytics/railtie'
4
+ require 'remark_analytics/version'
5
+ require 'remark_analytics/event'
6
+
7
+ require 'remark_analytics/jobs/application_job'
8
+ require 'remark_analytics/jobs/post_event_job'
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: []