diff options
Diffstat (limited to 'app/controllers/api')
-rw-r--r-- | app/controllers/api/addresses_controller.rb | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/app/controllers/api/addresses_controller.rb b/app/controllers/api/addresses_controller.rb index ebe129b..110596c 100644 --- a/app/controllers/api/addresses_controller.rb +++ b/app/controllers/api/addresses_controller.rb @@ -29,14 +29,19 @@ module Api def update @service = Services::UpdateAddressService.new(current_user_account, params[:id], service_params) - case @service.call - when :not_found - render json: { error_message: 'Not found' }, status: :not_found - when :unprocessable_entity - render json: { error_messages: @service.address.errors.full_messages }, status: :unprocessable_entity - else - @address = @service.address - render json: serialized_object.serializable_hash, status: :ok + begin + case @service.call + when :not_found + render json: { error_message: 'Not found' }, status: :not_found + when :unprocessable_entity + render json: { error_messages: @service.address.errors.full_messages }, status: :unprocessable_entity + else + @address = @service.address + render json: serialized_object.serializable_hash, status: :ok + end + rescue ActiveRecord::RecordNotUnique + render json: { error_message: 'Ya cuenta con esta dirección' }, status: :unprocessable_entity + return end end |