Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
AtlassianHttpFactory
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 make
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Javidnikoo\LaravelAtlassian\Atlassian\Http;
4
5use Illuminate\Http\Client\PendingRequest;
6use Illuminate\Support\Facades\Http;
7
8final class AtlassianHttpFactory
9{
10    public static function make(array $config): PendingRequest
11    {
12        return Http::baseUrl(rtrim($config['base_url'], '/').'/')
13            ->withBasicAuth($config['email'], $config['api_token'])
14            ->acceptJson()
15            ->contentType('application/json')
16            ->timeout((int) $config['timeout'])
17            ->retry(
18                (int) ($config['retries'] ?? 3),
19                (int) ($config['retry_delay_ms'] ?? 1000),
20                fn ($e) => RetryDecider::shouldRetry($e)
21            );
22    }
23}