txtextcontrol-reportingcloud 1.1.1 → 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.
- checksums.yaml +4 -4
- data/.vscode/launch.json +61 -0
- data/.vscode/settings.json +4 -0
- data/LICENSE.md +1 -1
- data/README.md +2 -0
- data/lib/core_ext/string.rb +1 -1
- data/lib/txtextcontrol/reportingcloud.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/account_settings.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/api_key.rb +44 -0
- data/lib/txtextcontrol/reportingcloud/append_body.rb +70 -0
- data/lib/txtextcontrol/reportingcloud/append_document.rb +61 -0
- data/lib/txtextcontrol/reportingcloud/document_settings.rb +93 -0
- data/lib/txtextcontrol/reportingcloud/find_and_replace_body.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/incorrect_word.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/merge_block.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/merge_body.rb +3 -3
- data/lib/txtextcontrol/reportingcloud/merge_field.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/merge_settings.rb +7 -63
- data/lib/txtextcontrol/reportingcloud/reportingcloud.rb +78 -2
- data/lib/txtextcontrol/reportingcloud/template.rb +2 -1
- data/lib/txtextcontrol/reportingcloud/template_data_validator.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/template_info.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/template_name_validator.rb +1 -1
- data/lib/txtextcontrol/reportingcloud/version.rb +2 -2
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aff3d3e70f0d6163c80313a1836156fe966fe143
|
4
|
+
data.tar.gz: a2619ec7ef9f612f54665615e7e685a54703c793
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 655e195d639b4e3fa872e7c73511894338e82217d1a95d47ed35dc8ef646aa9eb5d3308bde1b9cb32cbb9d9a3f1af5a76c7d6bc130351a4bb8362fa0ded90d7a
|
7
|
+
data.tar.gz: fc4b1950cd42f817288864f1a98cdee31bd2ec6108f476a86cb1b41b659677d968137c7c2d35442377d18e2505ef8c27f3630f0d687d3f1d9663cc5230542f3d
|
data/.vscode/launch.json
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
{
|
2
|
+
"version": "0.2.0",
|
3
|
+
"configurations": [
|
4
|
+
{
|
5
|
+
"name": "Debug Local File",
|
6
|
+
"type": "Ruby",
|
7
|
+
"request": "launch",
|
8
|
+
"cwd": "${workspaceRoot}",
|
9
|
+
"program": "${workspaceRoot}/main.rb"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"name": "Listen for rdebug-ide",
|
13
|
+
"type": "Ruby",
|
14
|
+
"request": "attach",
|
15
|
+
"cwd": "${workspaceRoot}",
|
16
|
+
"remoteHost": "127.0.0.1",
|
17
|
+
"remotePort": "1234",
|
18
|
+
"remoteWorkspaceRoot": "${workspaceRoot}"
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"name": "Rails server",
|
22
|
+
"type": "Ruby",
|
23
|
+
"request": "launch",
|
24
|
+
"cwd": "${workspaceRoot}",
|
25
|
+
"program": "${workspaceRoot}/bin/rails",
|
26
|
+
"args": [
|
27
|
+
"server"
|
28
|
+
]
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"name": "RSpec - all",
|
32
|
+
"type": "Ruby",
|
33
|
+
"request": "launch",
|
34
|
+
"cwd": "${workspaceRoot}",
|
35
|
+
"program": "${workspaceRoot}/bin/rspec",
|
36
|
+
"args": [
|
37
|
+
"-I",
|
38
|
+
"${workspaceRoot}"
|
39
|
+
]
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"name": "RSpec - active spec file only",
|
43
|
+
"type": "Ruby",
|
44
|
+
"request": "launch",
|
45
|
+
"cwd": "${workspaceRoot}",
|
46
|
+
"program": "${workspaceRoot}/bin/rspec",
|
47
|
+
"args": [
|
48
|
+
"-I",
|
49
|
+
"${workspaceRoot}",
|
50
|
+
"${file}"
|
51
|
+
]
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"name": "Cucumber",
|
55
|
+
"type": "Ruby",
|
56
|
+
"request": "launch",
|
57
|
+
"cwd": "${workspaceRoot}",
|
58
|
+
"program": "${workspaceRoot}/bin/cucumber"
|
59
|
+
}
|
60
|
+
]
|
61
|
+
}
|
data/LICENSE.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
## Copyright ©
|
1
|
+
## Copyright © 2019, Text Control GmbH. All rights reserved.
|
2
2
|
|
3
3
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
4
4
|
following conditions are met:
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
# ReportingCloud Ruby Wrapper
|
4
4
|
|
5
|
+
[](https://badge.fury.io/rb/txtextcontrol-reportingcloud)
|
6
|
+
|
5
7
|
This is the official Ruby wrapper for ReportingCloud, which is authored, maintained and fully supported by [Text Control](http://www.textcontrol.com).
|
6
8
|
|
7
9
|
[http://www.reporting.cloud](http://www.reporting.cloud)
|
data/lib/core_ext/string.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
# Extensions to class String.
|
15
15
|
# @author Thorsten Kummerow (@thomerow)
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
require "txtextcontrol/reportingcloud/version"
|
15
15
|
require_relative "./reportingcloud/reportingcloud.rb"
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# ReportingCloud Ruby Wrapper
|
2
|
+
#
|
3
|
+
# Official wrapper (authored by Text Control GmbH, publisher of ReportingCloud) to access
|
4
|
+
# ReportingCloud in Ruby.
|
5
|
+
#
|
6
|
+
# Go to http://www.reporting.cloud to learn more about ReportingCloud
|
7
|
+
# Go to https://github.com/TextControl/txtextcontrol-reportingcloud-ruby for the
|
8
|
+
# canonical source repository.
|
9
|
+
#
|
10
|
+
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
|
+
#
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
|
+
|
14
|
+
module TXTextControl
|
15
|
+
module ReportingCloud
|
16
|
+
|
17
|
+
# Represents a ReportingCloud API key object.
|
18
|
+
# @attr key [String] The actual API Key that belongs to the account.
|
19
|
+
# @attr is_active [Boolean] Specifies whether the API Key is active or not (not used yet).
|
20
|
+
# @author Thorsten Kummerow (@thomerow)
|
21
|
+
class APIKey
|
22
|
+
attr_reader :is_active
|
23
|
+
|
24
|
+
# @param key [String] The actual API Key that belongs to the account.
|
25
|
+
# @param is_active [Boolean] Specifies whether the API Key is active or not (not used yet).
|
26
|
+
def initialize(key, is_active = true)
|
27
|
+
self.key = key
|
28
|
+
@is_active = is_active
|
29
|
+
end
|
30
|
+
|
31
|
+
def key
|
32
|
+
@key
|
33
|
+
end
|
34
|
+
|
35
|
+
def key=(val)
|
36
|
+
unless val.nil? || ((val.kind_of? String) && !val.to_s.empty?)
|
37
|
+
raise ArgumentError, "API key must be a non empty string."
|
38
|
+
end
|
39
|
+
@key = val
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# ReportingCloud Ruby Wrapper
|
2
|
+
#
|
3
|
+
# Official wrapper (authored by Text Control GmbH, publisher of ReportingCloud) to access
|
4
|
+
# ReportingCloud in Ruby.
|
5
|
+
#
|
6
|
+
# Go to http://www.reporting.cloud to learn more about ReportingCloud
|
7
|
+
# Go to https://github.com/TextControl/txtextcontrol-reportingcloud-ruby for the
|
8
|
+
# canonical source repository.
|
9
|
+
#
|
10
|
+
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
|
+
#
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
|
+
|
14
|
+
require "txtextcontrol/reportingcloud/append_document"
|
15
|
+
require "txtextcontrol/reportingcloud/document_settings"
|
16
|
+
|
17
|
+
module TXTextControl
|
18
|
+
module ReportingCloud
|
19
|
+
|
20
|
+
# Passes data to the {ReportingCloud.append_documents} method.
|
21
|
+
# @attr documents [Array<AppendDocument>] The documents that are appended.
|
22
|
+
# @attr document_settings [DocumentSettings] Optional. Document settings to specify
|
23
|
+
# document properties such as title and author.
|
24
|
+
# @author Thorsten Kummerow (@thomerow)
|
25
|
+
class AppendBody
|
26
|
+
|
27
|
+
def initialize(documents, document_settings = nil)
|
28
|
+
self.documents = documents
|
29
|
+
self.document_settings = document_settings
|
30
|
+
end
|
31
|
+
|
32
|
+
def documents
|
33
|
+
@documents
|
34
|
+
end
|
35
|
+
|
36
|
+
def documents=(val)
|
37
|
+
unless val.kind_of?(Array)
|
38
|
+
raise ArgumentError, "Not an qarray."
|
39
|
+
end
|
40
|
+
val.each do |elem|
|
41
|
+
unless elem.is_a?(TXTextControl::ReportingCloud::AppendDocument)
|
42
|
+
raise ArgumentError, "Only elements of type \"AppendDocument\" are allowed."
|
43
|
+
end
|
44
|
+
end
|
45
|
+
@documents = val
|
46
|
+
end
|
47
|
+
|
48
|
+
def document_settings
|
49
|
+
@document_settings
|
50
|
+
end
|
51
|
+
|
52
|
+
def document_settings=(val)
|
53
|
+
unless val.is_a?(TXTextControl::ReportingCloud::DocumentSettings)
|
54
|
+
raise ArgumentError, "Must be a DocumentSettings instance."
|
55
|
+
end
|
56
|
+
@document_settings = val;
|
57
|
+
end
|
58
|
+
|
59
|
+
# Converts an AppendBody instance to a hash while converting the attribute names
|
60
|
+
# from snake case to camel case.
|
61
|
+
# @return [Hash] A hash representing the AppendBody instance.
|
62
|
+
def to_camelized_hash
|
63
|
+
return {
|
64
|
+
"documents" => @documents.map { |d| d.to_camelized_hash },
|
65
|
+
"documentSettings" => @document_settings.nil? ? nil : @document_settings.to_camelized_hash
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# ReportingCloud Ruby Wrapper
|
2
|
+
#
|
3
|
+
# Official wrapper (authored by Text Control GmbH, publisher of ReportingCloud) to access
|
4
|
+
# ReportingCloud in Ruby.
|
5
|
+
#
|
6
|
+
# Go to http://www.reporting.cloud to learn more about ReportingCloud
|
7
|
+
# Go to https://github.com/TextControl/txtextcontrol-reportingcloud-ruby for the
|
8
|
+
# canonical source repository.
|
9
|
+
#
|
10
|
+
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
|
+
#
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
|
+
|
14
|
+
module TXTextControl
|
15
|
+
module ReportingCloud
|
16
|
+
|
17
|
+
# Passes data to the {ReportingCloud.append_documents} method.
|
18
|
+
# @attr document [String] The document as a Base64 encoded string.
|
19
|
+
# @attr document_divider [Symbol] The document divider option. Possible values are
|
20
|
+
# +:none+, +:new_paragraph+ and +:new_section+.
|
21
|
+
# @author Thorsten Kummerow (@thomerow)
|
22
|
+
class AppendDocument
|
23
|
+
attr_accessor :document_divider
|
24
|
+
|
25
|
+
def initialize(document, document_divider = :none)
|
26
|
+
self.document = document
|
27
|
+
@document_divider = document_divider
|
28
|
+
end
|
29
|
+
|
30
|
+
def document
|
31
|
+
@document
|
32
|
+
end
|
33
|
+
|
34
|
+
def document=(val)
|
35
|
+
unless val.is_a?(String)
|
36
|
+
raise ArgumentError, "document must be a Base64 encoded string."
|
37
|
+
end
|
38
|
+
@document = val
|
39
|
+
end
|
40
|
+
|
41
|
+
# Converts an AppendBody instance to a hash while converting the attribute names
|
42
|
+
# from snake case to camel case.
|
43
|
+
# @return [Hash] A hash representing the AppendBody instance.
|
44
|
+
def to_camelized_hash
|
45
|
+
result = {
|
46
|
+
"document" => @document,
|
47
|
+
"documentDivider" => "None"
|
48
|
+
}
|
49
|
+
|
50
|
+
case @document_divider
|
51
|
+
when :new_paragraph
|
52
|
+
result["documentDivider"] = "NewParagraph"
|
53
|
+
when :new_section
|
54
|
+
result["documentDivider"] = "NewSection"
|
55
|
+
end
|
56
|
+
|
57
|
+
return result
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# ReportingCloud Ruby Wrapper
|
2
|
+
#
|
3
|
+
# Official wrapper (authored by Text Control GmbH, publisher of ReportingCloud) to access
|
4
|
+
# ReportingCloud in Ruby.
|
5
|
+
#
|
6
|
+
# Go to http://www.reporting.cloud to learn more about ReportingCloud
|
7
|
+
# Go to https://github.com/TextControl/txtextcontrol-reportingcloud-ruby for the
|
8
|
+
# canonical source repository.
|
9
|
+
#
|
10
|
+
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
|
+
#
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
|
+
|
14
|
+
module TXTextControl
|
15
|
+
module ReportingCloud
|
16
|
+
|
17
|
+
# Holds the merge settings needed by the {ReportingCloud.append_documents}
|
18
|
+
# method.
|
19
|
+
# @attr author [String] The document's author.
|
20
|
+
# @attr creation_date [DateTime] The document's creation date.
|
21
|
+
# @attr creator_application [String] The application which created the document.
|
22
|
+
# @attr document_subject [String] The document's subject.
|
23
|
+
# @attr document_title [String] The document's title.
|
24
|
+
# @attr last_modification_date [DateTime] The document's last modification date.
|
25
|
+
# @attr user_password [String] The password needed to open the document.
|
26
|
+
# @author Thorsten Kummerow (@thomerow)
|
27
|
+
class DocumentSettings
|
28
|
+
attr_accessor :author
|
29
|
+
attr_accessor :creator_application
|
30
|
+
attr_accessor :document_subject
|
31
|
+
attr_accessor :document_title
|
32
|
+
attr_accessor :user_password
|
33
|
+
|
34
|
+
def initialize
|
35
|
+
@author = nil
|
36
|
+
@creation_date = nil
|
37
|
+
@creator_application = nil
|
38
|
+
@document_subject = nil
|
39
|
+
@document_title = nil
|
40
|
+
@last_modification_date = nil
|
41
|
+
@user_password = nil
|
42
|
+
end
|
43
|
+
|
44
|
+
def creation_date
|
45
|
+
@creation_date
|
46
|
+
end
|
47
|
+
|
48
|
+
def creation_date=(val)
|
49
|
+
case val
|
50
|
+
when nil
|
51
|
+
@creation_date = nil
|
52
|
+
when String
|
53
|
+
@creation_date = DateTime.iso8601(val)
|
54
|
+
when DateTime
|
55
|
+
@creation_date = val
|
56
|
+
else raise ArgumentError, "Value must be a string or an instance of type DateTime."
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def last_modification_date
|
61
|
+
@last_modification_date
|
62
|
+
end
|
63
|
+
|
64
|
+
def last_modification_date=(val)
|
65
|
+
case val
|
66
|
+
when nil
|
67
|
+
@last_modification_date = nil
|
68
|
+
when String
|
69
|
+
@last_modification_date = DateTime.iso8601(val)
|
70
|
+
when DateTime
|
71
|
+
@last_modification_date = val
|
72
|
+
else raise ArgumentError, "Value must be a string or an instance of type DateTime."
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# Converts a DocumentSettings instance to a hash while converting the attribute names
|
77
|
+
# from snake case to camel case.
|
78
|
+
# @return [Hash] A hash representing the DocumentSettings instance.
|
79
|
+
def to_camelized_hash
|
80
|
+
return {
|
81
|
+
"author" => @author,
|
82
|
+
"creationDate" => @creation_date.nil? ? nil : @creation_date.iso8601,
|
83
|
+
"creatorApplication" => @creator_application,
|
84
|
+
"documentSubject" => @document_subject,
|
85
|
+
"documentTitle" => @document_title,
|
86
|
+
"lastModificationDate" => @last_modification_date.nil? ? nil : @last_modification_date.iso8601,
|
87
|
+
"userPassword" => @user_password
|
88
|
+
}
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
require "txtextcontrol/reportingcloud/merge_settings"
|
15
15
|
|
@@ -9,14 +9,14 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
require "txtextcontrol/reportingcloud/merge_settings"
|
15
15
|
|
16
16
|
module TXTextControl
|
17
17
|
module ReportingCloud
|
18
18
|
|
19
|
-
#
|
19
|
+
# Passes data to the {ReportingCloud.merge_document} method.
|
20
20
|
# @attr merge_data [Array<Hash>] The merge data. Must be an array of hashes.
|
21
21
|
# @attr template [String] Base64 encoded template document.
|
22
22
|
# Supported formats are RTF, DOC, DOCX and TX.
|
@@ -59,7 +59,7 @@ module TXTextControl
|
|
59
59
|
return {
|
60
60
|
"mergeData" => @merge_data,
|
61
61
|
"template" => @template,
|
62
|
-
"mergeSettings" => @merge_settings.nil? ? nil : merge_settings.to_camelized_hash
|
62
|
+
"mergeSettings" => @merge_settings.nil? ? nil : @merge_settings.to_camelized_hash
|
63
63
|
}
|
64
64
|
end
|
65
65
|
end
|
@@ -9,7 +9,9 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
|
+
|
14
|
+
require "txtextcontrol/reportingcloud/document_settings"
|
13
15
|
|
14
16
|
module TXTextControl
|
15
17
|
module ReportingCloud
|
@@ -27,25 +29,13 @@ module TXTextControl
|
|
27
29
|
# formatted Html content or not. The default value is false. Html
|
28
30
|
# content must be enclosed in an <html /> tag element. Only active in
|
29
31
|
# the Merge endpoint.
|
30
|
-
# @attr author [String] The document's author.
|
31
|
-
# @attr creation_date [DateTime] The document's creation date.
|
32
|
-
# @attr creator_application [String] The application which created the document.
|
33
|
-
# @attr document_subject [String] The document's subject.
|
34
|
-
# @attr document_title [String] The document's title.
|
35
|
-
# @attr last_modification_date [DateTime] The document's last modification date.
|
36
|
-
# @attr user_password [String] The password needed to open the document.
|
37
32
|
# @author Thorsten Kummerow (@thomerow)
|
38
|
-
class MergeSettings
|
33
|
+
class MergeSettings < DocumentSettings
|
39
34
|
attr_accessor :remove_empty_fields
|
40
35
|
attr_accessor :remove_empty_blocks
|
41
36
|
attr_accessor :remove_empty_images
|
42
37
|
attr_accessor :remove_trailing_whitespace
|
43
38
|
attr_accessor :merge_html
|
44
|
-
attr_accessor :author
|
45
|
-
attr_accessor :creator_application
|
46
|
-
attr_accessor :document_subject
|
47
|
-
attr_accessor :document_title
|
48
|
-
attr_accessor :user_password
|
49
39
|
|
50
40
|
alias_method :remove_empty_fields?, :remove_empty_fields
|
51
41
|
alias_method :remove_empty_blocks?, :remove_empty_blocks
|
@@ -59,66 +49,20 @@ module TXTextControl
|
|
59
49
|
@remove_empty_images = true
|
60
50
|
@remove_trailing_whitespace = true
|
61
51
|
@merge_html = false
|
62
|
-
|
63
|
-
@author = nil
|
64
|
-
@creation_date = nil
|
65
|
-
@creator_application = nil
|
66
|
-
@document_subject = nil
|
67
|
-
@document_title = nil
|
68
|
-
@last_modification_date = nil
|
69
|
-
@user_password = nil
|
70
52
|
end
|
71
|
-
|
72
|
-
def creation_date
|
73
|
-
@creation_date
|
74
|
-
end
|
75
|
-
|
76
|
-
def creation_date=(val)
|
77
|
-
case val
|
78
|
-
when nil
|
79
|
-
@creation_date = nil
|
80
|
-
when String
|
81
|
-
@creation_date = DateTime.iso8601(val)
|
82
|
-
when DateTime
|
83
|
-
@creation_date = val
|
84
|
-
else raise ArgumentError, "Value must be a string or an instance of type DateTime."
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def last_modification_date
|
89
|
-
@last_modification_date
|
90
|
-
end
|
91
|
-
|
92
|
-
def last_modification_date=(val)
|
93
|
-
case val
|
94
|
-
when nil
|
95
|
-
@last_modification_date = nil
|
96
|
-
when String
|
97
|
-
@last_modification_date = DateTime.iso8601(val)
|
98
|
-
when DateTime
|
99
|
-
@last_modification_date = val
|
100
|
-
else raise ArgumentError, "Value must be a string or an instance of type DateTime."
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
53
|
+
|
104
54
|
# Converts a MergeSettings instance to a hash while converting the attribute names
|
105
55
|
# from snake case to camel case.
|
106
56
|
# @return [Hash] A hash representing the MergeSettings instance.
|
107
57
|
def to_camelized_hash
|
108
|
-
|
58
|
+
result = {
|
109
59
|
"removeEmptyFields" => @remove_empty_fields,
|
110
60
|
"removeEmptyBlocks" => @remove_empty_blocks,
|
111
61
|
"removeEmptyImages" => @remove_empty_images,
|
112
62
|
"removeTrailingWhitespace" => @remove_trailing_whitespace,
|
113
63
|
"mergeHtml" => @merge_html,
|
114
|
-
"author" => @author,
|
115
|
-
"creationDate" => @creation_date.nil? ? nil : @creation_date.iso8601,
|
116
|
-
"creatorApplication" => @creator_application,
|
117
|
-
"documentSubject" => @document_subject,
|
118
|
-
"documentTitle" => @document_title,
|
119
|
-
"lastModificationDate" => @last_modification_date.nil? ? nil : @last_modification_date.iso8601,
|
120
|
-
"userPassword" => @user_password
|
121
64
|
}
|
65
|
+
result.merge(super)
|
122
66
|
end
|
123
67
|
end
|
124
68
|
end
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
require "uri"
|
15
15
|
require "net/http"
|
@@ -23,6 +23,8 @@ require 'txtextcontrol/reportingcloud/incorrect_word'
|
|
23
23
|
require 'txtextcontrol/reportingcloud/find_and_replace_body'
|
24
24
|
require 'txtextcontrol/reportingcloud/template_name_validator'
|
25
25
|
require 'txtextcontrol/reportingcloud/template_data_validator'
|
26
|
+
require 'txtextcontrol/reportingcloud/api_key'
|
27
|
+
require 'txtextcontrol/reportingcloud/append_body'
|
26
28
|
require 'core_ext/string'
|
27
29
|
|
28
30
|
module TXTextControl
|
@@ -125,6 +127,34 @@ module TXTextControl
|
|
125
127
|
end
|
126
128
|
end
|
127
129
|
|
130
|
+
# Combines documents by appending them divided by a new section, paragraph or nothing.
|
131
|
+
# @param append_body [TXTextControl::ReportingCloud::AppendBody] The AppendBody object
|
132
|
+
# contains the templates and a DocumentSettings object.
|
133
|
+
# @param return_format [Symbol] The format of the created document. Possible
|
134
|
+
# values are +:pdf+, +:rtf+, +:doc+, +:docx+, +:html+ and +:tx+.
|
135
|
+
# @param test [Boolean] Specifies whether it is a test run or not. A test run is
|
136
|
+
# not counted against the quota and created documents contain a watermark.
|
137
|
+
# @return [String] The resulting document as a Base64 string.
|
138
|
+
def append_documents(append_body, return_format = :pdf, test = false)
|
139
|
+
unless append_body.is_a?(TXTextControl::ReportingCloud::AppendBody)
|
140
|
+
raise ArgumentError, "append_body must be an AppendBody instance."
|
141
|
+
end
|
142
|
+
|
143
|
+
# Create query parameters
|
144
|
+
params = {
|
145
|
+
:returnFormat => return_format,
|
146
|
+
:test => test
|
147
|
+
}
|
148
|
+
|
149
|
+
# Send request
|
150
|
+
res = request("/document/append", :post, params, append_body)
|
151
|
+
if res.kind_of? Net::HTTPSuccess
|
152
|
+
return res.body.remove_first_and_last
|
153
|
+
else
|
154
|
+
raise res.body
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
128
158
|
# Returns the account settings.
|
129
159
|
# @return [AccountSettings] The account settings.
|
130
160
|
def get_account_settings
|
@@ -132,7 +162,7 @@ module TXTextControl
|
|
132
162
|
if res.kind_of? Net::HTTPSuccess
|
133
163
|
return AccountSettings.from_camelized_hash(JSON.parse(res.body))
|
134
164
|
else
|
135
|
-
raise res.body
|
165
|
+
raise res.body
|
136
166
|
end
|
137
167
|
end
|
138
168
|
|
@@ -418,6 +448,50 @@ module TXTextControl
|
|
418
448
|
end
|
419
449
|
end
|
420
450
|
|
451
|
+
# Creates and returns a new API key.
|
452
|
+
# @return [String] The new API key.
|
453
|
+
def create_api_key
|
454
|
+
res = request("/account/apikey", :put)
|
455
|
+
if res.kind_of? Net::HTTPSuccess
|
456
|
+
return res.body.remove_first_and_last
|
457
|
+
else
|
458
|
+
raise res.body
|
459
|
+
end
|
460
|
+
end
|
461
|
+
|
462
|
+
# Deletes a given API Key from the account.
|
463
|
+
# @param key [String] The key to delete from the account.
|
464
|
+
def delete_api_key(key)
|
465
|
+
# Parameter validation
|
466
|
+
unless !key.nil? && !key.to_s.empty?
|
467
|
+
raise ArgumentError, "The given key must not be empty."
|
468
|
+
end
|
469
|
+
|
470
|
+
# Create query parameters
|
471
|
+
params = {
|
472
|
+
:key => key
|
473
|
+
}
|
474
|
+
|
475
|
+
res = request("/account/apikey", :delete, params)
|
476
|
+
raise res.body unless res.kind_of? Net::HTTPSuccess
|
477
|
+
end
|
478
|
+
|
479
|
+
# Returns all available API Keys of the current account.
|
480
|
+
# @return [Array<String>] All available API Keys of the current account.
|
481
|
+
def get_api_keys
|
482
|
+
res = request("/account/apikeys", :get)
|
483
|
+
if res.kind_of? Net::HTTPSuccess
|
484
|
+
keys = Array.new
|
485
|
+
data = JSON.parse(res.body, object_class: OpenStruct)
|
486
|
+
data.each do |elem|
|
487
|
+
keys.push(APIKey.new(elem.key, elem.active))
|
488
|
+
end
|
489
|
+
return keys
|
490
|
+
else
|
491
|
+
raise res.body
|
492
|
+
end
|
493
|
+
end
|
494
|
+
|
421
495
|
# Performs a HTTP request of a given type.
|
422
496
|
# @param request_type [Symbol] The type of the request. Possible values are +:get+,
|
423
497
|
# +:post+ and +:delete+.
|
@@ -442,6 +516,8 @@ module TXTextControl
|
|
442
516
|
req_type = Net::HTTP::Post
|
443
517
|
when :delete
|
444
518
|
req_type = Net::HTTP::Delete
|
519
|
+
when :put
|
520
|
+
req_type = Net::HTTP::Put
|
445
521
|
else raise "Unknown HTTP request type."
|
446
522
|
end
|
447
523
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
require 'date'
|
15
15
|
|
@@ -36,6 +36,7 @@ module TXTextControl
|
|
36
36
|
end
|
37
37
|
@size = size
|
38
38
|
end
|
39
|
+
|
39
40
|
end
|
40
41
|
end
|
41
42
|
end
|
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
require 'txtextcontrol/reportingcloud/merge_field'
|
15
15
|
require 'txtextcontrol/reportingcloud/merge_block'
|
@@ -9,10 +9,10 @@
|
|
9
9
|
#
|
10
10
|
# License: https://raw.githubusercontent.com/TextControl/txtextcontrol-reportingcloud-ruby/master/LICENSE.md
|
11
11
|
#
|
12
|
-
# Copyright: ©
|
12
|
+
# Copyright: © 2019 Text Control GmbH
|
13
13
|
|
14
14
|
module TXTextControl
|
15
15
|
module ReportingCloud
|
16
|
-
VERSION = "1.
|
16
|
+
VERSION = "1.2.0"
|
17
17
|
end
|
18
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: txtextcontrol-reportingcloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thorsten Kummerow
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -62,6 +62,8 @@ extra_rdoc_files: []
|
|
62
62
|
files:
|
63
63
|
- ".gitignore"
|
64
64
|
- ".rspec"
|
65
|
+
- ".vscode/launch.json"
|
66
|
+
- ".vscode/settings.json"
|
65
67
|
- Gemfile
|
66
68
|
- LICENSE.md
|
67
69
|
- README.md
|
@@ -71,6 +73,10 @@ files:
|
|
71
73
|
- lib/core_ext/string.rb
|
72
74
|
- lib/txtextcontrol/reportingcloud.rb
|
73
75
|
- lib/txtextcontrol/reportingcloud/account_settings.rb
|
76
|
+
- lib/txtextcontrol/reportingcloud/api_key.rb
|
77
|
+
- lib/txtextcontrol/reportingcloud/append_body.rb
|
78
|
+
- lib/txtextcontrol/reportingcloud/append_document.rb
|
79
|
+
- lib/txtextcontrol/reportingcloud/document_settings.rb
|
74
80
|
- lib/txtextcontrol/reportingcloud/find_and_replace_body.rb
|
75
81
|
- lib/txtextcontrol/reportingcloud/incorrect_word.rb
|
76
82
|
- lib/txtextcontrol/reportingcloud/merge_block.rb
|