travis-api/lib/travis/api/app/endpoint/users.rb
2014-01-28 10:22:10 -06:00

60 lines
1.6 KiB
Ruby

require 'travis/api/app'
class Travis::Api::App
class Endpoint
# TODO should this be /profile?
class Users < Endpoint
# Gives information about the currently logged in user.
#
# Example:
#
# {
# "user": {
# "name": "Sven Fuchs",
# "login": "svenfuchs",
# "email": "svenfuchs@artweb-design.de",
# "gravatar_id": "402602a60e500e85f2f5dc1ff3648ecb",
# "locale": "de",
# "is_syncing": false,
# "synced_at": "2012-08-14T22:11:21Z"
# }
# }
get '/', scope: :private do
respond_with current_user
end
get '/permissions', scope: :private do
respond_with service(:find_user_permissions), type: :permissions
end
# TODO fix url/key generation in ember-data
# get '/accounts', scope: :private do
# respond_with service(:users, :find_accounts), type: :accounts
# end
# TODO fix url/key generation in ember-data
# get '/broadcasts', scope: :private do
# respond_with service(:users, :find_broadcasts), type: :broadcasts
# end
get '/:id', scope: :private do
pass unless current_user.id.to_s == params[:id]
respond_with current_user
end
put '/:id?', scope: :private do
respond_with service(:update_user, params[:user])
end
post '/sync', scope: :private do
if current_user.syncing?
status 409
{ 'message' => "Sync already in progress. Try again later." }
else
respond_with service(:sync_user)
end
end
end
end
end