Files

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