From 2a16856b1bedc5a3a41983dfc31365410cc66043 Mon Sep 17 00:00:00 2001 From: "karel.picman@lbcfree.net" Date: Mon, 24 May 2021 13:19:24 +0200 Subject: [PATCH] Sub Folder creation via REST API #1255 --- app/models/dmsf_folder.rb | 2 +- .../rest_api/dmsf_folder_api_test.rb | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/models/dmsf_folder.rb b/app/models/dmsf_folder.rb index 7168616b..1351c1b1 100644 --- a/app/models/dmsf_folder.rb +++ b/app/models/dmsf_folder.rb @@ -468,7 +468,7 @@ class DmsfFolder < ActiveRecord::Base # Attributes self.title = params[:dmsf_folder][:title].strip self.description = params[:dmsf_folder][:description].strip - self.dmsf_folder_id = params[:parent_id] + self.dmsf_folder_id = params[:dmsf_folder][:dmsf_folder_id] # Custom fields if params[:dmsf_folder][:custom_field_values].present? i = 0 diff --git a/test/integration/rest_api/dmsf_folder_api_test.rb b/test/integration/rest_api/dmsf_folder_api_test.rb index 27809f32..53b151c0 100644 --- a/test/integration/rest_api/dmsf_folder_api_test.rb +++ b/test/integration/rest_api/dmsf_folder_api_test.rb @@ -99,7 +99,7 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest end def test_create_folder - #curl -v -H "Content-Type: application/xml" -X POST --data "@folder.xml" -u ${1}:${2} http://localhost:3000/projects/12/dmsf/create.xml + # curl -v -H "Content-Type: application/xml" -X POST --data "@folder.xml" -u ${1}:${2} http://localhost:3000/projects/12/dmsf/create.xml payload = %{ rest_api @@ -116,6 +116,25 @@ class DmsfFolderApiTest < RedmineDmsf::Test::IntegrationTest assert_select 'dmsf_folder > title', text: 'rest_api' end + def test_create_subfolder + # curl -v -H "Content-Type: application/xml" -X POST --data "@folder.xml" -u ${1}:${2} http://localhost:3000/projects/12/dmsf/create.xml + payload = %{ + + rest_api + A folder created via REST API + #{@folder1.id} + } + post "/projects/#{@project1.identifier}/dmsf/create.xml?key=#{@token.value}", params: payload, headers: { 'CONTENT_TYPE' => 'application/xml' } + assert_response :success + # + # + # 8 + # rest_api + # + assert_select 'dmsf_folder > title', text: 'rest_api' + assert @folder1.dmsf_folders.where(title: 'rest_api').exists? + end + def test_find_folder_by_title # curl -v -H "Content-Type: application/json" -X GET -H "X-Redmine-API-Key: USERS_API_KEY" http://localhost:3000/projects/1/dmsf.json?folder_title=Updated%20title get "/projects/#{@project1.identifier}/dmsf.xml?key=#{@token.value}&folder_title=#{@folder1.title}"