Class: Calligraphy::Lock
- Inherits:
-
WebDavRequest
- Object
- WebDavRequest
- Calligraphy::Lock
- Includes:
- XML::Utils
- Defined in:
- lib/calligraphy/lock.rb
Instance Attribute Summary
Attributes inherited from WebDavRequest
#headers, #resource, #response
Instance Method Summary collapse
Methods included from XML::Utils
Methods inherited from WebDavRequest
Constructor Details
This class inherits a constructor from Calligraphy::WebDavRequest
Instance Method Details
#request ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/calligraphy/lock.rb', line 5 def request if @resource.request_body.blank? && !@resource.locked_to_user?(@headers) lock_properties = @resource.refresh_lock elsif (@resource.locked? && @resource.lock_is_exclusive?) || (@resource.locked_to_user?(@headers) && !xml_contains_shared_lock?) return :locked else resource_exists_beforehand = @resource.exists? xml = xml_for body: body, node: 'lockinfo' return :bad_request if xml == :bad_request lock_properties = @resource.lock xml, @headers['Depth'] end builder = xml_builder xml_res = builder.lock_res lock_properties lock_token = lock_properties[-1] .select { |x| x.name == 'locktoken' }[0] .children[0] .text response.headers['Lock-Token'] = "<#{lock_token}>" set_xml_content_type if resource_exists_beforehand return :ok, xml_res else return :created, xml_res end end |