@@ -117,30 +117,55 @@ def get_thread(self, thread_id: str) -> dict:
117117 def peers (self ) -> list :
118118 return self ._request ("GET" , "/v1/peers" ).json ()["peers" ]
119119
120- def block (self , public_key : str ) -> None :
121- self ._request ("POST" , "/v1/peers/%s/block" % quote (public_key , safe = "" ))
120+ def block (self , public_key : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
121+ if from_addr :
122+ self ._request ("POST" , "/v1/block" , json = {"from" : from_addr })
123+ elif key or public_key :
124+ self ._request ("POST" , "/v1/block" , json = {"key" : key or public_key })
122125
123- def unblock (self , public_key : str ) -> None :
124- self ._request ("DELETE" , "/v1/peers/%s/block" % quote (public_key , safe = "" ))
126+ def unblock (self , public_key : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
127+ if from_addr :
128+ self ._request ("DELETE" , "/v1/block" , json = {"from" : from_addr })
129+ elif key or public_key :
130+ self ._request ("DELETE" , "/v1/block" , json = {"key" : key or public_key })
125131
126132 # ── Approvals ────────────────────────────────────────
127133
128134 def approvals (self ) -> list :
129135 return self ._request ("GET" , "/v1/approvals" ).json ()["approvals" ]
130136
131- def approve (self , approval_id : str ) -> None :
132- self ._request (
133- "POST" , "/v1/approvals/%s" % quote (approval_id , safe = "" ), json = {"decision" : "approve" }
134- )
137+ def approve (self , approval_id : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
138+ if from_addr :
139+ self ._request ("POST" , "/v1/approve" , json = {"from" : from_addr })
140+ elif key :
141+ self ._request ("POST" , "/v1/approve" , json = {"key" : key })
142+ elif approval_id :
143+ self ._request (
144+ "POST" , "/v1/approvals/%s" % quote (approval_id , safe = "" ), json = {"decision" : "approve" }
145+ )
135146
136147 def deny (self , approval_id : str ) -> None :
137148 self ._request (
138149 "POST" , "/v1/approvals/%s" % quote (approval_id , safe = "" ), json = {"decision" : "deny" }
139150 )
140151
141- def revoke (self , approval_id : str ) -> None :
142- self ._request (
143- "POST" , "/v1/approvals/%s/revoke" % quote (approval_id , safe = "" )
152+ def revoke (self , approval_id : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
153+ if from_addr :
154+ self ._request ("POST" , "/v1/revoke" , json = {"from" : from_addr })
155+ elif key :
156+ self ._request ("POST" , "/v1/revoke" , json = {"key" : key })
157+ elif approval_id :
158+ self ._request (
159+ "POST" , "/v1/approvals/%s/revoke" % quote (approval_id , safe = "" )
160+ )
161+
162+ # ── Permissions ──────────────────────────────────────
163+
164+ def permissions (self ) -> dict :
165+ return self ._request ("GET" , "/v1/permissions" ).json ()
166+
167+ def ping (self , address : str ) -> dict :
168+ return self ._request ("POST" , "/v1/ping" , json = {"address" : address }).json ()
144169 )
145170
146171 # ── History ──────────────────────────────────────────
@@ -359,31 +384,55 @@ async def get_thread(self, thread_id: str) -> dict:
359384 async def peers (self ) -> list :
360385 return (await self ._request ("GET" , "/v1/peers" )).json ()["peers" ]
361386
362- async def block (self , public_key : str ) -> None :
363- await self ._request ("POST" , "/v1/peers/%s/block" % quote (public_key , safe = "" ))
387+ async def block (self , public_key : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
388+ if from_addr :
389+ await self ._request ("POST" , "/v1/block" , json = {"from" : from_addr })
390+ elif key or public_key :
391+ await self ._request ("POST" , "/v1/block" , json = {"key" : key or public_key })
364392
365- async def unblock (self , public_key : str ) -> None :
366- await self ._request ("DELETE" , "/v1/peers/%s/block" % quote (public_key , safe = "" ))
393+ async def unblock (self , public_key : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
394+ if from_addr :
395+ await self ._request ("DELETE" , "/v1/block" , json = {"from" : from_addr })
396+ elif key or public_key :
397+ await self ._request ("DELETE" , "/v1/block" , json = {"key" : key or public_key })
367398
368399 # ── Approvals ────────────────────────────────────────
369400
370401 async def approvals (self ) -> list :
371402 return (await self ._request ("GET" , "/v1/approvals" )).json ()["approvals" ]
372403
373- async def approve (self , approval_id : str ) -> None :
374- await self ._request (
375- "POST" , "/v1/approvals/%s" % quote (approval_id , safe = "" ), json = {"decision" : "approve" }
376- )
404+ async def approve (self , approval_id : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
405+ if from_addr :
406+ await self ._request ("POST" , "/v1/approve" , json = {"from" : from_addr })
407+ elif key :
408+ await self ._request ("POST" , "/v1/approve" , json = {"key" : key })
409+ elif approval_id :
410+ await self ._request (
411+ "POST" , "/v1/approvals/%s" % quote (approval_id , safe = "" ), json = {"decision" : "approve" }
412+ )
377413
378414 async def deny (self , approval_id : str ) -> None :
379415 await self ._request (
380416 "POST" , "/v1/approvals/%s" % quote (approval_id , safe = "" ), json = {"decision" : "deny" }
381417 )
382418
383- async def revoke (self , approval_id : str ) -> None :
384- await self ._request (
385- "POST" , "/v1/approvals/%s/revoke" % quote (approval_id , safe = "" )
386- )
419+ async def revoke (self , approval_id : str = "" , * , key : str = "" , from_addr : str = "" ) -> None :
420+ if from_addr :
421+ await self ._request ("POST" , "/v1/revoke" , json = {"from" : from_addr })
422+ elif key :
423+ await self ._request ("POST" , "/v1/revoke" , json = {"key" : key })
424+ elif approval_id :
425+ await self ._request (
426+ "POST" , "/v1/approvals/%s/revoke" % quote (approval_id , safe = "" )
427+ )
428+
429+ # ── Permissions ──────────────────────────────────────
430+
431+ async def permissions (self ) -> dict :
432+ return (await self ._request ("GET" , "/v1/permissions" )).json ()
433+
434+ async def ping (self , address : str ) -> dict :
435+ return (await self ._request ("POST" , "/v1/ping" , json = {"address" : address })).json ()
387436
388437 # ── History ──────────────────────────────────────────
389438
0 commit comments