ToolJet/app/controllers/metadata_controller.rb
Deepti Kakade b10d777f63
Fixes Rubocop issues in tests (#359)
* Updated project set up guide for Mac, added node version and Webpack install steps.

* Worked on PR comment i.e Can we change this line to Install Node.js ( version: v14.9.0 )

* Fixed "Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping."

* Resolved rubocop comments i.e "Style/FrozenStringLiteralComment: Missing frozen string literal comment." in test folder

Co-authored-by: Deepti Kakade <deepti@saeloun.com>
Co-authored-by: Deepti Kakade <“deepti@saeloun.com”>
2021-07-01 12:54:35 +05:30

77 lines
2.1 KiB
Ruby

# frozen_string_literal: true
class MetadataController < ApplicationController
def index
unless ENV.fetch("CHECK_FOR_UPDATES", true)
return
end
installed_version = TOOLJET_VERSION
metadata = Metadatum.first
if metadata
data = metadata.data
else
metadata = Metadatum.create(data: { last_checked: Time.now - 2.days })
data = metadata.data
end
if Time.now - data["last_checked"].to_time > 86400
check_for_updates(data, installed_version)
data = metadata.data
end
render json: {
latest_version: data["latest_version"],
installed_version: installed_version,
version_ignored: data["version_ignored"],
onboarded: data["onboarded"] || false
}
end
def skip_version
data = Metadatum.first&.data
data["version_ignored"] = true
data["ignored_version"] = data["latest_version"]
Metadatum.first.update(data: data)
end
def skip_onboarding
data = Metadatum.first&.data
data["onboarded"] = true
Metadatum.first.update(data: data)
end
def finish_installation
name = params[:name]
email = params[:email]
response = HTTParty.post("https://hub.tooljet.io/subscribe",
verify: false,
body: { name: name, email: email, installed_version: TOOLJET_VERSION }.to_json,
headers: { "Content-Type" => "application/json" })
data = Metadatum.first&.data
data["onboarded"] = true
Metadatum.first.update(data: data)
end
private
def check_for_updates(current_data, installed_version)
response = HTTParty.post("https://hub.tooljet.io/updates",
verify: false,
body: { installed_version: installed_version }.to_json,
headers: { "Content-Type" => "application/json" })
data = JSON.parse(response.body)
latest_version = data["latest_version"]
if latest_version > "0.5.3" && latest_version != current_data["ignored_version"]
current_data["latest_version"] = latest_version
current_data["version_ignored"] = false
end
current_data["last_checked"] = Time.now
Metadatum.first.update(data: current_data)
end
end