mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-27 15:36:39 +08:00
Wrap unsaring actions in transaction [SCI-6918]
This commit is contained in:
parent
bf8f838214
commit
ba54f42d2f
2 changed files with 16 additions and 11 deletions
|
@ -6,16 +6,19 @@ class TeamRepositoriesController < ApplicationController
|
|||
|
||||
# DELETE :team_id/repositories/:repository_id/team_repositories/:id
|
||||
def destroy
|
||||
team_shared_object = @repository.team_shared_objects.find_by(id: destory_params[:id])
|
||||
|
||||
if team_shared_object
|
||||
team_shared_object = @repository.team_shared_objects.find(destory_params[:id])
|
||||
ActiveRecord::Base.transaction do
|
||||
log_activity(:unshare_inventory, team_shared_object)
|
||||
team_shared_object.destroy!
|
||||
render json: {}, status: :no_content
|
||||
else
|
||||
render json: { message: I18n.t('repositories.multiple_share_service.nothing_to_delete') },
|
||||
status: :unprocessable_entity
|
||||
end
|
||||
render json: {}, status: :no_content
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
render json: { message: I18n.t('repositories.multiple_share_service.nothing_to_delete') },
|
||||
status: :unprocessable_entity
|
||||
rescue StandardError => e
|
||||
Rails.logger.error(e.message)
|
||||
Rails.logger.error(e.backtrace.join("\n"))
|
||||
render json: { message: I18n.t('general.error') }, status: :unprocessable_entity
|
||||
end
|
||||
|
||||
# POST :team_id/repositories/:repository_id/update
|
||||
|
|
|
@ -51,14 +51,16 @@ module Repositories
|
|||
end
|
||||
|
||||
@team_ids_for_unshare.each do |team_id|
|
||||
team_shared_object = @repository.team_shared_objects.find_by(team_id: team_id)
|
||||
|
||||
if team_shared_object
|
||||
@repository.transaction do
|
||||
team_shared_object = @repository.team_shared_objects.find_by!(team_id: team_id)
|
||||
log_activity(:unshare_inventory, team_shared_object)
|
||||
team_shared_object.destroy!
|
||||
else
|
||||
rescue StandardError => e
|
||||
Rails.logger.error(e.message)
|
||||
Rails.logger.error(e.backtrace.join("\n"))
|
||||
warnings << I18n.t('repositories.multiple_share_service.unable_to_unshare',
|
||||
repository: @repository.name, team: team_id)
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue