add some custom as_json output to Story and User
This commit is contained in:
parent
6b0a965c66
commit
175ff9d2b1
|
@ -107,6 +107,18 @@ class Story < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def as_json(options = {})
|
||||||
|
h = super(:only => [
|
||||||
|
:short_id,
|
||||||
|
:title,
|
||||||
|
:url,
|
||||||
|
:comments_url,
|
||||||
|
])
|
||||||
|
h[:submitter_user] = user
|
||||||
|
h[:description] = markeddown_description
|
||||||
|
h
|
||||||
|
end
|
||||||
|
|
||||||
def assign_short_id
|
def assign_short_id
|
||||||
10.times do |try|
|
10.times do |try|
|
||||||
if try == 10
|
if try == 10
|
||||||
|
@ -229,8 +241,6 @@ class Story < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def calculated_hotness
|
def calculated_hotness
|
||||||
score = upvotes - downvotes
|
|
||||||
|
|
||||||
order = Math.log([ score.abs, 1 ].max, 10)
|
order = Math.log([ score.abs, 1 ].max, 10)
|
||||||
if score > 0
|
if score > 0
|
||||||
sign = 1
|
sign = 1
|
||||||
|
@ -245,6 +255,10 @@ class Story < ActiveRecord::Base
|
||||||
|
|
||||||
return -(order + (sign * (self.created_at.to_f / window))).round(7)
|
return -(order + (sign * (self.created_at.to_f / window))).round(7)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def score
|
||||||
|
upvotes - downvotes
|
||||||
|
end
|
||||||
|
|
||||||
def vote_summary
|
def vote_summary
|
||||||
r_counts = {}
|
r_counts = {}
|
||||||
|
|
|
@ -30,6 +30,24 @@ class User < ActiveRecord::Base
|
||||||
before_save :check_session_token
|
before_save :check_session_token
|
||||||
after_create :create_default_tag_filters, :create_rss_token
|
after_create :create_default_tag_filters, :create_rss_token
|
||||||
|
|
||||||
|
def as_json(options = {})
|
||||||
|
h = super(:only => [
|
||||||
|
:id,
|
||||||
|
:username,
|
||||||
|
:is_admin,
|
||||||
|
:is_moderator,
|
||||||
|
])
|
||||||
|
h[:avatar_url] = avatar_url
|
||||||
|
h
|
||||||
|
end
|
||||||
|
|
||||||
|
def avatar_url
|
||||||
|
"https://secure.gravatar.com/avatar/" <<
|
||||||
|
Digest::MD5.hexdigest(self.email.strip.downcase) << "?r=pg&d=" <<
|
||||||
|
CGI.escape(Rails.application.routes.url_helpers.root_url +
|
||||||
|
"images/1x1t.gif") << "&s=100"
|
||||||
|
end
|
||||||
|
|
||||||
def check_session_token
|
def check_session_token
|
||||||
if self.session_token.blank?
|
if self.session_token.blank?
|
||||||
self.session_token = Utils.random_str(60)
|
self.session_token = Utils.random_str(60)
|
||||||
|
|
Loading…
Reference in a new issue