Sms   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 117
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 7
c 4
b 0
f 0
lcom 1
cbo 1
dl 0
loc 117
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A obterVersao() 0 4 1
A recursos() 0 4 1
A creditos() 0 4 1
A __construct() 0 5 1
A enviarSMS() 0 10 1
A enviarListaSMS() 0 9 1
A agendarEnvio() 0 16 1
1
<?php
2
3
namespace ByJG\WebService;
4
5
/**
6
 * Classe para envio de SMS utilizaçao o WebService ByJG
7
 * 2009-01-19
8
 * 2014-10-17
9
 *
10
 * Joao Gilberto Magalhaes
11
 * http://www.byjg.com.br/
12
 */
13
class Sms extends BaseService
14
{
15
16
    /**
17
     *
18
     * @param string $username
19
     * @param string $password
20
     */
21
    public function __construct($username, $password, $curlParams = [CURLOPT_TIMEOUT => 5])
22
    {
23
        parent::__construct($username, $password, $curlParams);
24
        $this->_service = "sms";
25
    }
26
27
    /**
28
     * Obter a versão do WebService
29
     *
30
     * @return string
31
     */
32
    public function obterVersao()
33
    {
34
        return $this->conectarServer("obterversao", array());
35
    }
36
37
    /**
38
     * Enviar um SMS
39
     *
40
     * @param string $ddd
41
     * @param string $celular
42
     * @param string $mensagem
43
     * @return string
44
     */
45
    public function enviarSMS($ddd, $celular, $mensagem)
46
    {
47
        $params = array(
48
            "ddd"      => $ddd,
49
            "celular"  => $celular,
50
            "mensagem" => utf8_encode($mensagem)
51
        );
52
53
        return $this->conectarServer("enviarsms", $params);
54
    }
55
    //
56
57
    /**
58
     * Envia SMS para um lista.
59
     * Os números da lista deve ter o seguinte formato: DDPPPPNNNN Onde DD é o DDD, PPPPNNNN é o número do celular.
60
     *
61
     * @param array $lista
62
     * @param strign $mensagem
63
     * @return string
64
     */
65
    public function enviarListaSMS($lista, $mensagem)
66
    {
67
        $params = array(
68
            "lista"    => implode('|', $lista),
69
            "mensagem" => $mensagem
70
        );
71
72
        return $this->conectarServer("enviarListaSMS", $params);
73
    }
74
75
    /**
76
     * Agenda o envio de SMS.
77
     * Data no formato YYYY/MM/DD.
78
     * Hora no formato HH:MM.
79
     * Periodo: Unidade de Repeticao (H - Horas, D - Dias).
80
     * Frequencia: O intervalo em 'periodos' entre as repetições.
81
     * Repeticoes: número de vezes a repetir o envio. Deixar vazio periodo, frequencia e repeticoes caso não queira repeticoes.
82
     *
83
     * @param string $ddd
84
     * @param string $celular
85
     * @param string $mensagem
86
     * @param string $data
87
     * @param string $hora
88
     * @param string $periodo
89
     * @param int $frequencia
90
     * @param int $repeticoes
91
     * @return string
92
     */
93
    public function agendarEnvio($ddd, $celular, $mensagem, $data, $hora, $periodo = "", $frequencia = "",
94
        $repeticoes = "")
95
    {
96
        $params = array(
97
            "ddd"        => $ddd,
98
            "celular"    => $celular,
99
            "mensagem"   => utf8_encode($mensagem),
100
            "data"       => $data,
101
            "hora"       => $hora,
102
            "periodo"    => $periodo,
103
            "frequencia" => $frequencia,
104
            "repeticoes" => $repeticoes
105
        );
106
107
        return $this->conectarServer("agendarEnvio", $params);
108
    }
109
110
    /**
111
     * Obter os recursos disponíveis para envio de SMS
112
     *
113
     * @return string
114
     */
115
    public function recursos()
116
    {
117
        return $this->conectarServer("recursos", array());
118
    }
119
120
    /**
121
     * Obter a quantidade de créditos disponíveis para envio de SMS
122
     *
123
     * @return string
124
     */
125
    public function creditos()
126
    {
127
        return $this->conectarServer("creditos", array());
128
    }
129
}
130