-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathhooks.rb
81 lines (69 loc) · 2.42 KB
/
hooks.rb
1
2
3
4
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
require 'jsonapi/rails/configuration'
module JSONAPI
module Rails
module Controller
extend ActiveSupport::Concern
# Hooks for customizing rendering default options at controller-level.
module Hooks
# Hook for serializable class mapping (for resources).
# Overridden by the `class` renderer option.
# @return [Hash{Symbol=>Class}]
def jsonapi_class
JSONAPI::Rails.config[:jsonapi_class].dup
end
# Hook for serializable class mapping (for errors).
# Overridden by the `class` renderer option.
# @return [Hash{Symbol=>Class}]
def jsonapi_errors_class
JSONAPI::Rails.config[:jsonapi_errors_class].dup
end
# Hook for the jsonapi object.
# Overridden by the `jsonapi_object` renderer option.
# @return [Hash,nil]
def jsonapi_object
JSONAPI::Rails.config[:jsonapi_object]
end
# Hook for default exposures.
# @return [Hash]
def jsonapi_expose
instance_exec(&JSONAPI::Rails.config[:jsonapi_expose])
end
# Hook for default cache.
# @return [#fetch_multi]
def jsonapi_cache
instance_exec(&JSONAPI::Rails.config[:jsonapi_cache])
end
# Hook for default fields.
# @return [Hash{Symbol=>Array<Symbol>},nil]
def jsonapi_fields
instance_exec(&JSONAPI::Rails.config[:jsonapi_fields])
end
# Hook for default includes.
# @return [IncludeDirective]
def jsonapi_include
instance_exec(&JSONAPI::Rails.config[:jsonapi_include])
end
# Hook for default links.
# @return [Hash]
def jsonapi_links
instance_exec(&JSONAPI::Rails.config[:jsonapi_links])
end
# Hook for default meta.
# @return [Hash,nil]
def jsonapi_meta
instance_exec(&JSONAPI::Rails.config[:jsonapi_meta])
end
# Hook for pagination scheme.
# @return [Hash]
def jsonapi_pagination(resources)
instance_exec(resources, &JSONAPI::Rails.config[:jsonapi_pagination])
end
# Hook for rendering jsonapi_errors when no payload passed
def jsonapi_payload_malformed
return unless JSONAPI::Rails.config[:jsonapi_payload_malformed]
instance_exec(&JSONAPI::Rails.config[:jsonapi_payload_malformed])
end
end
end
end
end