Patch #13468
closedREST API for News
Description
Some small changes for supporting news creation over REST.
Files
Related issues
Updated by Go MAEDA over 7 years ago
- Related to Feature #26653: REST API - Add full CRUD support for News added
Updated by Guillaume Masclet almost 7 years ago
Hi, is this patch planned to be merged in an upcoming release ?
This would be great as I have to make a few dozen announcements each month on some of the projects I manage with Redmine. This is really tedious without automation.
Updated by Takenori TAKAKI over 5 years ago
I made a patch with small changes and tests to the C. X.'s patch.
I'm looking forward to using this feature in future Redmine.
Updated by Go MAEDA over 5 years ago
- Target version set to Candidate for next major release
Updated by Go MAEDA over 5 years ago
It looks a bit awkward to me to implement POST only without implementing GET, PUT, and DELETE. I think that GET should be implemented at least.
With the current patch implemented, users can create news but they don't have the means to retrieve the news using an id.
Updated by Takenori TAKAKI over 5 years ago
- File 0001-news-creating-via-api.patch 0001-news-creating-via-api.patch added
- File 0002-news-getting-via-api.patch 0002-news-getting-via-api.patch added
- File 0003-news-deleting-via-api.patch 0003-news-deleting-via-api.patch added
- File 0004-news-updating-via-api.patch 0004-news-updating-via-api.patch added
Go MAEDA wrote:
It looks a bit awkward to me to implement POST only without implementing GET, PUT, and DELETE. I think that GET should be implemented at least.
Certainly, that is more beautiful as an API design.
I made a patch so that POST, GET, DELETE and PUT functions can be added gradually.
Updated by Go MAEDA over 5 years ago
- Target version changed from Candidate for next major release to 4.1.0
Updated by Go MAEDA over 5 years ago
- Status changed from New to Closed
- Assignee set to Go MAEDA
Committed the patches. Thank you for your contribution. And vzvu 3k6k, thank you for reviewing the patches. Your review is very helpful to me.
Updated by Go MAEDA over 5 years ago
- Subject changed from News creation over REST to REST API for News
Updated by Yuichi HARADA over 5 years ago
Redmine::ApiTest::NewsTest#test_GET_/news/:id.xml
fails if config.time_zone is set.
Set config.time_zone in config/additional_environment.rb.
config.time_zone = 'Tokyo'
The tests suppose that time in API response is always in UTC, but it varies depending on the value of config.time_zone is set.
$ RAILS_ENV=test bundle exec rake test TEST=test/integration/api_test/news_test.rb Run options: --seed 35340 # Running: ...................F Failure: Redmine::ApiTest::NewsTest#test_GET_/news/:id.xml [test/integration/api_test/news_test.rb:69]: <(?-mix:^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$)> expected but was <2006-07-20T05:40:26+09:00>.. Expected 0 to be >= 1. bin/rails test test/integration/api_test/news_test.rb:65 ... Finished in 1.647332s, 13.9620 runs/s, 75.2732 assertions/s. 23 runs, 124 assertions, 1 failures, 0 errors, 0 skips
The following patch will solve it.
diff --git a/test/integration/api_test/news_test.rb b/test/integration/api_test/news_test.rb
index a6ca416a8..a7fccf9b6 100644
--- a/test/integration/api_test/news_test.rb
+++ b/test/integration/api_test/news_test.rb
@@ -73,8 +73,7 @@ class Redmine::ApiTest::NewsTest < Redmine::ApiTest::Base
assert_select 'title', 'eCookbook first release !'
assert_select 'summary', 'First version was released...'
assert_select 'description', "eCookbook 1.0 has been released.\n\nVisit http://ecookbook.somenet.foo/"
- iso_date = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/
- assert_select 'news>created_on', :text => iso_date
+ assert_select 'created_on', News.find(1).created_on.iso8601
end
end
Updated by Go MAEDA over 5 years ago
Yuichi HARADA wrote:
Redmine::ApiTest::NewsTest#test_GET_/news/:id.xml
fails if config.time_zone is set.
Committed the fix in r18445. Thank you for reporting and fixing it.
Updated by vzvu 3k6k over 5 years ago
Sorry, I should have run tests locally before commenting.
Thanks for fixing.
Updated by Go MAEDA over 5 years ago
- Status changed from Closed to Reopened
The test fails due to a missing fixture.
$ RAILS_ENV=test bin/rake db:reset $ bin/rails test test/integration/api_test/news_test.rb:88 Run options: --seed 61590 # Running: E Error: Redmine::ApiTest::NewsTest#test_GET_/news/:id.xml_with_attachments: NoMethodError: undefined method `container=' for nil:NilClass Did you mean? concern test/integration/api_test/news_test.rb:91:in `block in <class:NewsTest>'
It can be fixed with the following patch.
Index: test/integration/api_test/news_test.rb
===================================================================
--- test/integration/api_test/news_test.rb (リビジョン 18453)
+++ test/integration/api_test/news_test.rb (作業コピー)
@@ -28,7 +28,8 @@
:members,
:enabled_modules,
:news,
- :comments
+ :comments,
+ :attachments
test "GET /news.xml should return news" do
get '/news.xml'
Updated by Go MAEDA over 5 years ago
- Status changed from Reopened to Closed