plagiarism-checker 2.1.1 → 3.0.3

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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -12
  3. data/Gemfile +6 -4
  4. data/LICENSE.txt +21 -21
  5. data/README.md +39 -0
  6. data/Rakefile +4 -2
  7. data/bin/console +10 -2
  8. data/lib/copyleaks.rb +35 -0
  9. data/lib/copyleaks/api.rb +493 -0
  10. data/lib/copyleaks/app.config.rb +47 -0
  11. data/lib/copyleaks/models/auth_token.rb +54 -0
  12. data/lib/copyleaks/models/delete_request_model.rb +64 -0
  13. data/lib/copyleaks/models/exceptions/auth_exipred_exception.rb +32 -0
  14. data/lib/copyleaks/models/exceptions/command_exception.rb +32 -0
  15. data/lib/copyleaks/models/exceptions/index.rb +32 -0
  16. data/lib/copyleaks/models/exceptions/rate_limit_exception.rb +32 -0
  17. data/lib/copyleaks/models/exceptions/under_maintenance_exception.rb +32 -0
  18. data/lib/copyleaks/models/exports/export_crawled_version.rb +54 -0
  19. data/lib/copyleaks/models/exports/export_model.rb +84 -0
  20. data/lib/copyleaks/models/exports/export_pdf_report.rb +54 -0
  21. data/lib/copyleaks/models/exports/export_results.rb +56 -0
  22. data/lib/copyleaks/models/exports/index.rb +32 -0
  23. data/lib/copyleaks/models/id_object.rb +44 -0
  24. data/lib/copyleaks/models/index.rb +35 -0
  25. data/lib/copyleaks/models/start_request_model.rb +63 -0
  26. data/lib/copyleaks/models/submissions/file_ocr_submission_model.rb +61 -0
  27. data/lib/copyleaks/models/submissions/file_submission_model.rb +57 -0
  28. data/lib/copyleaks/models/submissions/index.rb +33 -0
  29. data/lib/copyleaks/models/submissions/properties/actions.rb +33 -0
  30. data/lib/copyleaks/models/submissions/properties/author.rb +41 -0
  31. data/lib/copyleaks/models/submissions/properties/copyleaks_db.rb +44 -0
  32. data/lib/copyleaks/models/submissions/properties/domains_mode.rb +31 -0
  33. data/lib/copyleaks/models/submissions/properties/exclude.rb +59 -0
  34. data/lib/copyleaks/models/submissions/properties/filter.rb +67 -0
  35. data/lib/copyleaks/models/submissions/properties/index.rb +45 -0
  36. data/lib/copyleaks/models/submissions/properties/indexing.rb +41 -0
  37. data/lib/copyleaks/models/submissions/properties/pdf_properties.rb +55 -0
  38. data/lib/copyleaks/models/submissions/properties/repository.rb +41 -0
  39. data/lib/copyleaks/models/submissions/properties/scanning.rb +55 -0
  40. data/lib/copyleaks/models/submissions/properties/scanning_exclude.rb +44 -0
  41. data/lib/copyleaks/models/submissions/properties/scanning_repository.rb +46 -0
  42. data/lib/copyleaks/models/submissions/properties/sensitive_data_protection.rb +71 -0
  43. data/lib/copyleaks/models/submissions/properties/submission_properties.rb +136 -0
  44. data/lib/copyleaks/models/submissions/properties/webhooks.rb +44 -0
  45. data/lib/copyleaks/models/submissions/submission_model.rb +47 -0
  46. data/lib/copyleaks/models/submissions/url_submission_model.rb +51 -0
  47. data/lib/copyleaks/utils/status-code.utils.rb +38 -0
  48. data/lib/copyleaks/version.rb +3 -0
  49. data/lib/index.rb +30 -0
  50. data/plagiarism-checker-3.0.2.gem +0 -0
  51. data/plagiarism-checker.gemspec +29 -0
  52. metadata +52 -108
  53. data/.rubocop.yml +0 -2
  54. data/copyleaks_api.gemspec +0 -29
  55. data/example_asynchronous.rb +0 -51
  56. data/example_synchronous.rb +0 -74
  57. data/lib/copyleaks_api.rb +0 -24
  58. data/lib/copyleaks_api/Models/ResultRecord.rb +0 -60
  59. data/lib/copyleaks_api/access_token.rb +0 -36
  60. data/lib/copyleaks_api/api.rb +0 -216
  61. data/lib/copyleaks_api/config.rb +0 -37
  62. data/lib/copyleaks_api/copyleaks_cloud.rb +0 -116
  63. data/lib/copyleaks_api/copyleaks_process.rb +0 -78
  64. data/lib/copyleaks_api/errors.rb +0 -29
  65. data/lib/copyleaks_api/validators/custom_fields_validator.rb +0 -35
  66. data/lib/copyleaks_api/validators/email_validator.rb +0 -13
  67. data/lib/copyleaks_api/validators/file_validator.rb +0 -56
  68. data/lib/copyleaks_api/validators/language_validator.rb +0 -12
  69. data/lib/copyleaks_api/validators/response_validator.rb +0 -27
  70. data/lib/copyleaks_api/validators/url_validator.rb +0 -12
  71. data/lib/copyleaks_api/version.rb +0 -3
