Code Duplication    Length = 67-68 lines in 2 locations

src/Concrete/KudiSms.php 1 location

@@ 8-74 (lines=67) @@
5
use GuzzleHttp\Exception\ClientException;
6
use GuzzleHttp\Psr7\Request;
7
8
class KudiSms extends Sms
9
{
10
    private $baseUrl = 'https://account.kudisms.net/';
11
12
    /**
13
     * Class Constructor.
14
     * @param null $message
15
     */
16
    public function __construct($message = null)
17
    {
18
        $this->username = config('laravel-sms.kudi_sms.username');
19
        $this->password = config('laravel-sms.kudi_sms.password');
20
        if ($message) {
21
            $this->text($message);
22
        }
23
        $headers = [
24
                'apiKey' => $this->username,
25
                'Content-Type' => 'application/x-www-form-urlencoded',
26
                'Accept' => 'application/json',
27
                'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.39',
28
            ];
29
        $this->client = self::getInstance();
30
        $this->request = new Request('GET', $this->baseUrl.'api/', $headers);
31
    }
32
33
    /**
34
     * @param null $text
35
     * @return bool
36
     */
37
    public function send($text = null): bool
38
    {
39
        if ($text) {
40
            $this->setText($text);
41
        }
42
        try {
43
            $request = $this->client->send($this->request, [
44
                'query' => [
45
                    'username' => $this->username,
46
                    'password' => $this->password,
47
                    'sender' => $this->sender ?? config('laravel-sms.sender'),
48
                    'mobiles' => implode(',', $this->recipients),
49
                    'message' => $this->text,
50
                ],
51
            ]);
52
53
            $response = json_decode($request->getBody()->getContents(), true);
54
55
            if (isset($response['status']) && $response['status'] == 'OK') {
56
                return true;
57
            }
58
59
            $this->response = $response['error'];
60
61
            return false;
62
        } catch (ClientException $e) {
63
            logger()->error('HTTP Exception in '.__CLASS__.': '.__METHOD__.'=>'.$e->getMessage());
64
            $this->httpError = $e;
65
66
            return false;
67
        } catch (\Exception $e) {
68
            logger()->error('SMS Exception in '.__CLASS__.': '.__METHOD__.'=>'.$e->getMessage());
69
            $this->httpError = $e;
70
71
            return false;
72
        }
73
    }
74
}
75

src/Concrete/NigerianBulkSms.php 1 location

@@ 8-75 (lines=68) @@
5
use GuzzleHttp\Exception\ClientException;
6
use GuzzleHttp\Psr7\Request;
7
8
class NigerianBulkSms extends Sms
9
{
10
    private $baseUrl = 'http://portal.nigeriabulksms.com/';
11
12
    /**
13
     * Class Constructor.
14
     * @param null $message
15
     */
16
    public function __construct($message = null)
17
    {
18
        $this->username = config('laravel-sms.nigerian_bulk_sms.username');
19
        $this->password = config('laravel-sms.nigerian_bulk_sms.password');
20
        if ($message) {
21
            $this->text($message);
22
        }
23
        $headers = [
24
                'apiKey' => $this->username,
25
                'Content-Type' => 'application/x-www-form-urlencoded',
26
                'Accept' => 'application/json',
27
                'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.39',
28
            ];
29
30
        $this->client = self::getInstance();
31
        $this->request = new Request('GET', $this->baseUrl.'api', $headers);
32
    }
33
34
    /**
35
     * @param null $text
36
     * @return bool
37
     */
38
    public function send($text = null): bool
39
    {
40
        if ($text) {
41
            $this->setText($text);
42
        }
43
        try {
44
            $request = $this->client->send($this->request, [
45
                'query' => [
46
                    'username' => $this->username,
47
                    'password' => $this->password,
48
                    'sender' => $this->sender ?? config('laravel-sms.sender'),
49
                    'mobiles' => implode(',', $this->recipients),
50
                    'message' => $this->text,
51
                ],
52
            ]);
53
54
            $response = json_decode($request->getBody()->getContents(), true);
55
56
            if (isset($response['status']) && $response['status'] == 'OK') {
57
                return true;
58
            }
59
60
            $this->response = $response['error'];
61
62
            return false;
63
        } catch (ClientException $e) {
64
            logger()->error('HTTP Exception in '.__CLASS__.': '.__METHOD__.'=>'.$e->getMessage());
65
            $this->httpError = $e;
66
67
            return false;
68
        } catch (\Exception $e) {
69
            logger()->error('SMS Exception in '.__CLASS__.': '.__METHOD__.'=>'.$e->getMessage());
70
            $this->httpError = $e;
71
72
            return false;
73
        }
74
    }
75
}
76