Class: Bloomy::Issue
- Inherits:
-
Object
- Object
- Bloomy::Issue
- Includes:
- Utilities::UserIdUtility
- Defined in:
- lib/bloomy/operations/issues.rb
Overview
Handles CRUD operations for issues in the system. Provides functionality to create, retrieve, list, and solve issues associated with meetings and users.
Instance Method Summary collapse
-
#create(meeting_id:, title:, user_id: self.user_id, notes: nil) ⇒ Hash
Creates a new issue in the system.
-
#details(issue_id) ⇒ Hash
Retrieves detailed information about a specific issue.
-
#initialize(conn) ⇒ Issue
constructor
Initializes a new Issue instance.
-
#list(user_id: nil, meeting_id: nil) ⇒ Array<Hash>
Lists issues filtered by user or meeting.
-
#solve(issue_id) ⇒ Boolean
Marks an issue as completed/solved.
Methods included from Utilities::UserIdUtility
Constructor Details
#initialize(conn) ⇒ Issue
Initializes a new Issue instance
17 18 19 |
# File 'lib/bloomy/operations/issues.rb', line 17 def initialize(conn) @conn = conn end |
Instance Method Details
#create(meeting_id:, title:, user_id: self.user_id, notes: nil) ⇒ Hash
Creates a new issue in the system
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/bloomy/operations/issues.rb', line 86 def create(meeting_id:, title:, user_id: self.user_id, notes: nil) response = @conn.post("issues/create", {title: title, meetingid: meeting_id, ownerid: user_id, notes: notes}.to_json) { id: response.body["Id"], meeting_id: response.body["OriginId"], meeting_title: response.body["Origin"], title: response.body["Name"], user_id: response.body["Owner"]["Id"], notes_url: response.body["DetailsUrl"] } end |
#details(issue_id) ⇒ Hash
Retrieves detailed information about a specific issue
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bloomy/operations/issues.rb', line 26 def details(issue_id) response = @conn.get("issues/#{issue_id}").body { id: response["Id"], title: response["Name"], notes_url: response["DetailsUrl"], created_at: response["CreateTime"], completed_at: response["CloseTime"], meeting_id: response["OriginId"], meeting_title: response["Origin"], user_id: response["Owner"]["Id"], user_name: response["Owner"]["Name"] } end |
#list(user_id: nil, meeting_id: nil) ⇒ Array<Hash>
Lists issues filtered by user or meeting
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/bloomy/operations/issues.rb', line 48 def list(user_id: nil, meeting_id: nil) if user_id && meeting_id raise ArgumentError, "Please provide either `user_id` or `meeting_id`, not both." end response = meeting_id ? @conn.get("l10/#{meeting_id}/issues").body : @conn.get("issues/users/#{user_id || self.user_id}").body response.map do |issue| { id: issue["Id"], title: issue["Name"], notes_url: issue["DetailsUrl"], created_at: issue["CreateTime"], meeting_id: issue["OriginId"], meeting_title: issue["Origin"] } end end |
#solve(issue_id) ⇒ Boolean
Marks an issue as completed/solved
72 73 74 75 |
# File 'lib/bloomy/operations/issues.rb', line 72 def solve(issue_id) response = @conn.post("issues/#{issue_id}/complete", {complete: true}.to_json) response.success? end |