Move API methods from initializer to ApplicationRecord.

This commit is contained in:
evazion
2017-06-16 13:23:04 -05:00
parent c1834ab8dd
commit 1a998cb3fb
2 changed files with 44 additions and 49 deletions

View File

@@ -1,3 +1,47 @@
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
module ApiMethods
extend ActiveSupport::Concern
def as_json(options = {})
options ||= {}
options[:except] ||= []
options[:except] += hidden_attributes
options[:methods] ||= []
options[:methods] += method_attributes
super(options)
end
def to_xml(options = {}, &block)
options ||= {}
options[:except] ||= []
options[:except] += hidden_attributes
options[:methods] ||= []
options[:methods] += method_attributes
super(options, &block)
end
def serializable_hash(*args)
hash = super(*args)
hash.transform_keys { |key| key.delete("?") }
end
protected
def hidden_attributes
[:uploader_ip_addr, :updater_ip_addr, :creator_ip_addr, :ip_addr]
end
def method_attributes
[]
end
end
include ApiMethods
end

View File

@@ -1,54 +1,5 @@
module Danbooru
module Extensions
module ActiveRecordApi
extend ActiveSupport::Concern
def as_json(options = {})
options ||= {}
options[:except] ||= []
options[:except] += hidden_attributes
options[:methods] ||= []
options[:methods] += method_attributes
super(options)
end
def to_xml(options = {}, &block)
options ||= {}
options[:except] ||= []
options[:except] += hidden_attributes
options[:methods] ||= []
options[:methods] += method_attributes
super(options, &block)
end
def serializable_hash(*args)
hash = super(*args)
hash.transform_keys { |key| key.delete("?") }
end
protected
def hidden_attributes
[:uploader_ip_addr, :updater_ip_addr, :creator_ip_addr, :ip_addr]
end
def method_attributes
[]
end
end
end
end
class Delayed::Job
def hidden_attributes
[:handler]
end
end
class ActiveRecord::Base
include Danbooru::Extensions::ActiveRecordApi
end