Class: Collavre::Comments::VersionsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ApplicationController
- Collavre::Comments::VersionsController
- Includes:
- CommentScoping
- Defined in:
- app/controllers/collavre/comments/versions_controller.rb
Instance Method Summary collapse
Instance Method Details
#destroy ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'app/controllers/collavre/comments/versions_controller.rb', line 39 def destroy unless @comment.user == Current.user || @creative.(Current.user, :admin) render json: { error: I18n.t("collavre.comments.not_owner") }, status: :forbidden and return end version = @comment.comment_versions.find(params[:id]) was_selected = @comment.selected_version_id == version.id version.destroy! if was_selected # Roll back to the latest remaining version latest = @comment.comment_versions.order(:version_number).last if latest @comment.update!(selected_version_id: latest.id, content: latest.content) else @comment.update!(selected_version_id: nil) end end remaining = @comment.comment_versions.count render json: { selected_version_id: @comment.selected_version_id, content: @comment.content, total: remaining } end |
#index ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/controllers/collavre/comments/versions_controller.rb', line 11 def index versions = @comment.comment_versions.order(:version_number).map do |v| { id: v.id, version_number: v.version_number, content: v.content, created_at: v.created_at.iso8601 } end render json: { versions: versions, selected_version_id: @comment.selected_version_id, total: versions.size } end |
#select ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'app/controllers/collavre/comments/versions_controller.rb', line 28 def select unless @comment.user == Current.user || @creative.(Current.user, :admin) render json: { error: I18n.t("collavre.comments.not_owner") }, status: :forbidden and return end version = @comment.comment_versions.find(params[:id]) @comment.update!(selected_version_id: version.id, content: version.content) render json: { selected_version_id: version.id, content: version.content } end |