From 85333f093b5f56a06a86a0a9bacfc501622b4917 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Wed, 18 Jun 2014 09:26:04 +0300
Subject: [PATCH] Fix notes creation via API

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 lib/api/notes.rb | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/lib/api/notes.rb b/lib/api/notes.rb
index 413faf0cf2d..0ef9a3c4beb 100644
--- a/lib/api/notes.rb
+++ b/lib/api/notes.rb
@@ -50,12 +50,15 @@ module API
         post ":id/#{noteables_str}/:#{noteable_id_str}/notes" do
           required_attributes! [:body]
 
-          @noteable = user_project.send(:"#{noteables_str}").find(params[:"#{noteable_id_str}"])
-          @note = @noteable.notes.new(note: params[:body])
-          @note.author = current_user
-          @note.project = user_project
+          opts = {
+           note: params[:body],
+           noteable_type: noteables_str.classify,
+           noteable_id: params[noteable_id_str]
+          }
+
+          @note = ::Notes::CreateService.new(user_project, current_user, opts).execute
 
-          if @note.save
+          if @note.valid?
             present @note, with: Entities::Note
           else
             not_found!
-- 
GitLab