summaryrefslogtreecommitdiff
path: root/app/controllers/api/addresses_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/api/addresses_controller.rb')
-rw-r--r--app/controllers/api/addresses_controller.rb21
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