Passed
Push — master ( ac4415...6c0960 )
by Zing
04:55
created

YunpianGateway::send()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 14
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

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