sirportly 1.1.7 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/sirportly.rb CHANGED
@@ -16,7 +16,7 @@ require 'sirportly/data_objects/department'
16
16
  require 'sirportly/data_objects/escalation_path'
17
17
  require 'sirportly/data_objects/filter'
18
18
  require 'sirportly/data_objects/knowledge_base'
19
- require 'sirportly/data_objects/page'
19
+ require 'sirportly/data_objects/knowledge_base_page'
20
20
  require 'sirportly/data_objects/priority'
21
21
  require 'sirportly/data_objects/sla'
22
22
  require 'sirportly/data_objects/status'
@@ -26,7 +26,7 @@ require 'sirportly/data_objects/ticket_update'
26
26
  require 'sirportly/data_objects/user'
27
27
 
28
28
  module Sirportly
29
- VERSION = '1.1.7'
29
+ VERSION = '1.2.0'
30
30
 
31
31
  class << self
32
32
 
@@ -1,31 +1,29 @@
1
1
  module Sirportly
2
- class KnowledgeBase < DataObject
2
+ class KnowledgeBase < DataObject
3
+
3
4
  self.collection_path = 'knowledge/list'
4
- self.member = {:path => 'knowledge/tree', :param => :kb}
5
- self.maps = {'children' => 'Page'}
6
5
 
7
- ## Workaround for a Sirportly bug
8
- ## Currently SP wraps the result in an array
9
6
  def self.find(client, query)
10
- raise Sirportly::Error, "This object does not support finding objects" unless member.is_a?(Hash)
11
- result = client.request(member[:path], {member[:param] => query})
12
- ## Notice .first here
13
- self.new(client, result.first)
7
+ result = client.request("knowledge/list").select { |i| i['id'] == query.to_i}.first
8
+ self.new(client, result)
9
+ end
10
+
11
+ def page(path)
12
+ KnowledgeBasePage.new(client, client.request('knowledge/page', :kb => attributes['id'], :path => path))
14
13
  end
15
14
 
16
- def pages
17
- self.children
15
+ def tree
16
+ client.request('knowledge/tree', :kb => attributes['id']).map { |i| KnowledgeBasePage.new(client, i) }
18
17
  end
19
18
 
20
- ## Creates a new page associated with this knowledge base
21
- ## Returns a Page object
22
19
  def create_page(params = {})
23
20
  params.merge!({:kb => self.attributes['id']})
24
21
  if req = @client.request('knowledge/add_page', params)
25
- Page.new @client, req
22
+ KnowledgeBasePage.new(@client, req)
26
23
  else
27
24
  false
28
25
  end
29
26
  end
27
+
30
28
  end
31
29
  end
@@ -0,0 +1,10 @@
1
+ module Sirportly
2
+ class KnowledgeBasePage < DataObject
3
+ self.maps = {'children' => 'KnowledgeBasePage'}
4
+
5
+ def has_children?
6
+ !self.children.empty?
7
+ end
8
+
9
+ end
10
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sirportly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-14 00:00:00.000000000Z
12
+ date: 2012-06-15 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: A Ruby library for interacting with the Sirportly API.
15
15
  email: adam@atechmedia.com
@@ -27,7 +27,7 @@ files:
27
27
  - lib/sirportly/data_objects/escalation_path.rb
28
28
  - lib/sirportly/data_objects/filter.rb
29
29
  - lib/sirportly/data_objects/knowledge_base.rb
30
- - lib/sirportly/data_objects/page.rb
30
+ - lib/sirportly/data_objects/knowledge_base_page.rb
31
31
  - lib/sirportly/data_objects/priority.rb
32
32
  - lib/sirportly/data_objects/sla.rb
33
33
  - lib/sirportly/data_objects/status.rb
@@ -1,9 +0,0 @@
1
- module Sirportly
2
- class Page < DataObject
3
- self.maps = {'children' => 'Page'}
4
-
5
- def has_children?
6
- !self.children.empty?
7
- end
8
- end
9
- end