Use resource in Group Variables routing scheme

This commit is contained in:
Matija Čupić 2018-01-29 18:54:16 +01:00
parent 0bfcdd66bf
commit a8887a0d9c
No known key found for this signature in database
GPG key ID: 4BAF84FFACD2E5DE
5 changed files with 35 additions and 12 deletions

View file

@ -2,7 +2,18 @@ module Groups
class VariablesController < Groups::ApplicationController class VariablesController < Groups::ApplicationController
before_action :authorize_admin_build! before_action :authorize_admin_build!
def save_multiple def show
respond_to do |format|
format.json do
variables = @group.variables
.map { |variable| variable.present(current_user: current_user) }
render status: :ok, json: { variables: variables }
end
end
end
def update
respond_to do |format| respond_to do |format|
format.json do format.json do
return head :ok if @group.update(variables_params) return head :ok if @group.update(variables_params)

View file

@ -11,11 +11,11 @@ module Ci
end end
def edit_path def edit_path
group_variables_save_multiple_path(group) group_variables_path(group)
end end
def delete_path def delete_path
group_variables_save_multiple_path(group) group_variables_path(group)
end end
end end
end end

View file

@ -27,9 +27,7 @@ constraints(GroupUrlConstrainer.new) do
resource :ci_cd, only: [:show], controller: 'ci_cd' resource :ci_cd, only: [:show], controller: 'ci_cd'
end end
namespace :variables do resource :variables, only: [:show, :update]
post :save_multiple
end
resources :children, only: [:index] resources :children, only: [:index]

View file

@ -9,12 +9,26 @@ describe Groups::VariablesController do
group.add_master(user) group.add_master(user)
end end
describe 'POST #save_multiple' do describe 'GET #show' do
let!(:variable) { create(:ci_group_variable, group: group) }
subject do
get :show, group_id: group, format: :json
end
it 'renders the ci_variable as json' do
subject
expect(response.body).to include(variable.to_json)
end
end
describe 'POST #update' do
let!(:variable) { create(:ci_group_variable, group: group) } let!(:variable) { create(:ci_group_variable, group: group) }
context 'with invalid new variable parameters' do context 'with invalid new variable parameters' do
subject do subject do
post :save_multiple, post :update,
group_id: group, group_id: group,
variables_attributes: [{ id: variable.id, key: variable.key, variables_attributes: [{ id: variable.id, key: variable.key,
value: 'other_value', value: 'other_value',
@ -41,7 +55,7 @@ describe Groups::VariablesController do
context 'with valid new variable parameters' do context 'with valid new variable parameters' do
subject do subject do
post :save_multiple, post :update,
group_id: group, group_id: group,
variables_attributes: [{ id: variable.id, key: variable.key, variables_attributes: [{ id: variable.id, key: variable.key,
value: 'other_value', value: 'other_value',
@ -68,7 +82,7 @@ describe Groups::VariablesController do
context 'with a deleted variable' do context 'with a deleted variable' do
subject do subject do
post :save_multiple, post :update,
group_id: group, group_id: group,
variables_attributes: [{ id: variable.id, key: variable.key, variables_attributes: [{ id: variable.id, key: variable.key,
value: variable.value, value: variable.value,

View file

@ -43,12 +43,12 @@ describe Ci::GroupVariablePresenter do
describe '#edit_path' do describe '#edit_path' do
subject { described_class.new(variable).edit_path } subject { described_class.new(variable).edit_path }
it { is_expected.to eq(group_variables_save_multiple_path(group)) } it { is_expected.to eq(group_variables_path(group)) }
end end
describe '#delete_path' do describe '#delete_path' do
subject { described_class.new(variable).delete_path } subject { described_class.new(variable).delete_path }
it { is_expected.to eq(group_variables_save_multiple_path(group)) } it { is_expected.to eq(group_variables_path(group)) }
end end
end end