+
+ $status = $response->getStatus();
+ $reason = $response->getReasonPhrase();
+
+ if ($status >= 200 && $status < 300) {
+ return true;
+ } else if ($status >= 400 && $status < 500) {
+ // TRANS: Client exception thrown when post to collection fails with a 400 status.
+ // TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
+ throw new ClientException(sprintf(_m('URLSTATUSREASON','%1$s %2$s %3$s'), $url, $status, $reason));
+ } else if ($status >= 500 && $status < 600) {
+ // TRANS: Server exception thrown when post to collection fails with a 500 status.
+ // TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
+ throw new ServerException(sprintf(_m('URLSTATUSREASON','%1$s %2$s %3$s'), $url, $status, $reason));
+ } else {
+ // That's unexpected.
+ // TRANS: Exception thrown when post to collection fails with a status that is not handled.
+ // TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
+ throw new Exception(sprintf(_m('URLSTATUSREASON','%1$s %2$s %3$s'), $url, $status, $reason));
+ }