Fix reblogged/favourited caching; add API endpoints for who favd/reblogged status

This commit is contained in:
Eugen Rochko 2016-11-03 14:50:22 +01:00
parent c003e70758
commit e4671adc25
5 changed files with 30 additions and 6 deletions

View file

@ -1,3 +1,4 @@
cache
attributes :id, :created_at, :in_reply_to_id
node(:uri) { |status| TagManager.instance.uri_for(status) }
@ -5,8 +6,6 @@ node(:content) { |status| Formatter.instance.format(status) }
node(:url) { |status| TagManager.instance.url_for(status) }
node(:reblogs_count) { |status| status.reblogs_count }
node(:favourites_count) { |status| status.favourites_count }
node(:favourited, if: proc { !current_account.nil? }) { |status| defined?(@favourites_map) ? !!@favourites_map[status.id] : current_account.favourited?(status) }
node(:reblogged, if: proc { !current_account.nil? }) { |status| defined?(@reblogs_map) ? !!@reblogs_map[status.id] : current_account.reblogged?(status) }
child :account do
extends 'api/v1/accounts/show'

View file

@ -0,0 +1,2 @@
collection @accounts
extends 'api/v1/accounts/show'

View file

@ -1,8 +1,13 @@
object @status
cache
extends 'api/v1/statuses/_show'
node(:favourited, if: proc { !current_account.nil? }) { |status| defined?(@favourites_map) ? !!@favourites_map[status.id] : current_account.favourited?(status) }
node(:reblogged, if: proc { !current_account.nil? }) { |status| defined?(@reblogs_map) ? !!@reblogs_map[status.id] : current_account.reblogged?(status) }
child :reblog => :reblog do
extends 'api/v1/statuses/_show'
node(:favourited, if: proc { !current_account.nil? }) { |status| defined?(@favourites_map) ? !!@favourites_map[status.id] : current_account.favourited?(status) }
node(:reblogged, if: proc { !current_account.nil? }) { |status| defined?(@reblogs_map) ? !!@reblogs_map[status.id] : current_account.reblogged?(status) }
end