From 56609f4834938a35c8cc1365c5956b2ff4b56ba8 Mon Sep 17 00:00:00 2001 From: AKAMATSU Yuki Date: Sun, 11 Jan 2015 01:17:42 +0900 Subject: [PATCH 1/3] Implement TrackerApi::Client#notifications --- lib/tracker_api.rb | 2 ++ lib/tracker_api/client.rb | 4 ++++ lib/tracker_api/endpoints/notifications.rb | 20 ++++++++++++++++++++ lib/tracker_api/resources/notification.rb | 15 +++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 lib/tracker_api/endpoints/notifications.rb create mode 100644 lib/tracker_api/resources/notification.rb diff --git a/lib/tracker_api.rb b/lib/tracker_api.rb index 8e91e3d..f7cd743 100644 --- a/lib/tracker_api.rb +++ b/lib/tracker_api.rb @@ -25,6 +25,7 @@ module Endpoints autoload :Iterations, 'tracker_api/endpoints/iterations' autoload :Me, 'tracker_api/endpoints/me' autoload :Memberships, 'tracker_api/endpoints/memberships' + autoload :Notifications, 'tracker_api/endpoints/notifications' autoload :Project, 'tracker_api/endpoints/project' autoload :Projects, 'tracker_api/endpoints/projects' autoload :Stories, 'tracker_api/endpoints/stories' @@ -38,6 +39,7 @@ module Resources autoload :Iteration, 'tracker_api/resources/iteration' autoload :Me, 'tracker_api/resources/me' autoload :MembershipSummary, 'tracker_api/resources/membership_summary' + autoload :Notification, 'tracker_api/resources/notification' autoload :Label, 'tracker_api/resources/label' autoload :Person, 'tracker_api/resources/person' autoload :Project, 'tracker_api/resources/project' diff --git a/lib/tracker_api/client.rb b/lib/tracker_api/client.rb index 7f24f4b..c6d6e5f 100644 --- a/lib/tracker_api/client.rb +++ b/lib/tracker_api/client.rb @@ -131,6 +131,10 @@ def story(story_id) Endpoints::Story.new(self).get_story(story_id) end + def notifications + Endpoints::Notifications.new(self).get + end + private def parse_query_and_convenience_headers(path, options) diff --git a/lib/tracker_api/endpoints/notifications.rb b/lib/tracker_api/endpoints/notifications.rb new file mode 100644 index 0000000..5abac10 --- /dev/null +++ b/lib/tracker_api/endpoints/notifications.rb @@ -0,0 +1,20 @@ +module TrackerApi + module Endpoints + class Notifications + attr_accessor :client + + def initialize(client) + @client = client + end + + def get(params={}) + data = client.paginate("/my/notifications") + data.map do |notification| + Resources::Notification.new({ client: client, + story_id: notification['story']['id'], + project_id: notification['project']['id'] }.merge(notification)) + end + end + end + end +end diff --git a/lib/tracker_api/resources/notification.rb b/lib/tracker_api/resources/notification.rb new file mode 100644 index 0000000..d09d7ca --- /dev/null +++ b/lib/tracker_api/resources/notification.rb @@ -0,0 +1,15 @@ +module TrackerApi + module Resources + class Notification + include Virtus.model + + attribute :id, Integer + attribute :message, String + attribute :kind, String + attribute :project_id, Integer + attribute :story_id, Integer + attribute :created_at, DateTime + attribute :updated_at, DateTime + end + end +end From 7c58d59aa09fd9c1ef8428c8a9eb9eb59c6f42af Mon Sep 17 00:00:00 2001 From: AKAMATSU Yuki Date: Thu, 15 Jan 2015 14:26:19 +0900 Subject: [PATCH 2/3] Apply resources object to notification's property --- lib/tracker_api/resources/notification.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/tracker_api/resources/notification.rb b/lib/tracker_api/resources/notification.rb index d09d7ca..3d10715 100644 --- a/lib/tracker_api/resources/notification.rb +++ b/lib/tracker_api/resources/notification.rb @@ -6,8 +6,9 @@ class Notification attribute :id, Integer attribute :message, String attribute :kind, String - attribute :project_id, Integer - attribute :story_id, Integer + attribute :project, TrackerApi::Resources::Project + attribute :story, TrackerApi::Resources::Story + attribute :performer, TrackerApi::Resources::Person attribute :created_at, DateTime attribute :updated_at, DateTime end From 8c3c992175c070386b5df5ca37aa7b57862b898f Mon Sep 17 00:00:00 2001 From: AKAMATSU Yuki Date: Thu, 15 Jan 2015 14:28:43 +0900 Subject: [PATCH 3/3] Remove needless code --- lib/tracker_api/endpoints/notifications.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/tracker_api/endpoints/notifications.rb b/lib/tracker_api/endpoints/notifications.rb index 5abac10..6d7b395 100644 --- a/lib/tracker_api/endpoints/notifications.rb +++ b/lib/tracker_api/endpoints/notifications.rb @@ -10,9 +10,7 @@ def initialize(client) def get(params={}) data = client.paginate("/my/notifications") data.map do |notification| - Resources::Notification.new({ client: client, - story_id: notification['story']['id'], - project_id: notification['project']['id'] }.merge(notification)) + Resources::Notification.new({ client: client }.merge(notification)) end end end