$token, 'batch_size' => $batch_size, ]; } catch ( Quota_Exceeded_Error | Bulk_Token_Obtaining_Error $te ) { Logger::debug( "Quota exceeded for batch size {$batch_size}, trying smaller batch" ); } } throw new Quota_Exceeded_Error( esc_html__( 'Images quota exceeded', 'image-optimization' ) ); } /** * Makes the actual API request for a token. * * @param int $count Number of images to request token for. * @return string * * @throws Quota_Exceeded_Error * @throws Bulk_Token_Obtaining_Error */ private static function request_token_for_count( int $count ): string { try { $response = Utils::get_api_client()->make_request( 'POST', self::OBTAIN_TOKEN_ENDPOINT, [ 'images_count' => $count, ] ); if ( empty( $response->token ) ) { throw new Bulk_Token_Obtaining_Error( 'Token not returned in response' ); } return $response->token; } catch ( Quota_Exceeded_Error $qee ) { throw $qee; } catch ( Throwable $t ) { Logger::error( 'Error while sending bulk token request: ' . $t->getMessage() ); throw new Bulk_Token_Obtaining_Error( esc_html( $t->getMessage() ) ); } } }