Skip to content

Commit 6b167f4

Browse files
Rasha Moumnehwolfsage
authored andcommitted
Zendesk reactor: skip getting zendesk tickets if user has no zendesk account
1 parent 7c00a4d commit 6b167f4

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

lib/Synergy/Reactor/Zendesk.pm

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use Synergy::Logger '$Logger';
2121
use Time::Duration qw(ago);
2222
use Try::Tiny;
2323
use Zendesk::Client;
24+
use Synergy::Logger '$Logger';
2425

2526
__PACKAGE__->add_preference(
2627
name => 'staff-email-address',
@@ -253,15 +254,32 @@ async sub ticket_report ($self, $who, $arg = {}) {
253254
return [ $text, { slack => $text } ];
254255
}
255256

257+
# Return if $email has no associated Zendesk account
258+
my $user = eval {
259+
await $self->zendesk_client->user_api->get_by_email_f($email);
260+
};
261+
262+
if ($@) {
263+
my $error = $@;
264+
$error =~ /Expected 1 user, got 0/
265+
? $Logger->log([
266+
"No Zendesk user found for %s",
267+
$email,
268+
])
269+
: $Logger->log([
270+
"Unknown error trying to get Zendesk user for %s: %s",
271+
$email,
272+
$error,
273+
]);
274+
return;
275+
};
276+
256277
my $res;
257278
my $ok = eval {
258-
$res = await $self->zendesk_client
259-
->user_api
260-
->get_by_email_no_fetch($email)
261-
->scoped_client
279+
$res = await $user->scoped_client
262280
->make_request_f(
263-
GET => "/api/v2/users/me.json?include=open_ticket_count"
264-
);
281+
GET => "/api/v2/users/me.json?include=open_ticket_count"
282+
);
265283
1;
266284
};
267285

0 commit comments

Comments
 (0)