Fix #52 - Add API versioning (v1)

This commit is contained in:
Eugen Rochko 2016-09-27 16:58:23 +02:00
parent 3f75f52285
commit 4f9b7432dd
53 changed files with 77 additions and 134 deletions

View file

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

View file

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

View file

@ -0,0 +1,5 @@
object @account
attribute :id
node(:following) { |account| @following[account.id] || false }
node(:followed_by) { |account| @followed_by[account.id] || false }
node(:blocking) { |account| @blocking[account.id] || false }

View file

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

View file

@ -0,0 +1,10 @@
object @account
attributes :id, :username, :acct, :display_name, :note
node(:url) { |account| TagManager.instance.url_for(account) }
node(:avatar) { |account| full_asset_url(account.avatar.url(:large, false)) }
node(:header) { |account| full_asset_url(account.header.url(:medium, false)) }
node(:followers_count) { |account| account.followers.count }
node(:following_count) { |account| account.following.count }
node(:statuses_count) { |account| account.statuses.count }

View file

@ -0,0 +1,2 @@
collection @statuses
extends('api/v1/statuses/show')

View file

@ -0,0 +1,4 @@
object @app
attributes :id, :redirect_uri
node(:client_id) { |app| app.uid }
node(:client_secret) { |app| app.secret }

View file

@ -0,0 +1,2 @@
object @account
extends('api/v1/accounts/show')

View file

@ -0,0 +1,5 @@
object @media
attribute :id, :type
node(:url) { |media| full_asset_url(media.file.url) }
node(:preview_url) { |media| full_asset_url(media.file.url(:small)) }
node(:text_url) { |media| medium_url(media) }

View file

@ -0,0 +1,13 @@
object false
node :ancestors do
@ancestors.map do |status|
partial('api/v1/statuses/show', object: status)
end
end
node :descendants do
@descendants.map do |status|
partial('api/v1/statuses/show', object: status)
end
end

View file

@ -0,0 +1,2 @@
collection @statuses
extends('api/v1/statuses/show')

View file

@ -0,0 +1,2 @@
collection @statuses
extends('api/v1/statuses/show')

View file

@ -0,0 +1,31 @@
object @status
attributes :id, :created_at, :in_reply_to_id
node(:uri) { |status| TagManager.instance.uri_for(status) }
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) { |status| current_account.favourited?(status) }
node(:reblogged) { |status| current_account.reblogged?(status) }
child :reblog => :reblog do
extends('api/v1/statuses/show')
end
child :account do
extends('api/v1/accounts/show')
end
child :media_attachments, object_root: false do
attributes :id, :remote_url, :type
node(:url) { |media| full_asset_url(media.file.url) }
node(:preview_url) { |media| full_asset_url(media.file.url(:small)) }
end
child :mentions, object_root: false do
node(:url) { |mention| TagManager.instance.url_for(mention.account) }
node(:acct) { |mention| mention.account.acct }
node(:id) { |mention| mention.account_id }
end