Class: Spree::Api::V2::Operator::GuestJsonGzipsController

Inherits:
ResourceController
  • Object
show all
Defined in:
app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb

Instance Method Summary collapse

Instance Method Details

#collection_serializerObject

override



41
42
43
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 41

def collection_serializer
  SpreeCmCommissioner::V2::Operator::ExportSerializer
end

#createObject

POST /api/v2/operator/guest_json_gzips



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 12

def create
  spree_authorize! :create, SpreeCmCommissioner::Exports::OperatorGuestJsonGzip

  exportable = Spree::Taxon.find(params[:taxon_id])

  result = SpreeCmCommissioner::OperatorGuestJsonGzips::Create.call(
    exportable: exportable,
    resource_includes: params[:resource_includes] || [],
    force_create: params[:force_create] == 'true'
  )

  if result.success?
    status = result.value.created_at < 1.minute.ago ? 200 : 201
    @export = result.value
    render_serialized_payload(status) { serialize_resource(@export) }
  else
    render_error_payload(result.error)
  end
end

#resource_serializerObject

override



46
47
48
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 46

def resource_serializer
  SpreeCmCommissioner::V2::Operator::ExportSerializer
end

#scopeObject

override



33
34
35
36
37
38
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 33

def scope
  SpreeCmCommissioner::Exports::OperatorGuestJsonGzip.where(
    exportable_type: 'Spree::Taxon',
    exportable_id: params[:taxon_id]
  ).order(created_at: :desc)
end