summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-06-03 15:39:01 +0300
committerValery Sizov <vsv2711@gmail.com>2015-06-03 15:41:37 +0300
commitfef6b468dccda6e4b3cf0fd8e3144b097729fd2f (patch)
treecce7b6aded247f298bb725a785fd1846172cee11
parent54bd76399ddf5fb925df01d9f86ed020c475b3ba (diff)
downloadgitlab-ci-fef6b468dccda6e4b3cf0fd8e3144b097729fd2f.tar.gz
replace YAML with JOSN on dashboard
-rw-r--r--app/controllers/projects_controller.rb6
-rw-r--r--app/models/project.rb8
-rw-r--r--app/views/projects/_gl_projects.html.haml2
-rw-r--r--spec/controllers/projects_controller_spec.rb6
-rw-r--r--spec/models/project_spec.rb5
-rw-r--r--spec/services/create_project_service_spec.rb2
6 files changed, 12 insertions, 17 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index ad5b120..a21dbc2 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -49,11 +49,13 @@ class ProjectsController < ApplicationController
end
def create
- unless current_user.can_manage_project?(YAML.load(params["project"])[:id])
+ project_data = OpenStruct.new(JSON.parse(params["project"]))
+
+ unless current_user.can_manage_project?(project_data.id)
return redirect_to root_path, alert: 'You have to have at least master role to enable CI for this project'
end
- @project = CreateProjectService.new.execute(current_user, params[:project], project_url(":project_id"))
+ @project = CreateProjectService.new.execute(current_user, project_data, project_url(":project_id"))
if @project.persisted?
redirect_to project_path(@project, show_guide: true), notice: 'Project was successfully created.'
diff --git a/app/models/project.rb b/app/models/project.rb
index 9b015d2..a1e1999 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -69,13 +69,7 @@ ls -la
eos
end
- def parse(project_params)
- project = if project_params.is_a?(String)
- YAML.load(project_params)
- else
- project_params
- end
-
+ def parse(project)
params = {
name: project.name_with_namespace,
gitlab_id: project.id,
diff --git a/app/views/projects/_gl_projects.html.haml b/app/views/projects/_gl_projects.html.haml
index 15cd3f0..479ffb4 100644
--- a/app/views/projects/_gl_projects.html.haml
+++ b/app/views/projects/_gl_projects.html.haml
@@ -11,5 +11,5 @@
Added
- else
= form_tag projects_path do
- = hidden_field_tag :project, project.to_yaml
+ = hidden_field_tag :project, project.to_h.to_json
= submit_tag 'Add project to CI', class: 'btn btn-default btn-small' \ No newline at end of file
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index 17f6417..4a113dd 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -43,7 +43,7 @@ describe ProjectsController do
end
describe "POST /projects" do
- let(:project_dump) { File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
+ let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
let(:gitlab_url) { GitlabCi.config.gitlab_server.url }
let (:user_data) do
@@ -61,7 +61,7 @@ describe ProjectsController do
Network.any_instance.stub(:enable_ci).and_return(true)
Network.any_instance.stub(:project_hooks).and_return(true)
- post :create, { project: project_dump }.with_indifferent_access
+ post :create, { project: JSON.dump(project_dump.to_h) }.with_indifferent_access
expect(response.code).to eq('302')
expect(assigns(:project)).not_to be_a_new(Project)
@@ -72,7 +72,7 @@ describe ProjectsController do
allow(controller).to receive(:current_user) { user }
User.any_instance.stub(:can_manage_project?).and_return(false)
- post :create, { project: project_dump }.with_indifferent_access
+ post :create, { project: JSON.dump(project_dump.to_h) }.with_indifferent_access
expect(response.code).to eq('302')
expect(flash[:alert]).to include("You have to have at least master role to enable CI for this project")
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 9358db5..ba47d61 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -123,7 +123,7 @@ describe Project do
end
describe 'Project.parse' do
- let(:project_dump) { File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
+ let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
let(:parsed_project) { Project.parse(project_dump) }
before { parsed_project.build_default_job }
@@ -135,8 +135,7 @@ describe Project do
it { parsed_project.gitlab_url.should eq("http://demo.gitlab.com/gitlab/api-gitlab-org") }
it "parses plain hash" do
- data = YAML.load(project_dump)
- Project.parse(data).name.should eq("GitLab / api.gitlab.org")
+ Project.parse(project_dump).name.should eq("GitLab / api.gitlab.org")
end
end
diff --git a/spec/services/create_project_service_spec.rb b/spec/services/create_project_service_spec.rb
index 6ecb93e..90124bf 100644
--- a/spec/services/create_project_service_spec.rb
+++ b/spec/services/create_project_service_spec.rb
@@ -3,7 +3,7 @@ require 'spec_helper'
describe CreateProjectService do
let(:service) { CreateProjectService.new }
let(:current_user) { double.as_null_object }
- let(:project_dump) { File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
+ let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
before { Network.any_instance.stub(enable_ci: true) }