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.
-
#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
64 65 66 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 64 def collection_serializer SpreeCmCommissioner::V2::Operator::ExportSerializer end |
#create ⇒ Object
POST /api/v2/operator/guest_json_gzips
-
taxon_id=1
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 22 def create :create, SpreeCmCommissioner::Exports::OperatorGuestJsonGzip exportable = Spree::Taxon.find(params[:taxon_id]) result = SpreeCmCommissioner::OperatorGuestJsonGzips::Create.call( exportable: exportable, force_create: false, options: { created_by_id: spree_current_user.id.to_s, created_by_login: spree_current_user.login, ip_address: request.remote_ip, user_agent: request.user_agent, request_id: request.request_id, client_version: request.headers['X-Cm-App-Version'], client_os: request.headers['X-Cm-OperatingSystem'], client_platform: request.headers['X-Cm-App-Platform'] } ) 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
51 52 53 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 51 def require_event_user raise CanCan::AccessDenied unless spree_current_user.events.exists?(id: params[:taxon_id]) end |
#resource_serializer ⇒ Object
override
69 70 71 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 69 def resource_serializer SpreeCmCommissioner::V2::Operator::ExportSerializer end |
#scope ⇒ Object
override
56 57 58 59 60 61 |
# File 'app/controllers/spree/api/v2/operator/guest_json_gzips_controller.rb', line 56 def scope SpreeCmCommissioner::Exports::OperatorGuestJsonGzip.where( exportable_type: 'Spree::Taxon', exportable_id: params[:taxon_id] ).order(created_at: :desc) end |