Create api changeset comment visibility resource
This commit is contained in:
parent
457cc99349
commit
84a0c76ab2
13 changed files with 356 additions and 299 deletions
|
@ -0,0 +1,60 @@
|
|||
module Api
|
||||
module ChangesetComments
|
||||
class VisibilitiesController < ApiController
|
||||
before_action :check_api_writable
|
||||
before_action :authorize
|
||||
|
||||
authorize_resource :class => :changeset_comment_visibility
|
||||
|
||||
before_action :set_request_formats
|
||||
|
||||
##
|
||||
# Sets visible flag on comment to true
|
||||
def create
|
||||
# Check the arguments are sane
|
||||
raise OSM::APIBadUserInput, "No id was given" unless params[:changeset_comment_id]
|
||||
|
||||
# Extract the arguments
|
||||
changeset_comment_id = params[:changeset_comment_id].to_i
|
||||
|
||||
# Find the changeset
|
||||
comment = ChangesetComment.find(changeset_comment_id)
|
||||
|
||||
# Unhide the comment
|
||||
comment.update(:visible => true)
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
@changeset = comment.changeset
|
||||
|
||||
respond_to do |format|
|
||||
format.xml
|
||||
format.json
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# Sets visible flag on comment to false
|
||||
def destroy
|
||||
# Check the arguments are sane
|
||||
raise OSM::APIBadUserInput, "No id was given" unless params[:changeset_comment_id]
|
||||
|
||||
# Extract the arguments
|
||||
changeset_comment_id = params[:changeset_comment_id].to_i
|
||||
|
||||
# Find the changeset
|
||||
comment = ChangesetComment.find(changeset_comment_id)
|
||||
|
||||
# Hide the comment
|
||||
comment.update(:visible => false)
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
@changeset = comment.changeset
|
||||
|
||||
respond_to do |format|
|
||||
format.xml
|
||||
format.json
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -59,56 +59,6 @@ module Api
|
|||
end
|
||||
end
|
||||
|
||||
##
|
||||
# Sets visible flag on comment to false
|
||||
def destroy
|
||||
# Check the arguments are sane
|
||||
raise OSM::APIBadUserInput, "No id was given" unless params[:id]
|
||||
|
||||
# Extract the arguments
|
||||
id = params[:id].to_i
|
||||
|
||||
# Find the changeset
|
||||
comment = ChangesetComment.find(id)
|
||||
|
||||
# Hide the comment
|
||||
comment.update(:visible => false)
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
@changeset = comment.changeset
|
||||
render "api/changesets/show"
|
||||
|
||||
respond_to do |format|
|
||||
format.xml
|
||||
format.json
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# Sets visible flag on comment to true
|
||||
def restore
|
||||
# Check the arguments are sane
|
||||
raise OSM::APIBadUserInput, "No id was given" unless params[:id]
|
||||
|
||||
# Extract the arguments
|
||||
id = params[:id].to_i
|
||||
|
||||
# Find the changeset
|
||||
comment = ChangesetComment.find(id)
|
||||
|
||||
# Unhide the comment
|
||||
comment.update(:visible => true)
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
@changeset = comment.changeset
|
||||
render "api/changesets/show"
|
||||
|
||||
respond_to do |format|
|
||||
format.xml
|
||||
format.json
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
##
|
||||
|
|
|
@ -63,7 +63,7 @@ module Api
|
|||
@changeset = Changeset.find(params[:id])
|
||||
if params[:include_discussion].presence
|
||||
@comments = @changeset.comments
|
||||
@comments = @comments.unscope(:where => :visible) if params[:show_hidden_comments].presence && can?(:restore, ChangesetComment)
|
||||
@comments = @comments.unscope(:where => :visible) if params[:show_hidden_comments].presence && can?(:create, :changeset_comment_visibility)
|
||||
@comments = @comments.includes(:author)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue