Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0d85cc8
Add ReviewMappingsController
Aditya-k24 Apr 5, 2025
5b66d6e
implementing add_calibration function for review_mapping
Apr 16, 2025
41ad431
implemented select_reviewer function for review_mapping
Apr 16, 2025
786a3bc
implementing add_reviewer function for review_mapping and swagger doc…
Apr 17, 2025
ae93043
implementing assign_reviewer_dynamically in review_mappings_controller
Apr 17, 2025
39ebeb4
implementing review_allowed endpoint
Apr 17, 2025
f7a519e
implementing check_outstanding_reviews in review_mappings_controller
Apr 17, 2025
d156493
implementing assign_quiz_dynamically in review_mappings_controller
Apr 18, 2025
afb4433
list_mappings done
Aditya-k24 Apr 18, 2025
2aea0dd
automatic_review_mapping completed
Aditya-k24 Apr 18, 2025
4e7e033
automatic_review_mapping_strategy done
Aditya-k24 Apr 18, 2025
37403ab
automatic_review_mapping_staggered done
Aditya-k24 Apr 18, 2025
39414c0
assign_reviewers_for_team done
Aditya-k24 Apr 18, 2025
ce7f0ba
peer_review_strategy done
Aditya-k24 Apr 18, 2025
25b65a9
save_grade_and_comment_for_reviewer done
Aditya-k24 Apr 19, 2025
a8e27ee
Implement review mapping functionality and team
Apr 21, 2025
fa69b51
updated minor changes
Apr 22, 2025
20c0801
Merge pull request #1 from nih326/feature_nmaruva
nih326 Apr 22, 2025
66b70af
Merge branch 'review-mapping-helpers'
Aditya-k24 Apr 22, 2025
44d17cb
implemented metareviewer endpoints with Swagger docs and model integr…
Apr 22, 2025
b502ea0
resolved merge errors
Apr 22, 2025
933ac35
implemented assign_metareviewer_dynamically api endpoint
Apr 22, 2025
c375776
add deleted_outstanding_revieweres endpoint to remove unsubmitted rev…
Apr 22, 2025
2cfe77c
add endpoint to delte all metarviewers for an assignment
Apr 22, 2025
e914715
implemented DELETE /review_mappings/:id/delte_reviewer endpont
Apr 22, 2025
9d3d4fd
implemented delete_metareviewer endpoint
Apr 22, 2025
366694f
implemented delete_metareview endpoint
Apr 22, 2025
a43893e
implemented unsubmit_review endpoint for review mappings
Apr 22, 2025
fb3fffb
Merge remote-tracking branch 'origin/main' into feature-csalitre
Apr 22, 2025
c5005f8
Merge pull request #2 from nih326/feature-csalitre
csalitred Apr 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
571 changes: 571 additions & 0 deletions app/controllers/api/v1/review_mappings_controller.rb

Large diffs are not rendered by default.

25 changes: 21 additions & 4 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
include Authorization
include JwtToken

before_action :authorize
before_action :authenticate_request!

private

def authenticate_request!
@current_user = authorize_request
render json: { error: 'Not Authorized' }, status: 401 unless @current_user
end

def authorize_request
header = request.headers['Authorization']
token = header.split(' ').last if header
decoded = JsonWebToken.decode(token)
User.find(decoded[:id]) if decoded
rescue
nil
end

def current_user
@current_user
end
end
39 changes: 24 additions & 15 deletions app/controllers/authentication_controller.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
# app/controllers/api/v1/authentication_controller.rb
# app/controllers/authentication_controller.rb
require 'json_web_token'

class AuthenticationController < ApplicationController
skip_before_action :authenticate_request!

# POST /login
def login
user = User.find_by(name: params[:user_name]) || User.find_by(email: params[:user_name])
if user&.authenticate(params[:password])
payload = { id: user.id, name: user.name, full_name: user.full_name, role: user.role.name,
institution_id: user.institution.id }
token = JsonWebToken.encode(payload, 24.hours.from_now)
render json: { token: }, status: :ok
else
render json: { error: 'Invalid username / password' }, status: :unauthorized
class AuthenticationController < ApplicationController
skip_before_action :authenticate_request!

# POST /login
def login
user = User.find_by(name: params[:user_name]) || User.find_by(email: params[:user_name])

if user&.authenticate(params[:password])
payload = {
id: user.id,
name: user.name,
full_name: user.full_name,
role: user.role.name,
institution_id: user.institution&.id
}

token = JsonWebToken.encode(payload, 24.hours.from_now)

render json: { token: }, status: :ok
else
render json: { error: 'Invalid username or password' }, status: :unauthorized
end
end
end
end
end
Loading