tortoiselabs 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e136ce22e408526d7c3b1943109df33754828a51
4
- data.tar.gz: 034993dbd882ec9335b1cdd8305c3d2befa3353b
3
+ metadata.gz: bec4abdb5f37466a005c591bde033c8f3ed9947f
4
+ data.tar.gz: 7413afe6764feb48253f41e18ad13b934ecb9ede
5
5
  SHA512:
6
- metadata.gz: 5c26e7690ab29d6c04eb5c283b2cddf807fa6f15329cc04abd865204d66fa17bdaf5e38c873749440d8b81d84c898bff2b640c759045a78798e4567d47148cb6
7
- data.tar.gz: dcae0f8796209cce5dc8bc22d2be75efc9cb95265670d7e381f1520e71cdefffea5a555e627ebf94df9218ef5829cd3f1cf7a2ae7118604848a45a3ee6377e38
6
+ metadata.gz: 442d0246edcf676fd00c3d8bb44ea9094cfe9992c6a77c3db2dcfca754d8a7296285cc4bd808198ae3816b50c60f396b83aaeb4b9fd606c9f7451cb05fbf1824
7
+ data.tar.gz: 9881290bb3012c983848a23cf9e6349f7bf1d4ce7ecde941190a34e088646ac759a3ad76dcae1b68b8eb76dd03b6e1d0df8d70419cc58d1db8357ecb992be4c4
@@ -0,0 +1,67 @@
1
+ module TortoiseLabs
2
+ module Support
3
+ class Ticket
4
+ attr_reader :closed_at, :department, :opened_at, :priority, :replies
5
+ attr_reader :subject, :id, :user
6
+
7
+ def initialize(thash)
8
+ @closed_at, @department = thash["closed_at"], thash["department"]
9
+ @opened_at, @priority = thash["opened_at"], thash["priority"]
10
+ @subject, @user, @id = thash["subject"], thash["user"], thash["ticket"]
11
+ @is_open = thash["is_open"]
12
+
13
+ @replies = Array.new
14
+
15
+ thash["replies"].each do |reply|
16
+ obj = Reply.new(reply)
17
+ @replies << obj
18
+ end
19
+ end
20
+
21
+ # Instance Methods
22
+
23
+ def close
24
+ result = TortoiseLabs::Client.get("/support/ticket/#{@id}/close")
25
+ Ticket.list
26
+ end
27
+
28
+ def open?
29
+ @is_open
30
+ end
31
+
32
+ def reply(message)
33
+ result = TortoiseLabs::Client.post("/support/ticket/#{@id}",
34
+ {:message => message})
35
+ Ticket.list
36
+ end
37
+
38
+ # Class Methods
39
+
40
+ def self.list
41
+ result = TortoiseLabs::Client.get("/support/tickets")
42
+ tickets = Array.new
43
+ JSON.parse(result)["tickets"].each do |tickethash|
44
+ obj = Ticket.new(tickethash)
45
+ tickets << obj
46
+ end
47
+ tickets
48
+ end
49
+
50
+ def self.create(subject, message)
51
+ result = TortoiseLabs::Client.post("/support/ticket/new",
52
+ {:subject => subject, :message => message})
53
+ self.list
54
+ end
55
+ end
56
+
57
+ class Reply
58
+ attr_reader :message, :replied_at, :ticket, :user
59
+
60
+ def initialize(rhash)
61
+ @message, @replied_at = rhash["message"], rhash["replied_at"]
62
+ @ticket, @user = rhash["ticket"], rhash["user"]
63
+ end
64
+ end
65
+ end
66
+ end
67
+
data/lib/tortoiselabs.rb CHANGED
@@ -5,3 +5,4 @@ require 'tortoiselabs/client'
5
5
  require 'tortoiselabs/vps'
6
6
  require 'tortoiselabs/dns'
7
7
  require 'tortoiselabs/billing'
8
+ require 'tortoiselabs/support'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tortoiselabs
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Northall
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: A TortoiseLabs API wrapper.
28
42
  email: andrew@northall.me.uk
29
43
  executables: []
@@ -35,6 +49,7 @@ files:
35
49
  - lib/tortoiselabs/client.rb
36
50
  - lib/tortoiselabs/dns.rb
37
51
  - lib/tortoiselabs/vps.rb
52
+ - lib/tortoiselabs/support.rb
38
53
  homepage: https://github.com/somasonic/tortoiselabs-ruby
39
54
  licenses:
40
55
  - MIT