From d782d26ba04a20fac32968cce9472e906dfedfdd Mon Sep 17 00:00:00 2001 From: Caio Almeida Date: Wed, 1 Jul 2015 22:34:49 -0300 Subject: [PATCH] API: adding tags endpoint --- lib/noosfero/api/api.rb | 1 + lib/noosfero/api/entities.rb | 5 +++++ lib/noosfero/api/v1/tags.rb | 30 ++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 0 deletions(-) create mode 100644 lib/noosfero/api/v1/tags.rb diff --git a/lib/noosfero/api/api.rb b/lib/noosfero/api/api.rb index 23e1328..e680d65 100644 --- a/lib/noosfero/api/api.rb +++ b/lib/noosfero/api/api.rb @@ -45,6 +45,7 @@ module Noosfero mount V1::Enterprises mount V1::Categories mount V1::Tasks + mount V1::Tags mount V1::Environments mount Session diff --git a/lib/noosfero/api/entities.rb b/lib/noosfero/api/entities.rb index e9e6e1f..5e653a9 100644 --- a/lib/noosfero/api/entities.rb +++ b/lib/noosfero/api/entities.rb @@ -114,6 +114,11 @@ module Noosfero expose :type end + class Tag < Entity + root 'tags', 'tag' + expose :name + end + class Environment < Entity expose :name end diff --git a/lib/noosfero/api/v1/tags.rb b/lib/noosfero/api/v1/tags.rb new file mode 100644 index 0000000..b74152b --- /dev/null +++ b/lib/noosfero/api/v1/tags.rb @@ -0,0 +1,30 @@ +module Noosfero + module API + module V1 + class Tags < Grape::API + before { authenticate! } + + resource :articles do + + resource ':id/tags' do + + get do + article = find_article(environment.articles, params[:id]) + present article.tag_list, :with => Entities::Tag + end + + desc "Add a tag to an article" + post do + article = find_article(environment.articles, params[:id]) + article.tag_list=params[:tags] + article.save + present article.tag_list, :with => Entities::Tag + end + + end + end + + end + end + end +end -- libgit2 0.21.2