PinterestBot   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 9
c 2
b 0
f 0
dl 0
loc 57
rs 10
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A makeRequest() 0 5 1
A makeResponse() 0 3 1
A __construct() 0 2 1
A buildHttpClient() 0 3 1
A create() 0 6 1
A buildProvidersContainer() 0 3 1
A __clone() 0 2 1
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