Class: MergeRequestSerializer

Inherits:
BaseSerializer show all
Defined in:
app/serializers/merge_request_serializer.rb

Instance Attribute Summary

Attributes inherited from BaseSerializer

#params

Instance Method Summary collapse

Methods inherited from BaseSerializer

entity, #initialize

Constructor Details

This class inherits a constructor from BaseSerializer

Instance Method Details

#identified_entity(opts) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/serializers/merge_request_serializer.rb', line 13

def identified_entity(opts)
  case opts[:serializer]
  when 'sidebar'
    IssuableSidebarBasicEntity
  when 'sidebar_extras'
    MergeRequestSidebarExtrasEntity
  when 'basic'
    MergeRequestBasicEntity
  when 'noteable'
    MergeRequestNoteableEntity
  when 'poll_cached_widget'
    MergeRequestPollCachedWidgetEntity
  when 'poll_widget'
    MergeRequestPollWidgetEntity
  else
    # fallback to widget for old poll requests without `serializer` set
    MergeRequestWidgetEntity
  end
end

#represent(merge_request, opts = {}, entity = nil) ⇒ Object

This overrided method takes care of which entity should be used to serialize the merge_request based on serializer key in opts param. Hence, entity doesn’t need to be declared on the class scope.



7
8
9
10
11
# File 'app/serializers/merge_request_serializer.rb', line 7

def represent(merge_request, opts = {}, entity = nil)
  entity ||= identified_entity(opts)

  super(merge_request, opts, entity)
end