Passed
Push — master ( db8114...f9a48a )
by Mike
03:20
created

Bulk::configureData()   B

Complexity

Conditions 6
Paths 2

Size

Total Lines 25
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 22
CRAP Score 6

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 25
ccs 22
cts 22
cp 1
rs 8.439
cc 6
eloc 18
nc 2
nop 1
crap 6
1
<?php
2
/**
3
 * ©[2016] SugarCRM Inc.  Licensed by SugarCRM under the Apache 2.0 license.
4
 */
5
6
namespace SugarAPI\SDK\EntryPoint\POST;
7
8
use SugarAPI\SDK\EntryPoint\Abstracts\POST\AbstractPostEntryPoint;
9
10
class Bulk extends AbstractPostEntryPoint {
11
12
    /**
13
     * @inheritdoc
14
     */
15
    protected $_URL = 'bulk';
16
17
    /**
18
     * @inheritdoc
19
     */
20
    protected $_DATA_TYPE = 'array';
21
22
    /**
23
     * @inheritdoc
24
     */
25
    protected $_REQUIRED_DATA = array(
26
        'requests' => NULL
27
    );
28
29
    private $bulkRequest = array(
30
        'url' => '',
31
        'data' => '',
32
        'headers' => array(),
33
        'method' => ''
34
    );
35
36
    /**
37
     * @inheritdoc
38
     * @param $data
39
     * If array of EntryPoint Interfaces are passed in, it will cover that to the proper Data array for the Bulk API
40
     */
41 1
    protected function configureData($data) {
42 1
        if (!isset($data['requests'])) {
43
            $requestData = array(
44 1
                'requests' => array()
45 1
            );
46 1
            $counter = 0;
47 1
            foreach ($data as $key => $EntryPoint) {
48 1
                if (is_object($EntryPoint)) {
49 1
                    $requestData['requests'][$counter] = $this->bulkRequest;
50 1
                    $requestData['requests'][$counter]['method'] = $EntryPoint->getRequest()->getType();
51 1
                    if ($requestData['requests'][$counter]['method'] == "POST" || $requestData['requests'][$counter]['method'] == "PUT") {
52 1
                        $requestData['requests'][$counter]['data'] = json_encode($EntryPoint->getData());
53 1
                    } else {
54 1
                        unset($requestData['requests'][$counter]['data']);
55
                    }
56 1
                    $requestData['requests'][$counter]['headers'] = $EntryPoint->getRequest()->getHeaders();
57 1
                    $requestData['requests'][$counter]['url'] = "v10/" . str_replace($this->baseUrl, "", $EntryPoint->getUrl());
58
59 1
                    $counter++;
60 1
                }
61 1
            }
62 1
            $data = $requestData;
63 1
        }
64 1
        parent::configureData($data);
65
    }
66
}