Class: Spree::Api::RelationsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/spree/api/relations_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/spree/api/relations_controller.rb', line 7

def create
  authorize! :create, Relation
  @relation = @product.relations.new(relation_params)
  @relation.relatable = @product
  @relation.related_to = Spree::Variant.find(relation_params[:related_to_id]).product
  if @relation.save
    respond_with(@relation, status: 201, default_template: :show)
  else
    invalid_resource!(@relation)
  end
end

#destroyObject



40
41
42
43
44
# File 'app/controllers/spree/api/relations_controller.rb', line 40

def destroy
  authorize! :destroy, Relation
  @relation.destroy
  respond_with(@relation, status: 204)
end

#updateObject



19
20
21
22
23
24
25
26
# File 'app/controllers/spree/api/relations_controller.rb', line 19

def update
  authorize! :update, Relation
  if @relation.update_attributes(relation_params)
    respond_with(@relation, status: 200, default_template: :show)
  else
    invalid_resource!(@relation)
  end
end

#update_positionsObject



28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/spree/api/relations_controller.rb', line 28

def update_positions
  authorize! :update, Relation
  params[:positions].each do |id, index|
    model_class.where(id: id).update_all(position: index)
  end

  respond_to do |format|
    format.json { render nothing: true, status: 200 }
    format.js { render text: 'Ok' }
  end
end