Class: LinkedRails::ActiveResponse::Responders::RDF

Inherits:
ActiveResponse::Responders::HTML
  • Object
show all
Includes:
Helpers::OntolaActionsHelper
Defined in:
lib/linked_rails/active_response/responders/rdf.rb

Overview

rubocop:disable Metrics/ClassLength

Direct Known Subclasses

RDFResponder

Instance Method Summary collapse

Methods included from Helpers::OntolaActionsHelper

#add_exec_action_header, #ontola_copy_action, #ontola_dialog_action, #ontola_dialog_close_action, #ontola_redirect_action, #ontola_snackbar_action

Instance Method Details

#collection(opts) ⇒ Object



13
14
15
16
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 13

def collection(opts)
  opts[:resource] = opts.delete(:collection)
  controller.respond_with_resource opts
end

#destroyed(opts) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 18

def destroyed(opts)
  response_headers(opts)
  if opts[:meta].present?
    controller.render(format => [], location: opts[:location], meta: opts[:meta])
  else
    controller.head 200, location: opts[:location], content_type: content_type
  end
end

#form(**opts) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 27

def form(**opts)
  response_headers(opts)
  controller.respond_with_resource(
    resource: opts[:action],
    include: opts[:include],
    meta: opts[:meta]
  )
end

#invalid_resource(**opts) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 36

def invalid_resource(**opts)
  response_headers(opts)
  controller.respond_with_resource(
    resource: nil,
    meta: error_meta(opts[:resource], opts[:errors] || {}),
    status: :unprocessable_entity
  )
end

#new_resource(**opts) ⇒ Object



45
46
47
48
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 45

def new_resource(**opts)
  opts[:status] = :created
  controller.respond_with_resource(opts)
end

#redirect(**opts) ⇒ Object

rubocop:disable Metrics/AbcSize, Metrics/MethodLength



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 50

def redirect(**opts) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  return super if controller.request.head?

  opts[:status] ||= 200

  response_headers(opts)
  add_exec_action_header(
    controller.response.headers,
    ontola_redirect_action(opts[:location], reload: opts[:reload])
  )
  if opts[:meta].blank? || head_request?
    controller.head(opts[:status], location: opts[:location], content_type: content_type)
  else
    opts[format] = []
    controller.render opts
  end
end

#resource(**opts) ⇒ Object

rubocop:disable Metrics/AbcSize



68
69
70
71
72
73
74
75
76
77
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 68

def resource(**opts) # rubocop:disable Metrics/AbcSize
  response_headers(opts)

  if (opts[:resource].blank? && opts[:meta].blank?) || head_request?
    controller.head(opts[:status] || 200, location: opts[:location], content_type: content_type)
  else
    opts[format] = opts.delete(:resource) || []
    controller.render opts
  end
end

#updated_resource(**opts) ⇒ Object



79
80
81
82
83
84
85
86
# File 'lib/linked_rails/active_response/responders/rdf.rb', line 79

def updated_resource(**opts)
  response_headers(opts)
  if opts[:meta].present?
    controller.render(format => [], meta: opts[:meta], location: opts[:location])
  else
    controller.head 200, location: opts[:location], content_type: content_type
  end
end