Completed
Push — master ( 262152...18af1b )
by João Felipe Magro
02:34
created

TransactionResponseService::populate()   B

Complexity

Conditions 3
Paths 4

Size

Total Lines 31
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 31
c 0
b 0
f 0
rs 8.8571
cc 3
eloc 23
nc 4
nop 1
1
<?php
2
3
namespace Ipag\Classes\Services;
4
5
use Ipag\Classes\Contracts\Populable;
6
use Ipag\Classes\Util\ObjectUtil;
7
use stdClass;
8
9
final class TransactionResponseService implements Populable
10
{
11
    public function populate(stdClass $response)
12
    {
13
        $objectUtil = new ObjectUtil();
14
        $transaction = new stdClass();
15
        $transaction->tid = $objectUtil->getProperty($response, 'id_transacao');
16
        $transaction->acquirer = $objectUtil->getProperty($response, 'operadora');
17
        $transaction->acquirerMessage = $objectUtil->getProperty($response, 'operadora_mensagem');
18
        $transaction->urlAthentication = $objectUtil->getProperty($response, 'url_autenticacao');
19
        $transaction->payment = new stdClass();
20
        $transaction->payment->status = $objectUtil->getProperty($response, 'status_pagamento');
21
        $transaction->payment->message = $objectUtil->getProperty($response, 'mensagem_transacao');
22
23
        $transaction->order = new stdClass();
24
        $transaction->order->orderId = $objectUtil->getProperty($response, 'num_pedido');
25
26
        if (isset($response->token)) {
27
            $transaction->creditCard = new stdClass();
28
            $transaction->creditCard->token = $objectUtil->getProperty($response, 'token');
29
            $transaction->creditCard->last4 = $objectUtil->getProperty($response, 'last4');
30
            $transaction->creditCard->expiryMonth = $objectUtil->getProperty($response, 'mes');
31
            $transaction->creditCard->expiryYear = $objectUtil->getProperty($response, 'ano');
32
        }
33
34
        if (isset($response->id_assinatura)) {
35
            $transaction->subscription = new stdClass();
36
            $transaction->subscription->id = $objectUtil->getProperty($response, 'id_assinatura');
37
            $transaction->subscription->profileId = $objectUtil->getProperty($response, 'profile_id');
38
        }
39
40
        return $transaction;
41
    }
42
}
43