Skip to content

Commit a9e14f5

Browse files
authored
feat: Creates /user.json get route (#367)
* Create /user.json get route + test Restricted to .json format as no page needs to exist for this Bypass devise controller because devise doesn’t allow `show` method for some reason * bark bark
1 parent 09167ae commit a9e14f5

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

app/controllers/users_controller.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class UsersController < ApplicationController
2+
before_action :logged_in
3+
respond_to :json
4+
5+
def logged_in
6+
authenticate_user!
7+
end
8+
9+
def show
10+
respond_to do |format|
11+
format.json { render json: current_user }
12+
end
13+
end
14+
end

config/routes.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
mount Blazer::Engine, at: "blazer"
2525
end
2626

27+
# devise doesnt parse GET /user
28+
resource :user, only: :show, constraints: ->(req) { req.format == :json }
29+
2730
resource :questionnaires, path: "apply" do
2831
get :schools, on: :collection
2932
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require 'test_helper'
2+
3+
class UsersControllerTest < ActionController::TestCase
4+
include ActiveJob::TestHelper
5+
setup do
6+
@user = create(:user)
7+
end
8+
9+
should "allow access to user#get" do
10+
sign_in @user
11+
get :show, params: { format: :json }
12+
assert_response :success
13+
end
14+
15+
should "don't allow user#show if not signed in" do
16+
get :show, params: { format: :json }
17+
assert_response(:unauthorized)
18+
end
19+
end

0 commit comments

Comments
 (0)