From b07e4bd59c57e0796d7ac433c7584bceb7f46bd0 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 21 Jun 2020 16:32:37 -0400 Subject: [PATCH] [twitter] Add HTTP error code handling --- twitter/twitter.php | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/twitter/twitter.php b/twitter/twitter.php index d4702379f..ff773c0a3 100644 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -500,9 +500,15 @@ function twitter_action(App $a, $uid, $pid, $action) break; case 'like': $result = $connection->post('favorites/create', $post); + if ($connection->getLastHttpCode() != 200) { + Logger::error('Unable to create favorite', ['result' => $result]); + } break; case 'unlike': $result = $connection->post('favorites/destroy', $post); + if ($connection->getLastHttpCode() != 200) { + Logger::error('Unable to destroy favorite', ['result' => $result]); + } break; default: Logger::warning('Unhandled action', ['action' => $action]); @@ -1048,26 +1054,28 @@ function twitter_get_relation($uid, $target, $contact = []) try { $status = $connection->get('friendships/show', $parameters); - } catch (TwitterOAuthException $e) { - Logger::info('Error fetching friendship status', ['user' => $uid, 'target' => $target, 'message' => $e->getMessage()]); - return $relation; + if ($connection->getLastHttpCode() !== 200) { + throw new Exception($status->errors[0]->message ?? 'HTTP response code ' . $connection->getLastHttpCode(), $status->errors[0]->code ?? $connection->getLastHttpCode()); + } + + $following = $status->relationship->source->following; + $followed = $status->relationship->source->followed_by; + + if ($following && !$followed) { + $relation = Contact::SHARING; + } elseif (!$following && $followed) { + $relation = Contact::FOLLOWER; + } elseif ($following && $followed) { + $relation = Contact::FRIEND; + } elseif (!$following && !$followed) { + $relation = 0; + } + + Logger::info('Fetched friendship relation', ['user' => $uid, 'target' => $target, 'relation' => $relation]); + } catch (Throwable $e) { + Logger::error('Error fetching friendship status', ['user' => $uid, 'target' => $target, 'message' => $e->getMessage()]); } - $following = $status->relationship->source->following; - $followed = $status->relationship->source->followed_by; - - if ($following && !$followed) { - $relation = Contact::SHARING; - } elseif (!$following && $followed) { - $relation = Contact::FOLLOWER; - } elseif ($following && $followed) { - $relation = Contact::FRIEND; - } elseif (!$following && !$followed) { - $relation = 0; - } - - Logger::info('Fetched friendship relation', ['user' => $uid, 'target' => $target, 'relation' => $relation]); - return $relation; }