Skip to content

Commit 4cb7c87

Browse files
authored
Merge pull request #75 from didx-xyz/issue_66
Issue 66
2 parents 7ebed18 + 8889fc3 commit 4cb7c87

File tree

3 files changed

+70
-32
lines changed

3 files changed

+70
-32
lines changed

libs/aries-basic-controller/aries_basic_controller/aries_controller.py

Lines changed: 68 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
ClientRequest,
55
)
66
from pubsub import pub
7+
import sys
78

89
from .controllers.connections import ConnectionsController
910
from .controllers.messaging import MessagingController
@@ -143,51 +144,88 @@ def update_tennant_jwt(self, tennant_jwt):
143144

144145

145146
def register_listeners(self, listeners, defaults=True):
146-
if defaults:
147-
if self.connections:
148-
pub.subscribe(self.connections.default_handler, "connections")
149-
if self.messaging:
150-
pub.subscribe(self.messaging.default_handler, "basicmessages")
151-
if self.proofs:
152-
pub.subscribe(self.proofs.default_handler, "present_proof")
147+
try:
148+
if defaults:
149+
if self.connections:
150+
pub.subscribe(self.connections.default_handler, "connections")
151+
if self.messaging:
152+
pub.subscribe(self.messaging.default_handler, "basicmessages")
153+
if self.proofs:
154+
pub.subscribe(self.proofs.default_handler, "present_proof")
155+
156+
for listener in listeners:
157+
self.add_listener(listener)
158+
except Exception as exc:
159+
print(f"Register webhooks listeners failed! {exc!r} occurred.")
160+
logger.warn(f"Register webhooks listeners failed! {exc!r} occurred.")
153161

154-
for listener in listeners:
155-
self.add_listener(listener)
156162

157163
def add_listener(self, listener):
158-
pub.subscribe(listener["handler"], listener["topic"])
164+
try:
165+
pub.subscribe(listener["handler"], listener["topic"])
166+
except Exception as exc:
167+
print(f"Adding webhooks listener failed! {exc!r} occurred.")
168+
logger.warn(f"Adding webhooks listener failed! {exc!r} occurred.")
169+
159170

160171
def remove_listener(self, listener):
161-
if pub.isSubscribed(listener["handler"], listener["topic"]):
162-
pub.unsubscribe(listener["handler"], listener["topic"])
163-
else:
164-
logger.debug("Listener not subscribed", listener)
172+
try:
173+
if pub.isSubscribed(listener["handler"], listener["topic"]):
174+
pub.unsubscribe(listener["handler"], listener["topic"])
175+
else:
176+
logger.debug("Listener not subscribed", listener)
177+
except Exception as exc:
178+
print(f"Removing webhooks listener failed! {exc!r} occurred.")
179+
logger.warn(f"Removing webhooks listener failed! {exc!r} occurred.")
180+
165181

166182
def remove_all_listeners(self, topic: str = None):
167183
# Note advanced use of function can include both listenerFilter and topicFilter for this
168184
# Add when needed
169-
pub.unsubAll(topicName=topic)
185+
try:
186+
pub.unsubAll(topicName=topic)
187+
except Exception as exc:
188+
print(f"Removing all webhooks listeners failed! {exc!r} occurred.")
189+
logger.warn(f"Removing all webhooks listeners failed! {exc!r} occurred.")
190+
170191

171192
async def listen_webhooks(self):
172-
app = web.Application()
173-
app.add_routes([web.post(self.webhook_base + "/topic/{topic}/", self._receive_webhook)])
174-
runner = web.AppRunner(app)
175-
await runner.setup()
176-
self.webhook_site = web.TCPSite(runner, self.webhook_host, self.webhook_port)
177-
await self.webhook_site.start()
193+
try:
194+
app = web.Application()
195+
app.add_routes([web.post(self.webhook_base + "/topic/{topic}/", self._receive_webhook)])
196+
runner = web.AppRunner(app)
197+
await runner.setup()
198+
self.webhook_site = web.TCPSite(runner, self.webhook_host, self.webhook_port)
199+
await self.webhook_site.start()
200+
except Exception as exc:
201+
print(f"Listening webhooks failed! {exc!r} occurred.")
202+
logger.warn(f"Listening webhooks failed! {exc!r} occurred.")
203+
178204

179205
async def _receive_webhook(self, request: ClientRequest):
180206
topic = request.match_info["topic"]
181-
payload = await request.json()
182-
await self._handle_webhook(topic, payload)
183-
return web.Response(status=200)
207+
try:
208+
payload = await request.json()
209+
await self._handle_webhook(topic, payload)
210+
return web.Response(status=200)
211+
except Exception as exc:
212+
logger.warn(f"Receiving webhooks failed! {exc!r} occurred.")
213+
184214

185215
async def _handle_webhook(self, topic, payload):
186-
logging.debug(f"Handle Webhook - {topic}", payload)
187-
pub.sendMessage(topic, payload=payload)
188-
# return web.Response(status=200)
216+
try:
217+
logging.debug(f"Handle Webhook - {topic}", payload)
218+
pub.sendMessage(topic, payload=payload)
219+
# return web.Response(status=200)
220+
except Exception as exc:
221+
logger.warn(f"Handling webhooks failed! {exc!r} occurred when trying to handle this topic: {topic}")
222+
189223

190224
async def terminate(self):
191-
await self.client_session.close()
192-
if self.webhook_site:
193-
await self.webhook_site.stop()
225+
try:
226+
await self.client_session.close()
227+
if self.webhook_site:
228+
await self.webhook_site.stop()
229+
except Exception as exc:
230+
print(f"Terminating webhooks listener failed! {exc!r} occurred.")
231+
logger.warn(f"Terminating webhooks listener failed! {exc!r} occurred.")

tutorials/1. Learning Aries, ACA-Py and the Basic Controller/notebooks/alice/3 Messages/Part 1 - Basic Message.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
"metadata": {},
122122
"outputs": [],
123123
"source": [
124-
"await agent_controller.messaging.trust_ping(id)"
124+
"await agent_controller.messaging.trust_ping(id, \"hello, world!\")"
125125
]
126126
},
127127
{

tutorials/1. Learning Aries, ACA-Py and the Basic Controller/notebooks/bob/3 Messages/Part 1 - Basic Message.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
"name": "python",
167167
"nbconvert_exporter": "python",
168168
"pygments_lexer": "ipython3",
169-
"version": "3.7.6"
169+
"version": "3.8.5"
170170
}
171171
},
172172
"nbformat": 4,

0 commit comments

Comments
 (0)