sirportly 1.1.7 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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