Skip to content

Commit 639168d

Browse files
committed
Update more tests.
1 parent 80ec569 commit 639168d

File tree

6 files changed

+271
-235
lines changed

6 files changed

+271
-235
lines changed

SwiftIpfsApi/HttpIo.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ enum HttpIoError : Error {
1818
public struct HttpIo : NetworkIo {
1919

2020
public func receiveFrom(_ source: String, completionHandler: @escaping (Data) throws -> Void) throws {
21-
2221
guard let url = URL(string: source) else { throw HttpIoError.urlError("Invalid URL") }
23-
22+
print("HttpIo receiveFrom url is \(url)")
2423
let task = URLSession.shared.dataTask(with: url) {
2524
(data: Data?, response: URLResponse?, error: Error?) in
2625

SwiftIpfsApi/IpfsApi.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ extension IpfsApiClient {
8080
return
8181
}
8282

83-
// print("The data:",NSString(data: data, encoding: String.Encoding.utf8.rawValue))
84-
// let fixedData: Data = fixStreamJson(data)
85-
// print("The fixed data:",NSString(data: fixedData, encoding: String.Encoding.utf8.rawValue))
83+
print("The data:",NSString(data: data, encoding: String.Encoding.utf8.rawValue))
84+
let fixedData: Data = fixStreamJson(data)
85+
print("The fixed data:",NSString(data: fixedData, encoding: String.Encoding.utf8.rawValue))
8686

8787
var json: Any
8888
do {
@@ -151,7 +151,6 @@ enum IpfsCmdString : String {
151151
case Path = "Path"
152152
case Version = "Version"
153153
case Name = "Name"
154-
case Pinned = "Pinned"
155154
case Keys = "Keys"
156155
case Peers = "Peers"
157156
case ID = "ID"

SwiftIpfsApi/Subcommands/IpfsObject.swift

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,45 @@ public class IpfsObject : ClientSubCommand {
9797
try parent!.fetchBytes("object/data?stream-channels=true&arg=" + b58String(hash), completionHandler: completionHandler)
9898
}
9999

100+
// public func patch(_ root: Multihash, cmd: ObjectPatchCommand, args: String..., completionHandler: @escaping (MerkleNode) throws -> Void) throws {
101+
//
102+
// var request: String = "object/patch?arg=\(b58String(root))&arg=\(cmd.rawValue)&"
103+
//
104+
// if cmd == .AddLink && args.count != 2 {
105+
// throw IpfsApiError.ipfsObjectError("Wrong number of arguments to \(cmd.rawValue)")
106+
// }
107+
//
108+
// request += buildArgString(args)
109+
//
110+
// try parent!.fetchJson(request) {
111+
// result in
112+
// try completionHandler(try merkleNodeFromJson2(result))
113+
// }
114+
// }
115+
// change root to String ?
100116
public func patch(_ root: Multihash, cmd: ObjectPatchCommand, args: String..., completionHandler: @escaping (MerkleNode) throws -> Void) throws {
101117

102-
var request: String = "object/patch?arg=\(b58String(root))&arg=\(cmd.rawValue)&"
103-
104-
if cmd == .AddLink && args.count != 2 {
105-
throw IpfsApiError.ipfsObjectError("Wrong number of arguments to \(cmd.rawValue)")
118+
var request: String = "object/patch"
119+
switch cmd {
120+
case .AddLink:
121+
print("patch add link")
122+
guard args.count == 2 else {
123+
throw IpfsApiError.ipfsObjectError("Wrong number of arguments to \(cmd.rawValue)")
124+
}
125+
request += "/add-link"
126+
case .RmLink:
127+
print("patch remove link")
128+
request += "/rm-link"
129+
case .SetData:
130+
print("patch set data")
131+
request += "/set-data"
132+
case .AppendData:
133+
print("patch append data")
134+
request += "/append-data"
106135
}
107136

137+
request += "?arg=\(b58String(root))&"
138+
108139
request += buildArgString(args)
109140

110141
try parent!.fetchJson(request) {

SwiftIpfsApi/Subcommands/Name.swift

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,40 @@ public class Name : ClientSubCommand {
1717

1818
var parent: IpfsApiClient?
1919

20+
public enum NamePublishArgType {
21+
case path
22+
case resolve
23+
case lifetime
24+
case ttl
25+
case key
26+
}
27+
2028
public func publish(_ hash: Multihash, completionHandler: @escaping (JsonType) -> Void) throws {
2129
try self.publish(nil, hash: hash, completionHandler: completionHandler)
2230
}
2331

2432
public func publish(_ id: String? = nil, hash: Multihash, completionHandler: @escaping (JsonType) -> Void) throws {
2533
var request = "name/publish?arg="
2634
if id != nil { request += id! + "&arg=" }
27-
try parent!.fetchJson(request + "/ipfs/" + b58String(hash), completionHandler: completionHandler)
35+
// try parent!.fetchJson(request + "/ipfs/" + b58String(hash), completionHandler: completionHandler)
36+
try parent!.fetchJson(request + b58String(hash), completionHandler: completionHandler)
2837
}
2938

39+
public func publish(ipfsPath: String, args: [NamePublishArgType : Any]? = nil, completionHandler: @escaping (JsonType) -> Void) throws {
40+
// strip the prefix
41+
// let path = ipfsPath.replacingOccurrences(of: "/ipfs/", with: "")
42+
let path = ipfsPath.replacingOccurrences(of: "/", with: "%2F")
43+
var request = "name/publish?arg=\(path)"
44+
45+
46+
let lifetime = args?[.lifetime] ?? "24h"
47+
let resolve = args?[.resolve] ?? "true"
48+
49+
request += "&lifetime=\(lifetime)&resolve=\(resolve)"
50+
51+
try parent!.fetchJson(request, completionHandler: completionHandler)
52+
}
53+
3054
public func resolve(_ hash: Multihash? = nil, completionHandler: @escaping (String) -> Void) throws {
3155

3256
var request = "name/resolve"

SwiftIpfsApi/Subcommands/Pin.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class Pin : ClientSubCommand {
1919
try parent!.fetchJson("pin/add?stream-channels=true&arg=\(b58String(hash))") {
2020
result in
2121

22-
guard let objects = result.object?[IpfsCmdString.Pinned.rawValue]?.array else {
22+
guard let objects = result.object?["Pins"]?.array else {
2323
throw IpfsApiError.pinError("Pin.add error: No Pinned objects in JSON data.")
2424
}
2525

@@ -70,7 +70,7 @@ public class Pin : ClientSubCommand {
7070
try parent!.fetchJson("pin/rm?stream-channels=true&r=\(recursive)&arg=\(b58String(hash))") {
7171
result in
7272

73-
guard let objects = result.object?[IpfsCmdString.Pinned.rawValue]?.array else {
73+
guard let objects = result.object?["Pins"]?.array else {
7474
throw IpfsApiError.pinError("Pin.rm error: No Pinned objects in JSON data.")
7575
}
7676

0 commit comments

Comments
 (0)