Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-12-20 01:53:19 +0300
committerKamil Trzcinski <ayufan@ayufan.eu>2016-12-20 01:56:21 +0300
commit34295036e2a9ecf18ca5440a5dd6dbb0c7f05643 (patch)
treea529cbc332882305520c7650cbe860301e12abb8 /app/controllers
parent921f411a41d92ff6b3fdea2560adbd861d97be57 (diff)
Improve sources
- Add proper error handling, - Use flash[:alert] and flash[:notice], - Use `resource` instead of `resources`,
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/projects/mattermost_controller.rb39
-rw-r--r--app/controllers/projects/mattermosts_controller.rb41
2 files changed, 41 insertions, 39 deletions
diff --git a/app/controllers/projects/mattermost_controller.rb b/app/controllers/projects/mattermost_controller.rb
deleted file mode 100644
index a0eaec262ee..00000000000
--- a/app/controllers/projects/mattermost_controller.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-class Projects::MattermostController < Projects::ApplicationController
- layout 'project_settings'
- before_action :authorize_admin_project!
- before_action :service
- before_action :teams, only: [:new]
-
- def new
- end
-
- def create
- message = @service.configure(current_user, configure_params)
- notice = message.is_a?(String) ? message : 'This service is now configured'
-
- redirect_to(
- new_namespace_project_mattermost_path(@project.namespace, @project),
- notice: notice
- )
- rescue NoSessionError
- redirect_to(
- new_namespace_project_mattermost_path(@project.namespace, @project),
- alert: 'No session could be set up, is Mattermost configured with Single Sign on?'
- )
- end
-
- private
-
- def configure_params
- params.permit(:trigger, :team_id).
- merge(url: service_trigger_url(@service), icon_url: asset_url('gitlab_logo.png'))
- end
-
- def service
- @service ||= @project.find_or_initialize_service('mattermost_slash_commands')
- end
-
- def teams
- @teams = @service.list_teams(current_user)
- end
-end
diff --git a/app/controllers/projects/mattermosts_controller.rb b/app/controllers/projects/mattermosts_controller.rb
new file mode 100644
index 00000000000..c6b39add7ad
--- /dev/null
+++ b/app/controllers/projects/mattermosts_controller.rb
@@ -0,0 +1,41 @@
+class Projects::MattermostsController < Projects::ApplicationController
+ include TriggersHelper
+ include ActionView::Helpers::AssetUrlHelper
+
+ layout 'project_settings'
+
+ before_action :authorize_admin_project!
+ before_action :service
+ before_action :teams, only: [:new]
+
+ def new
+ end
+
+ def create
+ @service.configure!(current_user, configure_params)
+
+ flash[:notice] = 'This service is now configured'
+ redirect_to edit_namespace_project_service_path(@project.namespace, @project, service)
+ rescue => e
+ flash[:alert] = e.message
+ redirect_to new_namespace_project_mattermost_path(@project.namespace, @project)
+ end
+
+ private
+
+ def configure_params
+ params.require(:mattermost).permit(:trigger, :team_id).merge(
+ url: service_trigger_url(@service),
+ icon_url: asset_url('gitlab_logo.png'))
+ end
+
+ def teams
+ @teams ||= @service.list_teams(current_user)
+ rescue => e
+ flash[:alert] = e.message
+ end
+
+ def service
+ @service ||= @project.find_or_initialize_service('mattermost_slash_commands')
+ end
+end