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