Commit 8b5493ba07298da00be6d32603ef1f47e3f1b16e
1 parent
33e2208a
Exists in
staging
and in
4 other branches
adding options to select comments and articles api
Showing
2 changed files
with
24 additions
and
7 deletions
Show diff stats
lib/api/v1/articles.rb
| ... | ... | @@ -30,11 +30,11 @@ module API |
| 30 | 30 | conditions[:type] = parse_content_type(params[:content_type]) |
| 31 | 31 | conditions[:created_at] = period(from_date, until_date) |
| 32 | 32 | if params[:reference_id] |
| 33 | - @articles = environment.articles.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 33 | + articles = environment.articles.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 34 | 34 | else |
| 35 | - @articles = environment.articles.find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 35 | + articles = environment.articles.find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 36 | 36 | end |
| 37 | - present @articles, :with => Entities::Article | |
| 37 | + present articles, :with => Entities::Article | |
| 38 | 38 | end |
| 39 | 39 | |
| 40 | 40 | desc "Return the article id" |
| ... | ... | @@ -43,9 +43,18 @@ module API |
| 43 | 43 | end |
| 44 | 44 | |
| 45 | 45 | get ':id/children' do |
| 46 | + from_date = DateTime.parse(params[:from]) if params[:from] | |
| 47 | + until_date = DateTime.parse(params[:until]) if params[:until] | |
| 48 | + | |
| 49 | + conditions = {} | |
| 46 | 50 | conditions[:type] = parse_content_type(params[:content_type]) |
| 47 | 51 | conditions[:created_at] = period(from_date, until_date) |
| 48 | - present environment.articles.find(params[:id]).children.find(:all, conditions, :limit => limit), :with => Entities::Article | |
| 52 | + if params[:reference_id] | |
| 53 | + articles = environment.articles.find(params[:id]).children.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 54 | + else | |
| 55 | + articles = environment.articles.find(params[:id]).children.find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 56 | + end | |
| 57 | + present articles, :with => Entities::Article | |
| 49 | 58 | end |
| 50 | 59 | |
| 51 | 60 | get ':id/children/:child_id' do | ... | ... |
lib/api/v1/comments.rb
| ... | ... | @@ -16,10 +16,18 @@ module API |
| 16 | 16 | # Example Request: |
| 17 | 17 | # GET /articles/12/comments?oldest&limit=10&reference_id=23 |
| 18 | 18 | get ":id/comments" do |
| 19 | + from_date = DateTime.parse(params[:from]) if params[:from] | |
| 20 | + until_date = DateTime.parse(params[:until]) if params[:until] | |
| 21 | + | |
| 19 | 22 | conditions = {} |
| 20 | -#FIXME See a way to use desc and cres | |
| 21 | - conditions = ["id #{params.key?(:oldest) ? '<' : '>'} ?", params[:reference_id]] if params[:reference_id] | |
| 22 | - present environment.articles.find(params[:id]).comments.find(:all, :conditions => conditions, :limit => limit), :with => Entities::Comment | |
| 23 | + conditions[:created_at] = period(from_date, until_date) | |
| 24 | + if params[:reference_id] | |
| 25 | + comments = environment.articles.find(params[:id]).comments.send("#{params.key?(:oldest) ? 'older_than' : 'newer_than'}", params[:reference_id]).find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 26 | + else | |
| 27 | + comments = environment.articles.find(params[:id]).comments.find(:all, :conditions => conditions, :limit => limit, :order => "created_at DESC") | |
| 28 | + end | |
| 29 | + present comments, :with => Entities::Comment | |
| 30 | + | |
| 23 | 31 | end |
| 24 | 32 | |
| 25 | 33 | get ":id/comments/:comment_id" do | ... | ... |