teamsupport 0.1.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.
- checksums.yaml +7 -0
- data/.yardopts +12 -0
- data/CHANGELOG.md +11 -0
- data/CONTRIBUTING.md +47 -0
- data/LICENSE.md +26 -0
- data/README.md +132 -0
- data/lib/teamsupport.rb +21 -0
- data/lib/teamsupport/arguments.rb +26 -0
- data/lib/teamsupport/base.rb +173 -0
- data/lib/teamsupport/client.rb +86 -0
- data/lib/teamsupport/creatable.rb +31 -0
- data/lib/teamsupport/customer.rb +66 -0
- data/lib/teamsupport/customer_product.rb +14 -0
- data/lib/teamsupport/error.rb +135 -0
- data/lib/teamsupport/headers.rb +51 -0
- data/lib/teamsupport/identity.rb +43 -0
- data/lib/teamsupport/null_object.rb +52 -0
- data/lib/teamsupport/product.rb +14 -0
- data/lib/teamsupport/rest/api.rb +19 -0
- data/lib/teamsupport/rest/client.rb +25 -0
- data/lib/teamsupport/rest/customers.rb +156 -0
- data/lib/teamsupport/rest/products.rb +113 -0
- data/lib/teamsupport/rest/request.rb +116 -0
- data/lib/teamsupport/rest/tickets.rb +134 -0
- data/lib/teamsupport/rest/utils.rb +325 -0
- data/lib/teamsupport/ticket.rb +81 -0
- data/lib/teamsupport/ticket_action.rb +16 -0
- data/lib/teamsupport/utils.rb +33 -0
- data/lib/teamsupport/version.rb +73 -0
- data/teamsupport.gemspec +27 -0
- metadata +158 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'teamsupport/base'
|
2
|
+
require 'teamsupport/creatable'
|
3
|
+
require 'teamsupport/identity'
|
4
|
+
|
5
|
+
module Teamsupport
|
6
|
+
class Ticket < Teamsupport::Identity
|
7
|
+
include Teamsupport::Creatable
|
8
|
+
|
9
|
+
# @return [Integer]
|
10
|
+
attr_reader :ID, :StatusPosition, :SeverityPosition, :TicketNumber, :ReportedVersionID, :SolvedVersionID, :ProductID, :GroupID, :UserID, :TicketStatusID, :TicketTypeID, :TicketSeverityID, :OrganizationID, :ParentID, :ModifierID, :CreatorID, :CloserID, :DaysClosed, :DaysOpened, :KnowledgeBaseCategoryID
|
11
|
+
# @return [Float]
|
12
|
+
attr_reader :HoursSpent, :SlaViolationTime, :SlaWarningTime, :SlaViolationHours, :SlaWarningHours
|
13
|
+
# @return [String]
|
14
|
+
attr_reader :ProductName, :ReportedVersion, :SolvedVersion, :GroupName, :TicketTypeName, :UserName, :Status, :Severity, :Name, :CloserName, :CreatorName, :ModifierName, :KnowledgeBaseCategoryName, :TicketSource
|
15
|
+
|
16
|
+
# Boolean indicating whether a Ticket is closed on Teamsupport
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# teamsupport_ticket = Teamsupport::Ticket.new(IsClosed: true)
|
20
|
+
# teamsupport_ticket.IsClosed
|
21
|
+
#
|
22
|
+
# @return [Boolean]
|
23
|
+
#
|
24
|
+
# @api public
|
25
|
+
def IsClosed # rubocop:disable Style/MethodName
|
26
|
+
@attrs[:IsClosed] == 'True' ? true : false
|
27
|
+
end
|
28
|
+
|
29
|
+
# Boolean indicating whether a Ticket is visible via the portal on Teamsupport
|
30
|
+
#
|
31
|
+
# @example
|
32
|
+
# teamsupport_ticket = Teamsupport::Ticket.new(IsVisibleOnPortal: true)
|
33
|
+
# teamsupport_ticket.IsVisibleOnPortal
|
34
|
+
#
|
35
|
+
# @return [Boolean]
|
36
|
+
#
|
37
|
+
# @api public
|
38
|
+
def IsVisibleOnPortal # rubocop:disable Style/MethodName
|
39
|
+
@attrs[:IsVisibleOnPortal] == 'True' ? true : false
|
40
|
+
end
|
41
|
+
|
42
|
+
# Boolean indicating whether a Ticket is shown in the knowledgebase on Teamsupport
|
43
|
+
#
|
44
|
+
# @example
|
45
|
+
# teamsupport_ticket = Teamsupport::Ticket.new(IsKnowledgeBase: true)
|
46
|
+
# teamsupport_ticket.IsKnowledgeBase
|
47
|
+
#
|
48
|
+
# @return [Boolean]
|
49
|
+
#
|
50
|
+
# @api public
|
51
|
+
def IsKnowledgeBase # rubocop:disable Style/MethodName
|
52
|
+
@attrs[:IsKnowledgeBase] == 'True' ? true : false
|
53
|
+
end
|
54
|
+
|
55
|
+
# Time when the Ticket was closed on Teamsupport
|
56
|
+
#
|
57
|
+
# @example
|
58
|
+
# teamsupport_ticket = Teamsupport::Ticket.new(DateClosed: '4/4/2015 10:00 AM')
|
59
|
+
# teamsupport_ticket.DateClosed
|
60
|
+
#
|
61
|
+
# @return [Time]
|
62
|
+
#
|
63
|
+
# @api public
|
64
|
+
def DateClosed # rubocop:disable Style/MethodName
|
65
|
+
Time.strptime(@attrs[:DateClosed], '%m/%d/%Y %l:%M %p').utc unless @attrs[:DateClosed].nil?
|
66
|
+
end
|
67
|
+
|
68
|
+
# Time when the Ticket is due to be completed on Teamsupport
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# teamsupport_ticket = Teamsupport::Ticket.new(DueDate: '4/4/2015 10:15 AM')
|
72
|
+
# teamsupport_ticket.DueDate
|
73
|
+
#
|
74
|
+
# @return [Time]
|
75
|
+
#
|
76
|
+
# @api public
|
77
|
+
def DueDate # rubocop:disable Style/MethodName
|
78
|
+
Time.strptime(@attrs[:DueDate], '%m/%d/%Y %l:%M %p').utc unless @attrs[:DueDate].nil?
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'teamsupport/base'
|
2
|
+
require 'teamsupport/creatable'
|
3
|
+
require 'teamsupport/ticket'
|
4
|
+
|
5
|
+
module Teamsupport
|
6
|
+
class TicketAction < Teamsupport::Ticket
|
7
|
+
include Teamsupport::Creatable
|
8
|
+
|
9
|
+
# @return [Integer]
|
10
|
+
attr_reader :ID, :CreatorID, :ModifierID, :UserID, :OrganizationID, :ProductID, :TicketID, :TicketNumber
|
11
|
+
# @return [Float]
|
12
|
+
attr_reader :HoursSpent, :SlaViolationTime, :SlaWarningTime, :SlaViolationHours, :SlaWarningHours
|
13
|
+
# @return [String]
|
14
|
+
attr_reader :Name, :Description, :ActionType, :CreatorName, :ModifierName, :UserName
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Teamsupport
|
2
|
+
module Utils
|
3
|
+
module_function
|
4
|
+
|
5
|
+
# Returns new array with concatenated results of running block for every element
|
6
|
+
#
|
7
|
+
# @param enumerable [Enumerable]
|
8
|
+
#
|
9
|
+
# @return [Array, Enumerator]
|
10
|
+
#
|
11
|
+
# @api private
|
12
|
+
def flat_pmap(enumerable)
|
13
|
+
return to_enum(:flat_pmap, enumerable) unless block_given?
|
14
|
+
pmap(enumerable, &Proc.new).flatten(1)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Returns new array with the results of running block once for every element
|
18
|
+
#
|
19
|
+
# @param enumerable [Enumerable]
|
20
|
+
#
|
21
|
+
# @return [Array, Enumerator]
|
22
|
+
#
|
23
|
+
# @api private
|
24
|
+
def pmap(enumerable)
|
25
|
+
return to_enum(:pmap, enumerable) unless block_given?
|
26
|
+
if enumerable.count == 1
|
27
|
+
enumerable.collect { |object| yield(object) }
|
28
|
+
else
|
29
|
+
enumerable.collect { |object| Thread.new { yield(object) } }.collect(&:value)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Teamsupport
|
2
|
+
module Version
|
3
|
+
module_function
|
4
|
+
|
5
|
+
# Returns major version
|
6
|
+
#
|
7
|
+
# @return [Integer]
|
8
|
+
#
|
9
|
+
# @api private
|
10
|
+
def major
|
11
|
+
0
|
12
|
+
end
|
13
|
+
|
14
|
+
# Returns minor version
|
15
|
+
#
|
16
|
+
# @return [Integer]
|
17
|
+
#
|
18
|
+
# @api private
|
19
|
+
def minor
|
20
|
+
1
|
21
|
+
end
|
22
|
+
|
23
|
+
# Returns patch version
|
24
|
+
#
|
25
|
+
# @return [Integer]
|
26
|
+
#
|
27
|
+
# @api private
|
28
|
+
def patch
|
29
|
+
0
|
30
|
+
end
|
31
|
+
|
32
|
+
# Returns pre version
|
33
|
+
#
|
34
|
+
# @return [Integer, NilClass]
|
35
|
+
#
|
36
|
+
# @api private
|
37
|
+
def pre
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
# Returns version as hash
|
42
|
+
#
|
43
|
+
# @return [Hash]
|
44
|
+
#
|
45
|
+
# @api private
|
46
|
+
def to_h
|
47
|
+
{
|
48
|
+
major: major,
|
49
|
+
minor: minor,
|
50
|
+
patch: patch,
|
51
|
+
pre: pre,
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
# Returns version as array
|
56
|
+
#
|
57
|
+
# @return [Array]
|
58
|
+
#
|
59
|
+
# @api private
|
60
|
+
def to_a
|
61
|
+
[major, minor, patch, pre].compact
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns version as string
|
65
|
+
#
|
66
|
+
# @return [String]
|
67
|
+
#
|
68
|
+
# @api private
|
69
|
+
def to_s
|
70
|
+
to_a.join('.')
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/teamsupport.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'teamsupport/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.add_dependency 'addressable', '~> 2.3'
|
8
|
+
spec.add_dependency 'equalizer', '~> 0.0.11'
|
9
|
+
spec.add_dependency 'http', '~> 1.0'
|
10
|
+
spec.add_dependency 'http-form_data', '~> 1.0'
|
11
|
+
spec.add_dependency 'naught', '~> 1.0'
|
12
|
+
spec.add_development_dependency 'bundler', '~> 1.11'
|
13
|
+
|
14
|
+
spec.name = 'teamsupport'
|
15
|
+
spec.version = Teamsupport::Version
|
16
|
+
spec.authors = ['Jon Beilke']
|
17
|
+
spec.email = ['jrbeilke@gmail.com']
|
18
|
+
|
19
|
+
spec.summary = spec.description
|
20
|
+
spec.description = 'A Ruby interface to the Teamsupport API.'
|
21
|
+
spec.homepage = 'https://github.com/jrbeilke/teamsupport'
|
22
|
+
spec.licenses = %w(MIT)
|
23
|
+
|
24
|
+
spec.files = %w(.yardopts CHANGELOG.md CONTRIBUTING.md LICENSE.md README.md teamsupport.gemspec) + Dir['lib/**/*.rb']
|
25
|
+
spec.require_paths = %w(lib)
|
26
|
+
spec.required_ruby_version = '>= 1.9.3'
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: teamsupport
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jon Beilke
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-09-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: addressable
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: equalizer
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.11
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.11
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: http
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: http-form_data
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: naught
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.11'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.11'
|
97
|
+
description: A Ruby interface to the Teamsupport API.
|
98
|
+
email:
|
99
|
+
- jrbeilke@gmail.com
|
100
|
+
executables: []
|
101
|
+
extensions: []
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- ".yardopts"
|
105
|
+
- CHANGELOG.md
|
106
|
+
- CONTRIBUTING.md
|
107
|
+
- LICENSE.md
|
108
|
+
- README.md
|
109
|
+
- lib/teamsupport.rb
|
110
|
+
- lib/teamsupport/arguments.rb
|
111
|
+
- lib/teamsupport/base.rb
|
112
|
+
- lib/teamsupport/client.rb
|
113
|
+
- lib/teamsupport/creatable.rb
|
114
|
+
- lib/teamsupport/customer.rb
|
115
|
+
- lib/teamsupport/customer_product.rb
|
116
|
+
- lib/teamsupport/error.rb
|
117
|
+
- lib/teamsupport/headers.rb
|
118
|
+
- lib/teamsupport/identity.rb
|
119
|
+
- lib/teamsupport/null_object.rb
|
120
|
+
- lib/teamsupport/product.rb
|
121
|
+
- lib/teamsupport/rest/api.rb
|
122
|
+
- lib/teamsupport/rest/client.rb
|
123
|
+
- lib/teamsupport/rest/customers.rb
|
124
|
+
- lib/teamsupport/rest/products.rb
|
125
|
+
- lib/teamsupport/rest/request.rb
|
126
|
+
- lib/teamsupport/rest/tickets.rb
|
127
|
+
- lib/teamsupport/rest/utils.rb
|
128
|
+
- lib/teamsupport/ticket.rb
|
129
|
+
- lib/teamsupport/ticket_action.rb
|
130
|
+
- lib/teamsupport/utils.rb
|
131
|
+
- lib/teamsupport/version.rb
|
132
|
+
- teamsupport.gemspec
|
133
|
+
homepage: https://github.com/jrbeilke/teamsupport
|
134
|
+
licenses:
|
135
|
+
- MIT
|
136
|
+
metadata: {}
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.9.3
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.4.2
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: ''
|
157
|
+
test_files: []
|
158
|
+
has_rdoc:
|