lib/unimatrix/authorization/operation.rb in unimatrix-3.3.1 vs lib/unimatrix/authorization/operation.rb in unimatrix-3.3.2
- old
+ new
@@ -3,11 +3,13 @@
def destroy
result = nil
Request.new.tap do | request |
response = request.destroy( @path, @parameters )
- if response.present?
+ if response_is_error?( response )
+ result = response
+ elsif response.present?
result = response.resources
end
end
result
end
@@ -15,16 +17,20 @@
def read( &block )
result = nil
response = nil
Request.new.tap do | request |
request.get( @path, @parameters ).tap do | response |
- result = response.resources
- if block_given?
- case block.arity
- when 0; yield
- when 1; yield result
- when 2; yield result, response
+ if response_is_error?( response )
+ result = response
+ else
+ result = response.resources
+ if block_given?
+ case block.arity
+ when 0; yield
+ when 1; yield result
+ when 2; yield result, response
+ end
end
end
end
end
result
@@ -33,11 +39,13 @@
def write( node, objects, &block )
result = nil
Request.new.tap do | request |
serializer = Unimatrix::Serializer.new( objects )
response = request.post( @path, @parameters, serializer.serialize( node ) )
- if response.present?
+ if response_is_error?( response )
+ result = response
+ else
result = response.resources
if block_given?
case block.arity
when 0; yield
when 1; yield result
@@ -52,9 +60,13 @@
protected; def spawn( parameters )
Operation.new(
@path,
@parameters.deep_merge( parameters || {} )
)
+ end
+
+ protected; def response_is_error?( response )
+ response.is_a?( Error ) || response.is_a?( Unimatrix::Error )
end
end
end
\ No newline at end of file