Class: Youtrack::Resources::Issues

Inherits:
Base
  • Object
show all
Defined in:
lib/youtrack/resources/issues.rb

Constant Summary collapse

PATHS =
OpenStruct.new(
  issue: '/issues/%{id}',
  issues: '/issues',
  commands: '/commands',
)

Instance Attribute Summary

Attributes inherited from Base

#client

Instance Method Summary collapse

Methods inherited from Base

#delete_resource, descendants, #deserialize_response, #get_resource_with_fields, #initialize, #post_resource_with_fields, #prepare_payload, #query_params_for_fields

Constructor Details

This class inherits a constructor from Youtrack::Resources::Base

Instance Method Details

#by_id(id) ⇒ Object



10
11
12
# File 'lib/youtrack/resources/issues.rb', line 10

def by_id(id)
  get_resource_with_fields(model.all_fields, PATHS.issue % { id: id })
end

#command(command, issues = []) ⇒ Object

Parameters:

  • issues (defaults to: [])

    either a list of ids or a list of Issue instances



30
31
32
33
34
# File 'lib/youtrack/resources/issues.rb', line 30

def command(command, issues = [])
  issues = issues.map { |item| { id: item.respond_to?("id") ? item.id : item } }
  post_resource_with_fields([], PATHS.commands, { query: command, issues: issues })
  true
end

#create(issue) ⇒ Object

Parameters:

  • issue

    either a hash, json string or Issue instance



25
26
27
# File 'lib/youtrack/resources/issues.rb', line 25

def create(issue)
  post_resource_with_fields(model.all_fields, PATHS.issues, issue)
end

#delete(id) ⇒ Object



20
21
22
# File 'lib/youtrack/resources/issues.rb', line 20

def delete(id)
  delete_resource(PATHS.issue % { id: id })
end

#search(query, params = {}) ⇒ Object



14
15
16
17
18
# File 'lib/youtrack/resources/issues.rb', line 14

def search(query, params = {})
  issues = get_resource_with_fields(model.minimal_fields, PATHS.issues, { params: { query: query }.merge(params) })
  return issues if issues.is_a?(Array)
  [issues]
end