Module: JsonapiSwaggerHelpers
- Defined in:
- lib/jsonapi_swagger_helpers.rb,
lib/jsonapi_swagger_helpers/version.rb,
lib/jsonapi_swagger_helpers/resource_mixin.rb,
lib/jsonapi_swagger_helpers/schema_helpers.rb,
lib/jsonapi_swagger_helpers/docs_controller_mixin.rb,
lib/jsonapi_swagger_helpers/strong_resource_mixin.rb
Defined Under Namespace
Modules: DocsControllerMixin, ResourceMixin, StrongResourceMixin
Classes: SchemaHelpers
Constant Summary
collapse
- VERSION =
"0.1.2"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.docs_controller ⇒ Object
13
14
15
|
# File 'lib/jsonapi_swagger_helpers.rb', line 13
def self.docs_controller
@docs_controller ||= ::DocsController
end
|
.docs_controller=(controller) ⇒ Object
17
18
19
|
# File 'lib/jsonapi_swagger_helpers.rb', line 17
def self.docs_controller=(controller)
@docs_controller = controller
end
|
.prepended(klass) ⇒ Object
9
10
11
|
# File 'lib/jsonapi_swagger_helpers.rb', line 9
def self.prepended(klass)
klass.send(:include, StrongResourceMixin)
end
|
Instance Method Details
#id_in_url ⇒ Object
45
46
47
48
49
50
51
52
53
|
# File 'lib/jsonapi_swagger_helpers.rb', line 45
def id_in_url
parameter do
key :name, :id
key :in, :path
key :type, :string
key :required, true
key :description, 'record id'
end
end
|
#jsonapi_filters(controller) ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/jsonapi_swagger_helpers.rb', line 55
def jsonapi_filters(controller)
filter_names = []
controller._jsonapi_compliable.filters.each_pair do |name, opts|
filter_names << name
end
filter_names.each do |filter_name|
parameter do
key :name, "filter[#{filter_name}]"
key :in, :query
key :type, :string
key :required, false
key :description, "<a href='http://jsonapi.org/format/#fetching-filtering'>JSONAPI filter</a>"
items do
key :model, :string
end
end
end
end
|
#jsonapi_includes(controller, action) ⇒ Object
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/jsonapi_swagger_helpers.rb', line 104
def jsonapi_includes(controller, action)
includes = controller._jsonapi_compliable.sideloads[:whitelist]
if includes
directive = includes[action]
includes = directive.to_string
parameter do
key :name, :include
key :in, :query
key :type, :string
key :required, false
key :description, "<a href='http://jsonapi.org/format/#fetching-includes'>JSONAPI includes</a>: \"#{includes}\""
end
end
end
|
#jsonapi_index(controller) ⇒ Object
33
34
35
36
37
38
|
# File 'lib/jsonapi_swagger_helpers.rb', line 33
def jsonapi_index(controller)
jsonapi_includes(controller, :index)
jsonapi_filters(controller)
jsonapi_sorting
end
|
#jsonapi_link ⇒ Object
21
22
23
|
# File 'lib/jsonapi_swagger_helpers.rb', line 21
def jsonapi_link
"<br/><p><a href='http://jsonapi.org'>JSONAPI-compliant</a> endpoint.</p><br />"
end
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/jsonapi_swagger_helpers.rb', line 76
def
parameter do
key :name, "page[size]"
key :in, :query
key :type, :string
key :required, false
key :description, "<a href='http://jsonapi.org/format/#fetching-pagination'>JSONAPI page size</a>"
end
parameter do
key :name, "page[number]"
key :in, :query
key :type, :string
key :required, false
key :description, "<a href='http://jsonapi.org/format/#fetching-pagination'>JSONAPI page number</a>"
end
end
|
#jsonapi_show(controller) ⇒ Object
40
41
42
43
|
# File 'lib/jsonapi_swagger_helpers.rb', line 40
def jsonapi_show(controller)
id_in_url
jsonapi_includes(controller, :show)
end
|
#jsonapi_sorting ⇒ Object
94
95
96
97
98
99
100
101
102
|
# File 'lib/jsonapi_swagger_helpers.rb', line 94
def jsonapi_sorting
parameter do
key :name, :sort
key :in, :query
key :type, :string
key :required, false
key :description, "<a href='http://jsonapi.org/format/#fetching-sorting'>JSONAPI sort</a>"
end
end
|
#validation_messages(messages) ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/jsonapi_swagger_helpers.rb', line 25
def validation_messages(messages)
string = "<p><b>Validations:</b><ul>"
messages.each do |message|
string << "<li>#{message}</li>"
end
string << "</ul></p>"
end
|