API endpoint for retrieving the current user

This commit is contained in:
Robin Ward 2014-02-05 13:46:24 -05:00
parent af5254d3b4
commit 1dac3cfd64
3 changed files with 29 additions and 0 deletions

View File

@ -55,6 +55,14 @@ class SessionController < ApplicationController
render json: {result: "ok"}
end
def current
if current_user.present?
render_serialized(current_user, CurrentUserSerializer)
else
render nothing: true, status: 404
end
end
def destroy
reset_session
log_off_user

View File

@ -113,6 +113,7 @@ Discourse::Application.routes.draw do
end
end
get "session/current" => "session#current"
get "session/csrf" => "session#csrf"
get "composer-messages" => "composer_messages#index"

View File

@ -199,4 +199,24 @@ describe SessionController do
end
describe '.current' do
context "when not logged in" do
it "retuns 404" do
xhr :get, :current
response.should_not be_success
end
end
context "when logged in" do
let!(:user) { log_in }
it "returns the JSON for the user" do
xhr :get, :current
response.should be_success
json = ::JSON.parse(response.body)
json['current_user'].should be_present
json['current_user']['id'].should == user.id
end
end
end
end