PinterestBot::buildHttpClient()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace seregazhuk\PinterestBot\Factories;
4
5
use seregazhuk\PinterestBot\Api\Request;
6
use seregazhuk\PinterestBot\Api\Response;
7
use seregazhuk\PinterestBot\Helpers\Cookies;
8
use seregazhuk\PinterestBot\Api\CurlHttpClient;
9
use seregazhuk\PinterestBot\Api\ProvidersContainer;
10
11
class PinterestBot
12
{
13
    /**
14
     * Initializes Bot instance and all its dependencies.
15
     *
16
     * @return ProvidersContainer
17
     */
18
    public static function create()
19
    {
20
        $request = self::makeRequest();
21
        $response = self::makeResponse();
22
23
        return self::buildProvidersContainer($request, $response);
24
    }
25
26
    /**
27
     * @return Request
28
     */
29
    protected static function makeRequest()
30
    {
31
        $httpClient = self::buildHttpClient();
32
33
        return new Request($httpClient);
34
    }
35
36
    /**
37
     * @return Response
38
     */
39
    protected static function makeResponse()
40
    {
41
        return new Response();
42
    }
43
44
    /**
45
     * @return CurlHttpClient
46
     */
47
    protected static function buildHttpClient()
48
    {
49
        return new CurlHttpClient(new Cookies());
50
    }
51
52
    /**
53
     * @param $request
54
     * @param $response
55
     * @return ProvidersContainer
56
     */
57
    protected static function buildProvidersContainer(Request $request, Response $response)
58
    {
59
        return new ProvidersContainer($request, $response);
60
    }
61
62
    private function __construct()
63
    {
64
    }
65
66
    private function __clone()
67
    {
68
    }
69
}
70