Skip to content

Commit 749dc29

Browse files
Merge remote-tracking branch 'origin/master' into release
2 parents b190045 + f7fe5df commit 749dc29

File tree

6 files changed

+62
-6
lines changed

6 files changed

+62
-6
lines changed

AsposeWordsCloud.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'AsposeWordsCloud'
3-
s.version = '21.5'
3+
s.version = '21.6'
44
s.summary = 'Aspose Words for Cloud.'
55
s.homepage = 'https://github.com/aspose-words-cloud/aspose-words-cloud-swift.git'
66
s.license = { :type => 'MIT', :file => 'LICENSE' }

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ This repository contains Aspose.Words Cloud SDK for Swift source code. This SDK
1313
* Watermarks and protection
1414
* Full read & write access to Document Object Model, including sections, paragraphs, text, images, tables, headers/footers and many others
1515

16+
## Enhancements in Version 21.6
17+
18+
- Implemented beta version of CompareDocumentOnline feature with both document sending in request
19+
- CompareDocument method now can handle PDF files
20+
- AcceptAllRevisionsBeforeComparison option introduced which is used to specify if accept all revisions before comparison
21+
22+
1623
## Enhancements in Version 21.5
1724

1825
- Update dependencies in sdk
@@ -135,7 +142,7 @@ Add link to this repository as dependency to your Package.swift:
135142

