Completed
Pull Request — master (#7)
by
unknown
01:16
created

NetgsmSmsMessage::createXmlPost()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 24

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 24
rs 9.536
c 0
b 0
f 0
cc 2
nc 2
nop 0
1
<?php
2
3
namespace TarfinLabs\Netgsm\Sms;
4
5
use TarfinLabs\Netgsm\NetgsmErrors;
6
7
class NetgsmSmsMessage extends AbstractNetgsmMessage
8
{
9
    protected $url = 'sms/send';
10
11
    protected $errorCodes = [
12
        '20' => NetgsmErrors::MESSAGE_TOO_LONG,
13
        '30' => NetgsmErrors::CREDENTIALS_INCORRECT,
14
        '40' => NetgsmErrors::SENDER_INCORRECT,
15
        '70' => NetgsmErrors::PARAMETERS_INCORRECT,
16
    ];
17
18
    protected $fields = [
19
        'gsmno',
20
        'message',
21
        'msgheader',
22
        'startdate',
23
        'stopdate',
24
        'dil',
25
        'izin',
26
    ];
27
28
    /**
29
     * @return string
30
     */
31
    protected function createXmlPost(): string
32
    {
33
        $xml = '<?xml version="1.0" encoding="UTF-8"?>';
34
        $xml .= '<mainbody>';
35
        $xml .= '<header>';
36
        $xml .= '<company dil="'.$this->defaults['language'].'">Netgsm</company>';
37
        $xml .= '<usercode>'.$this->credentials['user_code'].'</usercode>';
38
        $xml .= '<password>'.$this->credentials['secret'].'</password>';
39
        $xml .= '<type>1:n</type>';
40
        $xml .= '<filtre>'.(int) $this->isAuthorizedData().'</filtre>';
41
        $xml .= '<msgheader>'.$this->getHeader().'</msgheader>';
42
        $xml .= '</header>';
43
        $xml .= '<body>';
44
        $xml .= '<msg>';
45
        $xml .= '<![CDATA['.$this->message.']]>';
46
        $xml .= '</msg>';
47
        foreach ($this->recipients as $recipient) {
48
            $xml .= '<no>'.$recipient.'</no>';
49
        }
50
        $xml .= '</body>';
51
        $xml .= '</mainbody>';
52
53
        return $xml;
54
    }
55
56
    protected function mappers(): array
57
    {
58
        return [
59
            'gsmno'     => implode(',', $this->recipients),
60
            'msgheader' => $this->header ?? $this->defaults['header'],
61
            'message'   => $this->message,
62
            'startdate' => ! empty($this->startDate) ? $this->startDate->format('dmYHi') : null,
63
            'stopdate'  => ! empty($this->endDate) ? $this->endDate->format('dmYHi') : null,
64
            'izin'      => (int) $this->isAuthorizedData(),
65
        ];
66
    }
67
}
68