aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/mini_environments_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/mini_environments_controller.rb')
-rw-r--r--app/controllers/mini_environments_controller.rb69
1 files changed, 67 insertions, 2 deletions
diff --git a/app/controllers/mini_environments_controller.rb b/app/controllers/mini_environments_controller.rb
index 94aa18c..237e8c5 100644
--- a/app/controllers/mini_environments_controller.rb
+++ b/app/controllers/mini_environments_controller.rb
@@ -19,6 +19,43 @@
# <http://www.gnu.org/licenses/>.
class MiniEnvironmentsController < ApplicationController
+ DEFAULT_SERVICES = %w(
+ collections-publisher
+ contacts-admin
+ content-tagger
+ local-links-manager
+ manuals-publisher
+ maslow
+ policy-publisher
+ publisher
+ service-manual-publisher
+ short-url-manager
+ specialist-publisher
+ travel-advice-publisher
+ whitehall
+
+ calculators
+ calendars
+ collections
+ email-alert-frontend
+ feedback
+ finder-frontend
+ frontend
+ government-frontend
+ licencefinder
+ manuals-frontend
+ service-manual-frontend
+ smartanswers
+
+ draft-collections
+ draft-email-alert-frontend
+ draft-frontend
+ draft-government-frontend
+ draft-finder-frontend
+ draft-manuals-frontend
+ draft-service-manual-frontend
+ ).freeze
+
def show
@mini_environment = MiniEnvironment.find(params[:id])
end
@@ -58,9 +95,37 @@ class MiniEnvironmentsController < ApplicationController
@mini_environment.signon_users[0]['passphrase'] = SecureRandom.hex
@mini_environment.save!
- @mini_environment.backend.build(@mini_environment)
+ redirect_to services_mini_environment_path(@mini_environment)
+ end
+
+ def services
+ @mini_environment = MiniEnvironment.find(params[:id])
+
+ @mini_environment.transaction do
+ @mini_environment.govuk_guix_revision.all_available_services
+ .each do |service|
- redirect_to @mini_environment
+ name = service['name']
+
+ next if params["#{name}-selected"] != 'on'
+
+ revision = params["#{name}-revision"]
+
+ @mini_environment.services.where(
+ name: name
+ ).delete_all
+
+ @mini_environment.services.create(
+ name: name,
+ revision: revision
+ )
+ end
+ end
+
+ if request.put?
+ @mini_environment.backend.build(@mini_environment)
+ redirect_to @mini_environment
+ end
end
def perform_action