txtextcontrol-reportingcloud 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Gem Version](https://badge.fury.io/rb/txtextcontrol-reportingcloud.svg)](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
|