Class: AtomicAdmin::V1::ApplicationInstancesController
- Inherits:
-
AdminController
- Object
- ActionController::API
- AdminController
- AtomicAdmin::V1::ApplicationInstancesController
- Includes:
- Filtering
- Defined in:
- app/controllers/atomic_admin/v1/application_instances_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #index ⇒ Object
- #interactions ⇒ Object
- #json_for(instance) ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Methods included from Filtering
Methods inherited from AdminController
Instance Method Details
#create ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 30 def create application = Application.find(params[:application_id]) instance = application.application_instances.new(create_params) if instance.save render json: { application_instance: json_for(instance) } else render json: { errors: instance.errors }, status: 422 end end |
#destroy ⇒ Object
58 59 60 61 62 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 58 def destroy instance = ApplicationInstance.find(params[:id]) instance.destroy render json: { success: true } end |
#index ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 8 def index @application_instances = ApplicationInstance.where(application_id: params[:application_id]) @application_instances = if type == "paid" @application_instances.where.not(paid_at: nil) else @application_instances.where(paid_at: nil) end @application_instances, = filter(@application_instances) render json: { application_instances: json_for_collection(@application_instances), meta: } end |
#interactions ⇒ Object
64 65 66 67 68 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 64 def interactions instance = ApplicationInstance.find(params[:id]) interactions = AtomicAdmin.application_instance_interactions.resolve(application_instance: instance) render json: { interactions: interactions } end |
#json_for(instance) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 70 def json_for(instance) json = instance.as_json(include: [:application, :site]) json["trial_start_date"] = instance.trial_start_date&.strftime("%Y-%m-%d") if instance.respond_to?(:trial_start_date) json["trial_end_date"] = instance.trial_end_date&.strftime("%Y-%m-%d") if instance.respond_to?(:trial_end_date) json["license_start_date"] = instance.license_start_date&.strftime("%Y-%m-%d") if instance.respond_to?(:license_start_date) json["license_end_date"] = instance.license_end_date&.strftime("%Y-%m-%d") if instance.respond_to?(:license_end_date) json["is_paid"] = instance.paid_at.present? if instance.respond_to?(:paid_at) json["lti_config_xml"] = instance.lti_config_xml if instance.respond_to?(:lti_config_xml) json end |
#show ⇒ Object
25 26 27 28 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 25 def show @application_instance = ApplicationInstance.find(params[:id]) render json: { application_instance: json_for(@application_instance) } end |
#update ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/controllers/atomic_admin/v1/application_instances_controller.rb', line 41 def update instance = ApplicationInstance.find(params[:id]) instance.update(update_params) if params[:application_instance][:is_paid] && instance.paid_at.nil? instance.paid_at = DateTime.now elsif params[:application_instance][:is_paid] == false && instance.paid_at.present? instance.paid_at = nil end if instance.save render json: { application_instance: json_for(instance) } else render json: { errors: instance.errors }, status: 422 end end |