Class: DAV4Rack::Carddav::Controller

Inherits:
DAV4Rack::Controller
  • Object
show all
Includes:
Utils
Defined in:
lib/dav4rack_ext/carddav/controller.rb

Constant Summary collapse

NAMESPACES =
{
  'D' => 'DAV:',
  'C' => 'urn:ietf:params:xml:ns:carddav'
}

Instance Method Summary collapse

Constructor Details

#initialize(*args, options, env) ⇒ Controller

Returns a new instance of Controller.



12
13
14
# File 'lib/dav4rack_ext/carddav/controller.rb', line 12

def initialize(*args, options, env)
  super(*args, options.merge(env: env))
end

Instance Method Details

#reportObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/dav4rack_ext/carddav/controller.rb', line 16

def report
  unless resource.exist?
    return NotFound
  end

  if request_document.nil? or request_document.root.nil?
    render_xml(:error) do |xml|
      xml.send :'empty-request'
    end
    raise BadRequest
  end

  case request_document.root.name
  when 'addressbook-multiget'
    addressbook_multiget(request_document)
  when 'addressbook-query'
    addressbook_query(request_document)
  else
    render_xml(:error) do |xml|
      xml.send :'supported-report'
    end
    raise Forbidden
  end
end