@@ -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) {
0 commit comments