Passed
Push — master ( 1828fb...5ac899 )
by Zing
06:56
created

YunpianGateway::getBaseUri()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Zing\LaravelSms\Gateways;
6
7
use Overtrue\EasySms\Contracts\MessageInterface;
8
use Overtrue\EasySms\Contracts\PhoneNumberInterface;
9
use Overtrue\EasySms\Gateways\Gateway;
10
use Overtrue\EasySms\Support\Config;
11
use Overtrue\EasySms\Traits\HasHttpRequest;
12
use Zing\LaravelSms\Exceptions\CouldNotSendNotification;
13
14
class YunpianGateway extends Gateway
15
{
16 1
    use HasHttpRequest;
17
18 1
    public function getBaseUri()
19
    {
20 1
        return 'http://yunpian.com';
21
    }
22
23
    /**
24
     * @param \Overtrue\EasySms\Contracts\PhoneNumberInterface $to
25
     * @param \Overtrue\EasySms\Contracts\MessageInterface $message
26
     * @param \Overtrue\EasySms\Support\Config $config
27
     *
28
     * @throws \Zing\LaravelSms\Exceptions\CouldNotSendNotification
29
     *
30
     * @return array
31
     */
32 3
    public function send(PhoneNumberInterface $to, MessageInterface $message, Config $config)
33
    {
34 3
        $signature = $this->config->get('signature');
35 3
        $content = $message->getContent($this);
36 3
        $result = $this->post(
37 3
            '/v1/sms/send.json',
38
            [
39 3
                'apikey' => $this->config['api_key'],
40 3
                'mobile' => $to->getUniversalNumber(),
41 3
                'text' => strpos($content, '【') === 0 ? $content : $signature . $content,
42
            ]
43
        );
44 3
        if (data_get($result, 'code') === 0) {
45 3
            return $result;
46
        }
47
48 1
        throw new CouldNotSendNotification(data_get($result, 'msg'), data_get($result, 'code'), $result);
49
    }
50
}
51