Class: FavouriteObject::BaseFavouritesController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/favourite_object/base_favourites_controller.rb

Direct Known Subclasses

FavouritesController

Instance Method Summary collapse

Instance Method Details

#collectionObject



14
15
16
17
18
19
20
21
22
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 14

def collection
  @favourites = Favourite.for_owner(@user)
                  .where(is_favourited: true).order("created_at DESC")

  @favourites = @favourites.where(target_type: params[:target_type]) if params[:target_type]
  @favourites = @favourites.where(target_id: params[:target_ids]) if params[:target_ids]

  collection_pagination
end

#collection_paginationObject



24
25
26
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 24

def collection_pagination
  @favourites = @favourites.page(params[:page]).per(params[:per_page])
end

#indexObject



8
9
10
11
12
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 8

def index
  collection

  respond_to_method(params[:serializer])
end

#metaObject



61
62
63
64
65
66
67
68
69
70
71
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 61

def meta
  if action_name == 'index'
    {
      pagination: {
        per_page: @favourites.limit_value,
        total_pages: @favourites.total_pages,
        total_objects: @favourites.total_count
      }
    }
  end
end

#respond_to_method(serializer) ⇒ Object



28
29
30
31
32
33
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 28

def respond_to_method(serializer)
  if serializer == 'lite'
    return respond_with @favourites, each_serializer: LiteFavouriteSerializer
  end
  respond_with @favourites
end

#showObject



35
36
37
38
39
40
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 35

def show
  @favourite = Favourite.find_with_target(@user, params[:target_id],
    params[:target_type], params[:third_party_flag])

  respond_with @favourite, serializer: LiteFavouriteSerializer
end

#toggleObject



51
52
53
54
55
56
57
58
59
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 51

def toggle
  # toggle for web interface
  @favourite = Favourite.find_with_target(@user, params[:target_id],
    params[:target_type], params[:third_party_flag])

  @favourite.toggle

  respond_with @favourite
end

#updateObject



42
43
44
45
46
47
48
49
# File 'app/controllers/favourite_object/base_favourites_controller.rb', line 42

def update
  @favourite = Favourite.find_with_target(@user, params[:target_id],
    params[:target_type], params[:third_party_flag])

  @favourite.update(permitted_params[:favourite])

  respond_with @favourite, serializer: LiteFavouriteSerializer
end