136143
dependencies: [
137144
// Dependencies declare other packages that this package depends on.
138-
.package(url: "https://github.com/aspose-words-cloud/aspose-words-cloud-swift", from: "21.5"),
145+
.package(url: "https://github.com/aspose-words-cloud/aspose-words-cloud-swift", from: "21.6"),
139146
],
140147
targets: [
141148
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
@@ -153,7 +160,7 @@ targets: [
153160
Add link to git repository as dependency to your Podfile:
154161

155162
```ruby
156-
pod 'AsposeWordsCloud', :git => 'https://github.com/aspose-words-cloud/aspose-words-cloud-swift.git', :tag => '21.5'
163+
pod 'AsposeWordsCloud', :git => 'https://github.com/aspose-words-cloud/aspose-words-cloud-swift.git', :tag => '21.6'
157164
```
158165

159166
## Getting Started

Sources/AsposeWordsCloud/Api/Configuration.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,6 @@ public class Configuration : Codable {
117117

118118
// Returns SDK version for using in statistics headers
119119
public func getSdkVersion() -> String {
120-
return "21.5";
120+
return "21.6";
121121
}
122122
}

Sources/AsposeWordsCloud/Model/CompareOptions.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ public class CompareOptions : Codable, WordsApiModel {
3939
case new = "New"
4040
}
4141

42+
// Field of acceptAllRevisionsBeforeComparison. DTO container with compare documents options.
43+
private var acceptAllRevisionsBeforeComparison : Bool?;
44+
4245
// Field of ignoreCaseChanges. DTO container with compare documents options.
4346
private var ignoreCaseChanges : Bool?;
4447

@@ -67,6 +70,7 @@ public class CompareOptions : Codable, WordsApiModel {
6770
private var target : Target?;
6871

6972
private enum CodingKeys: String, CodingKey {
73+
case acceptAllRevisionsBeforeComparison = "AcceptAllRevisionsBeforeComparison";
7074
case ignoreCaseChanges = "IgnoreCaseChanges";
7175
case ignoreComments = "IgnoreComments";
7276
case ignoreFields = "IgnoreFields";
@@ -84,6 +88,7 @@ public class CompareOptions : Codable, WordsApiModel {
8488

8589
public required init(from decoder: Decoder) throws {
8690
let container = try decoder.container(keyedBy: CodingKeys.self);
91+
self.acceptAllRevisionsBeforeComparison = try container.decodeIfPresent(Bool.self, forKey: .acceptAllRevisionsBeforeComparison);
8792
self.ignoreCaseChanges = try container.decodeIfPresent(Bool.self, forKey: .ignoreCaseChanges);
8893
self.ignoreComments = try container.decodeIfPresent(Bool.self, forKey: .ignoreComments);
8994
self.ignoreFields = try container.decodeIfPresent(Bool.self, forKey: .ignoreFields);
@@ -97,6 +102,9 @@ public class CompareOptions : Codable, WordsApiModel {
97102

98103
public func encode(to encoder: Encoder) throws {
99104
var container = encoder.container(keyedBy: CodingKeys.self);
105+
if (self.acceptAllRevisionsBeforeComparison != nil) {
106+
try container.encode(self.acceptAllRevisionsBeforeComparison, forKey: .acceptAllRevisionsBeforeComparison);
107+
}
100108
if (self.ignoreCaseChanges != nil) {
101109
try container.encode(self.ignoreCaseChanges, forKey: .ignoreCaseChanges);
102110
}
@@ -126,6 +134,16 @@ public class CompareOptions : Codable, WordsApiModel {
126134
}
127135
}
128136

137+
// Sets acceptAllRevisionsBeforeComparison. Gets or sets whether accept revisions before comparison or not.
138+
public func setAcceptAllRevisionsBeforeComparison(acceptAllRevisionsBeforeComparison : Bool?) {
139+
self.acceptAllRevisionsBeforeComparison = acceptAllRevisionsBeforeComparison;
140+
}
141+
142+
// Gets acceptAllRevisionsBeforeComparison. Gets or sets whether accept revisions before comparison or not.
143+
public func getAcceptAllRevisionsBeforeComparison() -> Bool? {
144+
return self.acceptAllRevisionsBeforeComparison;
145+
}
146+
129147
// Sets ignoreCaseChanges. Gets or sets a value indicating whether documents comparison is case insensitive. By default comparison is case sensitive.
130148
public func setIgnoreCaseChanges(ignoreCaseChanges : Bool?) {
131149
self.ignoreCaseChanges = ignoreCaseChanges;

Sources/AsposeWordsCloud/Model/Requests/CompareDocumentOnlineRequest.swift

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,26 @@ import Foundation
3131
public class CompareDocumentOnlineRequest : WordsApiRequest {
3232
private let document : InputStream;
3333
private let compareData : CompareData;
34+
private let comparingDocument : InputStream?;
3435
private let loadEncoding : String?;
3536
private let password : String?;
3637
private let destFileName : String?;
3738

3839
private enum CodingKeys: String, CodingKey {
3940
case document;
4041
case compareData;
42+
case comparingDocument;
4143
case loadEncoding;
4244
case password;
4345
case destFileName;
4446
case invalidCodingKey;
4547
}
4648

4749
// Initializes a new instance of the CompareDocumentOnlineRequest class.
48-
public init(document : InputStream, compareData : CompareData, loadEncoding : String? = nil, password : String? = nil, destFileName : String? = nil) {
50+
public init(document : InputStream, compareData : CompareData, comparingDocument : InputStream? = nil, loadEncoding : String? = nil, password : String? = nil, destFileName : String? = nil) {
4951
self.document = document;
5052
self.compareData = compareData;
53+
self.comparingDocument = comparingDocument;
5154
self.loadEncoding = loadEncoding;
5255
self.password = password;
5356
self.destFileName = destFileName;
@@ -63,6 +66,11 @@ public class CompareDocumentOnlineRequest : WordsApiRequest {
6366
return self.compareData;
6467
}
6568

69+
// The comparing document.
70+
public func getComparingDocument() -> InputStream? {
71+
return self.comparingDocument;
72+
}
73+
6674
// Encoding that will be used to load an HTML (or TXT) document if the encoding is not specified in HTML.
6775
public func getLoadEncoding() -> String? {
6876
return self.loadEncoding;
@@ -106,6 +114,10 @@ public class CompareDocumentOnlineRequest : WordsApiRequest {
106114

107115
formParams.append(RequestFormParam(name: "compareData", body: try ObjectSerializer.serialize(value: self.getCompareData()), contentType: "application/json"));
108116

117+
if (self.getComparingDocument() != nil) {
118+
formParams.append(RequestFormParam(name: "comparingDocument", body: try ObjectSerializer.serializeFile(value: self.getComparingDocument()!), contentType: "application/octet-stream"));
119+
}
120+
109121

110122
var result = WordsApiRequestData(url: urlBuilder.url!, method: "PUT");
111123
result.setBody(formParams: formParams);

Tests/AsposeWordsCloudTests/CompareDocumentTests.swift

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ import XCTest
3232
class CompareDocumentTests: BaseTestContext {
3333
static var allTests = [
3434
("testCompareDocument", testCompareDocument),
35-
("testCompareDocumentOnline", testCompareDocumentOnline)
35+
("testCompareDocumentOnline", testCompareDocumentOnline),
36+
("testCompareTwoDocumentOnline", testCompareTwoDocumentOnline)
3637
];
3738

3839
let remoteFolder = BaseTestContext.getRemoteTestDataFolder() + "/DocumentActions/CompareDocument";
@@ -77,4 +78,22 @@ class CompareDocumentTests: BaseTestContext {
7778
let request = CompareDocumentOnlineRequest(document: InputStream(url: self.getLocalTestDataFolder().appendingPathComponent(localFolder + "/" + localName1, isDirectory: false))!, compareData: requestCompareData, destFileName: BaseTestContext.getRemoteTestOut() + "/TestCompareDocumentOut.doc");
7879
_ = try super.getApi().compareDocumentOnline(request: request);
7980
}
81+
82+
// Test for document comparison online.
83+
func testCompareTwoDocumentOnline() throws {
84+
let localName1 = "compareTestDoc1.doc";
85+
let localName2 = "compareTestDoc2.doc";
86+
let remoteName2 = "TestCompareDocument2.doc";
87+
88+
try super.uploadFile(fileContent: getLocalTestDataFolder().appendingPathComponent(localFolder + "/" + localName2, isDirectory: false), path: remoteFolder + "/" + remoteName2);
89+
90+
let requestCompareData = CompareData();
91+
requestCompareData.setAuthor(author: "author");
92+
requestCompareData.setComparingWithDocument(comparingWithDocument: remoteFolder + "/" + remoteName2);
93+
requestCompareData.setDateTime(dateTime: ObjectSerializer.customIso8601.date(from: "2015-10-26T00:00:00Z")!);
94+
95+
96+
let request = CompareDocumentOnlineRequest(document: InputStream(url: self.getLocalTestDataFolder().appendingPathComponent(localFolder + "/" + localName1, isDirectory: false))!, compareData: requestCompareData, comparingDocument: InputStream(url: self.getLocalTestDataFolder().appendingPathComponent(localFolder + "/" + localName2, isDirectory: false))!, destFileName: BaseTestContext.getRemoteTestOut() + "/TestCompareDocumentOut.doc");
97+
_ = try super.getApi().compareDocumentOnline(request: request);
98+
}
8099
}

0 commit comments

Comments
 (0)