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
path: root/lib
diff options
context:
space:
mode:
authorAlex Denisov <1101.debian@gmail.com>2012-09-16 20:51:04 +0400
committerAlex Denisov <1101.debian@gmail.com>2012-09-16 20:51:04 +0400
commit549c4c2202307608773a10d8ce9a7dc978537de4 (patch)
treedfaee2e6f03e4f3c84878f5ae9323bfade7f5bac /lib
parentcaef9ed1121a16ca0cc78715695daaa974271bfd (diff)
API attributes refactored
Diffstat (limited to 'lib')
-rw-r--r--lib/api/helpers.rb8
-rw-r--r--lib/api/issues.rb24
-rw-r--r--lib/api/milestones.rb18
-rw-r--r--lib/api/projects.rb38
4 files changed, 36 insertions, 52 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 054eb2d3f70..d0fc8c434a2 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -28,6 +28,14 @@ module Gitlab
end
end
+ def existed_attributes(keys)
+ attrs = {}
+ keys.each do |key|
+ attrs[key] = params[key] if params[key].present?
+ end
+ attrs
+ end
+
# error helpers
def forbidden!
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index 659f065e390..b177a4a86c8 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -48,15 +48,10 @@ module Gitlab
# Example Request:
# POST /projects/:id/issues
post ":id/issues" do
- @issue = user_project.issues.new(
- title: params[:title],
- description: params[:description],
- assignee_id: params[:assignee_id],
- milestone_id: params[:milestone_id],
- label_list: params[:labels]
- )
+ attrs = existed_attributes [:title, :description, :assignee_id, :milestone_id]
+ attrs[:label_list] = params[:labels] if params[:labels].present?
+ @issue = user_project.issues.new attrs
@issue.author = current_user
-
if @issue.save
present @issue, with: Entities::Issue
else
@@ -81,16 +76,9 @@ module Gitlab
@issue = user_project.issues.find(params[:issue_id])
authorize! :modify_issue, @issue
- parameters = {
- title: (params[:title] || @issue.title),
- description: (params[:description] || @issue.description),
- assignee_id: (params[:assignee_id] || @issue.assignee_id),
- milestone_id: (params[:milestone_id] || @issue.milestone_id),
- label_list: (params[:labels] || @issue.label_list),
- closed: (params[:closed] || @issue.closed)
- }
-
- if @issue.update_attributes(parameters)
+ attrs = existed_attributes [:title, :description, :assignee_id, :milestone_id, :closed]
+ attrs[:label_list] = params[:labels] if params[:labels].present?
+ if @issue.update_attributes attrs
present @issue, with: Entities::Issue
else
not_found!
diff --git a/lib/api/milestones.rb b/lib/api/milestones.rb
index 4b0424ba444..d5d3347a724 100644
--- a/lib/api/milestones.rb
+++ b/lib/api/milestones.rb
@@ -36,12 +36,8 @@ module Gitlab
# Example Request:
# POST /projects/:id/milestones
post ":id/milestones" do
- @milestone = user_project.milestones.new(
- title: params[:title],
- description: params[:description],
- due_date: params[:due_date]
- )
-
+ attrs = existed_attributes [:title, :description, :due_date]
+ @milestone = user_project.milestones.new attrs
if @milestone.save
present @milestone, with: Entities::Milestone
else
@@ -64,14 +60,8 @@ module Gitlab
authorize! :admin_milestone, user_project
@milestone = user_project.milestones.find(params[:milestone_id])
- parameters = {
- title: (params[:title] || @milestone.title),
- description: (params[:description] || @milestone.description),
- due_date: (params[:due_date] || @milestone.due_date),
- closed: (params[:closed] || @milestone.closed)
- }
-
- if @milestone.update_attributes(parameters)
+ attrs = existed_attributes [:title, :description, :due_date, :closed]
+ if @milestone.update_attributes attrs
present @milestone, with: Entities::Milestone
else
not_found!
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index cf23dc5f538..4a2634720eb 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -40,13 +40,16 @@ module Gitlab
post do
params[:code] ||= params[:name]
params[:path] ||= params[:name]
- project_attrs = {}
- params.each_pair do |k ,v|
- if Project.attribute_names.include? k
- project_attrs[k] = v
- end
- end
- @project = Project.create_by_user(project_attrs, current_user)
+ attrs = existed_attributes [:code,
+ :path,
+ :name,
+ :description,
+ :default_branch,
+ :issues_enabled,
+ :wall_enabled,
+ :merge_requests_enabled,
+ :wiki_enabled]
+ @project = Project.create_by_user(attrs, current_user)
if @project.saved?
present @project, with: Entities::Project
else
@@ -204,12 +207,10 @@ module Gitlab
# Example Request:
# POST /projects/:id/snippets
post ":id/snippets" do
- @snippet = user_project.snippets.new(
- title: params[:title],
- file_name: params[:file_name],
- expires_at: params[:lifetime],
- content: params[:code]
- )
+ attrs = existed_attributes [:title, :file_name]
+ attrs[:expires_at] = params[:lifetime] if params[:lifetime].present?
+ attrs[:content] = params[:code] if params[:code].present?
+ @snippet = user_project.snippets.new attrs
@snippet.author = current_user
if @snippet.save
@@ -234,14 +235,11 @@ module Gitlab
@snippet = user_project.snippets.find(params[:snippet_id])
authorize! :modify_snippet, @snippet
- parameters = {
- title: (params[:title] || @snippet.title),
- file_name: (params[:file_name] || @snippet.file_name),
- expires_at: (params[:lifetime] || @snippet.expires_at),
- content: (params[:code] || @snippet.content)
- }
+ attrs = existed_attributes [:title, :file_name]
+ attrs[:expires_at] = params[:lifetime] if params[:lifetime].present?
+ attrs[:content] = params[:code] if params[:code].present?
- if @snippet.update_attributes(parameters)
+ if @snippet.update_attributes attrs
present @snippet, with: Entities::ProjectSnippet
else
not_found!