From fc6a7c68796c3153b818d34bc057171db1b8219c Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 19 Nov 2018 08:35:17 -0500 Subject: [PATCH 1/2] adding development environment to the allowed environments --- app/controllers/hangar/records_controller.rb | 4 +++- app/controllers/hangar/resources_controller.rb | 1 + lib/hangar.rb | 5 +++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/hangar/records_controller.rb b/app/controllers/hangar/records_controller.rb index 0120f40..3ca3be4 100644 --- a/app/controllers/hangar/records_controller.rb +++ b/app/controllers/hangar/records_controller.rb @@ -1,7 +1,9 @@ module Hangar class RecordsController < ActionController::Base def delete - DatabaseCleaner.clean_with Hangar.clean_strategy, except: Hangar.do_not_delete + Hangar.created_data.each do |key, value| + value.constantize.delete(key) + end head :no_content, content_type: "text/html" end end diff --git a/app/controllers/hangar/resources_controller.rb b/app/controllers/hangar/resources_controller.rb index d096bc9..a5a72a2 100644 --- a/app/controllers/hangar/resources_controller.rb +++ b/app/controllers/hangar/resources_controller.rb @@ -5,6 +5,7 @@ class ResourcesController < ActionController::Base def create created = FactoryBot.create resource, *traits, resource_attributes + Hangar.created_data[created.id.to_s] = created.model_name.to_s render json: created.as_json(include: includes) end diff --git a/lib/hangar.rb b/lib/hangar.rb index 99bc846..fcd190c 100644 --- a/lib/hangar.rb +++ b/lib/hangar.rb @@ -6,10 +6,11 @@ module Hangar BadEnvironmentError = Class.new(StandardError) mattr_writer :do_not_delete, :route_namespace - mattr_accessor :clean_strategy + mattr_accessor :clean_strategy, :created_data self.clean_strategy = :deletion self.route_namespace = nil + self.created_data = Hash.new def self.do_not_delete Array.wrap(@@do_not_delete) @@ -28,7 +29,7 @@ def self.route_namespace end def validate_environment - Rails.env.test? or raise BadEnvironmentError, "Hangar should not be used in the #{Rails.env} environment" + Rails.env.test? || Rails.env.development? or raise BadEnvironmentError, "Hangar should not be used in the #{Rails.env} environment" end module_function :validate_environment end From 45103f8c2fd77418836dd0759b1d20e8456eb449 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 5 Dec 2018 13:54:38 -0500 Subject: [PATCH 2/2] update delete function --- app/controllers/hangar/records_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/hangar/records_controller.rb b/app/controllers/hangar/records_controller.rb index 3ca3be4..d7c5fb2 100644 --- a/app/controllers/hangar/records_controller.rb +++ b/app/controllers/hangar/records_controller.rb @@ -4,7 +4,8 @@ def delete Hangar.created_data.each do |key, value| value.constantize.delete(key) end - head :no_content, content_type: "text/html" + Hangar.created_data.clear + render json: {"delete": "success"}.to_json, status: 200 end end end