diff --git a/lib/api/notes.rb b/lib/api/notes.rb index 413faf0cf2de35ed33f266a4aefeab56bf4f69fe..0ef9a3c4beb17e1fdea6179b93e58e8722c93122 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!