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

#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
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/serializers/merge_request_serializer.rb', line 7

def represent(merge_request, opts = {}, entity = nil)
  entity ||=
    case opts[:serializer]
    when 'sidebar'
      MergeRequestSidebarBasicEntity
    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

  super(merge_request, opts, entity)
end