Module: Croods::Resource::JsonSchema::Required

Defined in:
lib/croods/resource/json_schema/required.rb

Class Method Summary collapse

Class Method Details

.ignore?(request, attribute) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
# File 'lib/croods/resource/json_schema/required.rb', line 23

def ignore?(request, attribute)
  return unless request

  return true if attribute.default || attribute.default_function

  %w[created_at updated_at].include?(attribute.name)
end

.schema(resource, request: false) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/croods/resource/json_schema/required.rb', line 8

def schema(resource, request: false)
  required = []

  properties = resource.response_attributes
  properties = resource.request_attributes if request

  properties.each_value do |attribute|
    next if ignore?(request, attribute)

    required << attribute.name unless attribute.null
  end

  required
end