Class: Spree::Api::V2::Operator::GuestJsonGzipsController
- Inherits:
-
ResourceController
- Object
- ResourceController
- Spree::Api::V2::Operator::GuestJsonGzipsController
- Includes:
- ActiveStorage::SetCurrent
- Defined in:
- app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb
Instance Method Summary collapse
-
#collection_serializer ⇒ Object
override.
-
#create ⇒ Object
POST /api/v2/operator/guest_json_gzips - taxon_id=1 - resource_includes[]= - force_create=true (optional, to bypass recent export check).
-
#index ⇒ Object
Override index to disable server-side caching.
- #require_event_user ⇒ Object
-
#resource_serializer ⇒ Object
override.
-
#scope ⇒ Object
override.
Instance Method Details
#collection_serializer ⇒ Object
override
57 58 59 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 57 def collection_serializer SpreeCmCommissioner::V2::Operator::ExportSerializer end |
#create ⇒ Object
POST /api/v2/operator/guest_json_gzips
-
taxon_id=1
-
force_create=true (optional, to bypass recent export check)
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 24 def create :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 |
#index ⇒ Object
Override index to disable server-side caching. We always want to show the latest exports and their download status. The app will cache files on its side to avoid unnecessary server requests once files are ready.
14 15 16 17 18 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 14 def index render_serialized_payload do serialize_collection(paginated_collection) end end |
#require_event_user ⇒ Object
44 45 46 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 44 def require_event_user raise CanCan::AccessDenied unless spree_current_user.events.exists?(id: params[:taxon_id]) end |
#resource_serializer ⇒ Object
override
62 63 64 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 62 def resource_serializer SpreeCmCommissioner::V2::Operator::ExportSerializer end |
#scope ⇒ Object
override
49 50 51 52 53 54 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 49 def scope SpreeCmCommissioner::Exports::OperatorGuestJsonGzip.where( exportable_type: 'Spree::Taxon', exportable_id: params[:taxon_id] ).order(created_at: :desc) end |