mirror of
https://github.com/manyfold3d/manyfold.git
synced 2026-10-21 19:22:18 -05:00
42 lines
1012 B
Ruby
42 lines
1012 B
Ruby
module UsageReport
|
|
def self.endpoint
|
|
ENV.fetch("USAGE_TRACKING_URL", "https://tracking.manyfold.app")
|
|
end
|
|
|
|
def self.generate
|
|
Jbuilder.encode do |report|
|
|
report.id SiteSettings.anonymous_usage_id
|
|
report.version do |version|
|
|
version.app Rails.application.config.app_version.gsub(/^v/, "")
|
|
version.sha Rails.application.config.git_sha
|
|
version.image ENV.fetch("DOCKER_TAG", nil)&.split(":")&.first
|
|
version.arch RUBY_PLATFORM
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.set_schedule!
|
|
SiteSettings.clear_cache
|
|
jobname = "usage"
|
|
if SiteSettings.anonymous_usage_id.present?
|
|
Sidekiq::Cron::Job.create(
|
|
name: jobname,
|
|
cron: "every day",
|
|
class: "UsageReportingJob"
|
|
)
|
|
else
|
|
Sidekiq::Cron::Job.destroy(jobname)
|
|
end
|
|
end
|
|
|
|
def self.enable!
|
|
SiteSettings.anonymous_usage_id ||= SecureRandom.uuid
|
|
set_schedule!
|
|
end
|
|
|
|
def self.disable!
|
|
SiteSettings.anonymous_usage_id = nil
|
|
set_schedule!
|
|
end
|
|
end
|