@@ -0,0 +1,47 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class Config
26
+ @@identity_server_uri = 'https://id.copyleaks.com'
27
+ @@api_server_uri = 'https://api.copyleaks.com'
28
+ @@user_agent = 'ruby-sdk/3.0'
29
+
30
+ def initialize(identity_server_uri, api_server_uri)
31
+ @@identity_server_uri = identity_server_uri
32
+ @@api_server_uri = api_server_uri
33
+ end
34
+
35
+ def self.identity_server_uri
36
+ @@identity_server_uri
37
+ end
38
+
39
+ def self.api_server_uri
40
+ @@api_server_uri
41
+ end
42
+
43
+ def self.user_agent
44
+ @@user_agent
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,54 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class CopyleaksAuthToken
26
+ attr_reader :expires, :accessToken, :issued
27
+
28
+ def initialize(expires, accessToken, issued)
29
+ unless expires.instance_of?(String)
30
+ raise 'Copyleaks::CopyleaksAuthToken - expires - expires must be of type String'
31
+ end
32
+ unless accessToken.instance_of?(String)
33
+ raise 'Copyleaks::CopyleaksAuthToken - accessToken - accessToken must be of type String'
34
+ end
35
+ raise 'Copyleaks::CopyleaksAuthToken - issued - issued must be of type String' unless issued.instance_of?(String)
36
+
37
+ @expires = expires
38
+ @accessToken = accessToken
39
+ @issued = issued
40
+ end
41
+
42
+ def as_json(*_args)
43
+ {
44
+ expires: @expires,
45
+ issued: @issued,
46
+ accessToken: @accessToken
47
+ }.select { |_k, v| !v.nil? }
48
+ end
49
+
50
+ def to_json(*options)
51
+ as_json(*options).to_json(*options)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,64 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ require 'json'
25
+ module Copyleaks
26
+ class CopyleaksDeleteRequestModel
27
+ attr_reader :scans, :purge, :completionWebhook
28
+
29
+ # @param [Array] scans The list of scans to delete
30
+ # @param [Boolean] purge Delete all trace of the scan from Copyleaks server, including from internal database. A purged process will not be available as a result for previous scans.
31
+ # @param [String] completionWebhook Allows you to register to a webhook that will be fired once the removal has been completed. Make sure that your endpoint is listening to a POST method (no body parameters were supplied).
32
+ def initialize(scans, purge = false, completionWebhook = '')
33
+ scans.each do |object_id|
34
+ unless object_id.instance_of?(IdObject)
35
+ raise 'Copyleaks::CopyleaksDeleteRequestModel - scans - entity must be of type Copyleaks::IdObject'
36
+ end
37
+ end
38
+
39
+ unless [true, false].include? purge
40
+ raise 'Copyleaks::CopyleaksDeleteRequestModel - purge - purge must be of type Boolean'
41
+ end
42
+
43
+ unless completionWebhook.instance_of?(String)
44
+ raise 'Copyleaks::CopyleaksDeleteRequestModel - completionWebhook - completionWebhook must be of type String'
45
+ end
46
+
47
+ @scans = scans
48
+ @purge = purge
49
+ @completionWebhook = completionWebhook
50
+ end
51
+
52
+ def as_json(*_args)
53
+ {
54
+ scans: @scans.map { |object_id| object_id.as_json },
55
+ purge: @purge,
56
+ completionWebhook: @completionWebhook
57
+ }.select { |_k, v| !v.nil? }
58
+ end
59
+
60
+ def to_json(*options)
61
+ as_json(*options).to_json(*options)
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class AuthExipredException < StandardError
26
+ attr_reader :reason
27
+
28
+ def initialize
29
+ @reason = 'Authentication Expired. Need to login again'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class CommandException < StandardError
26
+ attr_reader :reason
27
+
28
+ def initialize(reason)
29
+ @reason = reason
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ $LOAD_PATH.unshift(__dir__) unless $LOAD_PATH.include?(__dir__)
25
+
26
+ require 'auth_exipred_exception'
27
+ require 'command_exception'
28
+ require 'rate_limit_exception'
29
+ require 'under_maintenance_exception'
30
+
31
+ module Copyleaks
32
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class RateLimitException < StandardError
26
+ attr_reader :reason
27
+
28
+ def initialize
29
+ @reason = 'Too many requests. Please wait before calling again.'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class UnderMaintenanceException < StandardError
26
+ attr_reader :reason
27
+
28
+ def initialize
29
+ @reason = 'Copyleaks is Under Maintenance, please visit https://status.copyleaks.com'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,54 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class ExportCrawledVersion
26
+ attr_reader :endpoint, :verb, :headers
27
+
28
+ # @param [String] endpoint The HTTP url to upload the data.
29
+ # @param [String] verb The HTTP verb (also called "HTTP Methods") to upload the data to your specified endpoint.
30
+ # @param [string[][]] headers List of headers to be submitted with the upload request. You may use this field to provide additional request headers, such as "Authorization" header. Example: [["header-key1", "header-value1"], ["header-key2", "header-value2"]]
31
+ def initialize(endpoint, verb, headers = nil)
32
+ unless endpoint.instance_of?(String)
33
+ raise 'Copyleaks::ExportCrawledVersion - endpoint - endpoint must be of type String'
34
+ end
35
+ raise 'Copyleaks::ExportCrawledVersion - verb - verb must be of type String' unless verb.instance_of?(String)
36
+
37
+ @endpoint = endpoint
38
+ @verb = verb
39
+ @headers = headers
40
+ end
41
+
42
+ def as_json(*_args)
43
+ {
44
+ endpoint: @endpoint,
45
+ verb: @verb,
46
+ headers: @headers
47
+ }.select { |_k, v| !v.nil? }
48
+ end
49
+
50
+ def to_json(*options)
51
+ as_json(*options).to_json(*options)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,84 @@
1
+ #
2
+ # The MIT License(MIT)
3
+ #
4
+ # Copyright(c) 2016 Copyleaks LTD (https://copyleaks.com)
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in all
14
+ # copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ # SOFTWARE.
23
+ # =
24
+ module Copyleaks
25
+ class CopyleaksExportModel
26
+ attr_reader :completionWebhook, :results, :crawledVersion, :pdfReport, :maxRetries, :developerPayload
27
+
28
+ # @param [String] completionWebhook This webhook event is triggered once the export is completed.
29
+ # @param [ExportResults[]] results An array of results to be exported. The equivalent of downloading results manually.
30
+ # @param [ExportCrawledVersion crawledVersion Download the crawled version of the submitted text. The equivalent of downloading crawled version manually.
31
+ # @param [ExportPdfReport] pdfReport Download the PDF report. Allowed only when `properties.pdf.create` was set to true on the scan submittion.
32
+ # @param [Integer] maxRetries How many retries to send before giving up. Using high value (12) may lead to a longer time until the completionWebhook being executed. A low value (1) may lead to errors while your service is temporary having problems.
33
+ # @param [String] developerPayload Add a custom developer payload that will then be provided on the Export-Completed webhook. https://api.copyleaks.com/documentation/v3/webhooks/export-completed
34
+ def initialize(completionWebhook, results, crawledVersion, pdfReport = nil, maxRetries = nil, developerPayload = nil)
35
+ unless completionWebhook.instance_of?(String)
36
+ raise 'Copyleaks::CopyleaksExportModel - completionWebhook - completionWebhook must be of type String'
37
+ end
38
+
39
+ results.each do |item|
40
+ unless item.instance_of?(ExportResults)
41
+ raise 'Copyleaks::CopyleaksExportModel - results - entity must be of type Copyleaks::ExportResults'
42
+ end
43
+ end
44
+
45
+ unless crawledVersion.instance_of?(ExportCrawledVersion)
46
+ raise 'Copyleaks::CopyleaksExportModel - crawledVersion - crawledVersion must be of type Copyleaks::ExportCrawledVersion'
47
+ end
48
+
49
+ if !pdfReport.nil? && pdfReport.instance_of?(ExportPdfReport)
50
+ raise 'Copyleaks::CopyleaksExportModel - pdfReport - pdfReport must be of type Copyleaks::ExportPdfReport'
51
+ end
52
+
53
+ if !maxRetries.nil? && maxRetries.instance_of?(Integer)
54
+ raise 'Copyleaks::CopyleaksExportModel - maxRetries - maxRetries must be of type Integer'
55
+ end
56
+
57
+ if !developerPayload.nil? && developerPayload.instance_of?(String)
58
+ raise 'Copyleaks::CopyleaksExportModel - developerPayload - developerPayload must be of type String'
59
+ end
60
+
61
+ @completionWebhook = completionWebhook
62
+ @results = results
63
+ @crawledVersion = crawledVersion
64
+ @pdfReport = pdfReport
65
+ @maxRetries = maxRetries
66
+ @developerPayload = developerPayload
67
+ end
68
+
69
+ def as_json(*_args)
70
+ {
71
+ completionWebhook: @completionWebhook,
72
+ results: @results,
73
+ crawledVersion: @crawledVersion,
74
+ pdfReport: @pdfReport,
75
+ maxRetries: @maxRetries,
76
+ developerPayload: @developerPayload
77
+ }.select { |_k, v| !v.nil? }
78
+ end
79
+
80
+ def to_json(*options)
81
+ as_json(*options).to_json(*options)
82
+ end
83
+ end
84
+ end