Module: IntrospectiveGrape::Helpers

Included in:
API
Defined in:
lib/introspective_grape/helpers.rb

Constant Summary collapse

API_ACTIONS =
%i(index show create update destroy).freeze

Instance Method Summary collapse

Instance Method Details

#all_or_none(args = []) ⇒ Object



40
41
42
43
44
45
# File 'lib/introspective_grape/helpers.rb', line 40

def all_or_none(args=[])
  args.flatten!&.compact!
  args = API_ACTIONS if args.include?(:all)
  args = []          if args.include?(:none)
  args
end

#authentication_method(context) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/introspective_grape/helpers.rb', line 10

def authentication_method(context)
  # Default to "authenticate!" or as grape docs once suggested, "authorize!"
  if @authentication_method
    @authentication_method
  elsif context.respond_to?('authenticate!')
    'authenticate!'
  elsif context.respond_to?('authorize!')
    'authorize!'
  end
end

#authentication_method=(method) ⇒ Object



5
6
7
8
# File 'lib/introspective_grape/helpers.rb', line 5

def authentication_method=(method)
  # IntrospectiveGrape::API.authentication_method=
  @authentication_method = method
end

#default_includes(model, *args) ⇒ Object



53
54
55
56
# File 'lib/introspective_grape/helpers.rb', line 53

def default_includes(model, *args)
  @default_includes ||= {}
  @default_includes[model.name] = args.present? ? args.flatten : @default_includes[model.name] || []
end

#exclude_actions(model, *args) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/introspective_grape/helpers.rb', line 29

def exclude_actions(model, *args)
  args                           = all_or_none(args)
  @exclude_actions             ||= {}
  @exclude_actions[model.name] ||= []

  undefined_actions = args - API_ACTIONS
  raise "#{model.name} defines invalid actions: #{undefined_actions}" if undefined_actions.present?

  @exclude_actions[model.name] = args.present? ? args : @exclude_actions[model.name]
end

#include_actions(model, *args) ⇒ Object



47
48
49
50
51
# File 'lib/introspective_grape/helpers.rb', line 47

def include_actions(model, *args)
  @exclude_actions             ||= {}
  @exclude_actions[model.name] ||= []
  @exclude_actions[model.name] = API_ACTIONS - exclude_actions(model, args)
end

#paginate(args = {}) ⇒ Object



21
22
23
# File 'lib/introspective_grape/helpers.rb', line 21

def paginate(args={})
  @pagination = args
end

#paginationObject



25
26
27
# File 'lib/introspective_grape/helpers.rb', line 25

def pagination
  @pagination
end

#skip_presence_validations(fields = nil) ⇒ Object



64
65
66
67
68
# File 'lib/introspective_grape/helpers.rb', line 64

def skip_presence_validations(fields=nil)
  return @skip_presence_fields || [] unless fields

  @skip_presence_fields = [fields].flatten
end

#whitelist(whitelist = nil) ⇒ Object



58
59
60
61
62
# File 'lib/introspective_grape/helpers.rb', line 58

def whitelist(whitelist=nil)
  return @whitelist unless whitelist

  @whitelist = whitelist
end