1
0
Fork 0
discourse-custom-wizard-unl.../lib/custom_wizard/api/api.rb

35 Zeilen
831 B
Ruby

2019-05-31 09:54:11 +02:00
class CustomWizard::Api
include ActiveModel::SerializerSupport
attr_accessor :name,
:title
2019-05-31 09:54:11 +02:00
2021-02-24 08:50:42 +01:00
def initialize(name, data = {})
@name = name
data.each do |k, v|
self.send "#{k}=", v if self.respond_to?(k)
end
end
def self.set(name, data)
PluginStore.set("custom_wizard_api_#{name}", "metadata", data)
end
def self.get(name)
if data = PluginStore.get("custom_wizard_api_#{name}", "metadata")
self.new(name, data)
end
end
def self.remove(name)
PluginStore.remove("custom_wizard_api_#{name}", "metadata")
2019-05-31 09:54:11 +02:00
end
def self.list
PluginStoreRow.where("plugin_name LIKE 'custom_wizard_api_%' AND key = 'metadata'")
2019-05-31 09:54:11 +02:00
.map do |record|
self.new(record['plugin_name'].sub("custom_wizard_api_", ""), ::JSON.parse(record['value']))
2019-05-31 09:54:11 +02:00
end
end
end