keytechkit 0.3.17 → 0.3.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -3
- data/lib/keytechKit/elements/notes/note.rb +16 -11
- data/lib/keytechKit/elements/notes/note_handler.rb +70 -7
- data/lib/keytechKit/elements/notes/note_type.rb +23 -0
- data/lib/keytechKit/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64f139c04206b65c49a5d884521669668fa0d3fa1e3d25a551951290727ca34a
|
4
|
+
data.tar.gz: 7f84363fa38b7df27c48a90293477ed318a2c70647e45a0efc14eea28fd31f93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73262ac3bc1316c1842a12fa1b7328fd6319291d8816cc8bdd6fa31126c38f255bdb8bea2a17fa4d24fc8002eadb403bbbdff5a6a5f7502efe08a55915d5b2e0
|
7
|
+
data.tar.gz: 5f41d009fc94257bc50da5d4cc307892d397dfeb104b57c5472c1d96f4c58b3c1208bdf7b85635744664306441c4cf021fcad7138e892d4f2d618d91c8d37793
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
keytechkit (0.3.
|
4
|
+
keytechkit (0.3.18)
|
5
5
|
httparty (~> 0.16)
|
6
6
|
|
7
7
|
GEM
|
@@ -56,7 +56,8 @@ GEM
|
|
56
56
|
erubi (1.7.1)
|
57
57
|
globalid (0.4.1)
|
58
58
|
activesupport (>= 4.2.0)
|
59
|
-
httparty (0.16.
|
59
|
+
httparty (0.16.3)
|
60
|
+
mime-types (~> 3.0)
|
60
61
|
multi_xml (>= 0.5.2)
|
61
62
|
i18n (1.1.1)
|
62
63
|
concurrent-ruby (~> 1.0)
|
@@ -68,6 +69,9 @@ GEM
|
|
68
69
|
marcel (0.3.3)
|
69
70
|
mimemagic (~> 0.3.2)
|
70
71
|
method_source (0.9.1)
|
72
|
+
mime-types (3.2.2)
|
73
|
+
mime-types-data (~> 3.2015)
|
74
|
+
mime-types-data (3.2018.0812)
|
71
75
|
mimemagic (0.3.2)
|
72
76
|
mini_mime (1.0.1)
|
73
77
|
mini_portile2 (2.3.0)
|
@@ -143,4 +147,4 @@ DEPENDENCIES
|
|
143
147
|
rspec (~> 3.0)
|
144
148
|
|
145
149
|
BUNDLED WITH
|
146
|
-
1.
|
150
|
+
1.17.1
|
@@ -9,23 +9,28 @@ module KeytechKit
|
|
9
9
|
attr_accessor :createdBy
|
10
10
|
attr_accessor :createdByLong
|
11
11
|
attr_accessor :id
|
12
|
-
attr_accessor :
|
12
|
+
attr_accessor :note_type
|
13
13
|
attr_accessor :subject
|
14
14
|
attr_accessor :text
|
15
|
+
attr_accessor :element_key
|
15
16
|
|
16
17
|
def initialize(data)
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
@changedAt = data['ChangedAt']
|
19
|
+
@changedBy = data['ChangedBy']
|
20
|
+
@changedByLong = data['ChangedByLong']
|
20
21
|
|
21
|
-
|
22
|
-
|
23
|
-
|
22
|
+
@createdAt = data['CreatedAt']
|
23
|
+
@createdBy = data['CreatedBy']
|
24
|
+
@createdByLong = data['CreatedByLong']
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
@id = data['ID'] || 0
|
27
|
+
@note_type = data['NoteType']
|
28
|
+
@subject = data['Subject']
|
29
|
+
@text = data['Text']
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_hash
|
33
|
+
{ NoteType: @note_type, Subject: @subject, Text: @text }
|
29
34
|
end
|
30
35
|
end
|
31
36
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'keytechKit/elements/notes/note'
|
2
|
-
|
2
|
+
require 'keytechKit/elements/notes/note_type'
|
3
3
|
module KeytechKit
|
4
4
|
##
|
5
5
|
# Notes
|
@@ -12,23 +12,86 @@ module KeytechKit
|
|
12
12
|
@auth = { username: username, password: password }
|
13
13
|
end
|
14
14
|
|
15
|
-
def load(
|
15
|
+
def load(element_key)
|
16
16
|
parameter = { basic_auth: @auth }
|
17
17
|
|
18
|
-
response = self.class.get("/elements/#{
|
18
|
+
response = self.class.get("/elements/#{element_key}/notes", parameter)
|
19
|
+
if response.success?
|
20
|
+
parse_notes(response['NotesList'], element_key)
|
21
|
+
else
|
22
|
+
# TODO: return an error object, dont raise exception
|
23
|
+
raise response.response
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def load_note_types
|
28
|
+
parameter = { basic_auth: @auth }
|
29
|
+
response = self.class.get('/notetypes', parameter)
|
30
|
+
if response.success?
|
31
|
+
parse_note_types(response['Notetypes'])
|
32
|
+
else
|
33
|
+
# TODO: return an error object, dont raise exception
|
34
|
+
raise response.response
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def create(note_type, element_key)
|
39
|
+
note = Note.new(NoteType: note_type)
|
40
|
+
note.note_type = note_type
|
41
|
+
note.element_key = element_key
|
42
|
+
note
|
43
|
+
end
|
44
|
+
|
45
|
+
def save(note)
|
46
|
+
element_key = note.element_key
|
47
|
+
note_hash = note.to_hash
|
48
|
+
parameter = { basic_auth: @auth,
|
49
|
+
body: note_hash.to_json,
|
50
|
+
headers: { 'Content-Type' => 'application/json; charset=utf-8
' } }
|
51
|
+
|
52
|
+
response = if note.id.zero?
|
53
|
+
self.class.post("/elements/#{element_key}/notes", parameter)
|
54
|
+
else
|
55
|
+
self.class.put("/elements/#{element_key}/notes", parameter)
|
56
|
+
end
|
19
57
|
if response.success?
|
20
|
-
|
58
|
+
note.id = response.headers['location']
|
59
|
+
{ id: response.headers['location'] }
|
21
60
|
else
|
61
|
+
# TODO: return an error object, dont raise exception
|
22
62
|
raise response.response
|
23
63
|
end
|
24
64
|
end
|
25
65
|
|
66
|
+
def remove(note)
|
67
|
+
parameter = { basic_auth: @auth }
|
68
|
+
element_key = note.element_key
|
69
|
+
note_id = note.id
|
70
|
+
response = self.class.delete("/elements/#{element_key}/notes/#{note_id}", parameter)
|
71
|
+
if response.success?
|
72
|
+
{ success: true }
|
73
|
+
else
|
74
|
+
{ success: false, error: response.headers['x-errordescription'].to_s }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
26
78
|
private
|
27
79
|
|
28
|
-
def
|
80
|
+
def parse_note_types(note_types_data)
|
81
|
+
note_types = []
|
82
|
+
note_types_data.each do |note_type_data|
|
83
|
+
note_type = NoteType.new(note_type_data)
|
84
|
+
note_types.push note_type
|
85
|
+
end
|
86
|
+
note_types
|
87
|
+
end
|
88
|
+
|
89
|
+
def parse_notes(notes_result, element_key)
|
29
90
|
notes = []
|
30
|
-
|
31
|
-
|
91
|
+
notes_result.each do |note_data|
|
92
|
+
note = Note.new(note_data)
|
93
|
+
note.element_key = element_key
|
94
|
+
notes.push note
|
32
95
|
end
|
33
96
|
notes
|
34
97
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module KeytechKit
|
2
|
+
##
|
3
|
+
# A single note
|
4
|
+
class NoteType
|
5
|
+
attr_accessor :allow_modify
|
6
|
+
attr_accessor :displaytext
|
7
|
+
attr_accessor :id
|
8
|
+
attr_accessor :is_document_info
|
9
|
+
attr_accessor :is_folder_info
|
10
|
+
attr_accessor :is_masteritem_info
|
11
|
+
attr_accessor :is_system_info
|
12
|
+
|
13
|
+
def initialize(data)
|
14
|
+
@allow_modify = data['AllowModify']
|
15
|
+
@displaytext = data['Displaytext']
|
16
|
+
@id = data['ID']
|
17
|
+
@is_document_info = data['IsDocumentInfo']
|
18
|
+
@is_folder_info = data['IsFolderInfo']
|
19
|
+
@is_document_info = data['IsMasterItemInfo']
|
20
|
+
@is_system_info = data['IsSystemInfo']
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/keytechKit/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keytechkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thorsten Claus
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/keytechKit/elements/group_by.rb
|
118
118
|
- lib/keytechKit/elements/notes/note.rb
|
119
119
|
- lib/keytechKit/elements/notes/note_handler.rb
|
120
|
+
- lib/keytechKit/elements/notes/note_type.rb
|
120
121
|
- lib/keytechKit/elements/search_response_header.rb
|
121
122
|
- lib/keytechKit/search.rb
|
122
123
|
- lib/keytechKit/serverinfo.rb
|
@@ -146,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
147
|
version: '0'
|
147
148
|
requirements: []
|
148
149
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.7.
|
150
|
+
rubygems_version: 2.7.8
|
150
151
|
signing_key:
|
151
152
|
specification_version: 4
|
152
153
|
summary: keytechkit is a ruby gem to connect to the keytech Web API
|