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

YunpianGateway   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 12
c 0
b 0
f 0
dl 0
loc 23
ccs 12
cts 12
cp 1
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A send() 0 14 3
A getBaseUri() 0 3 1
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