Code Duplication    Length = 58-59 lines in 2 locations

src/CableTv.php 1 location

@@ 18-76 (lines=59) @@
15
use HenryEjemuta\LaravelClubKonnect\Enums\CableTvEnum;
16
use HenryEjemuta\LaravelClubKonnect\Exceptions\ClubKonnectErrorException;
17
18
abstract class CableTv
19
{
20
    private $config;
21
    private $clubKonnect;
22
23
    public function __construct(ClubKonnect $clubKonnect, $config)
24
    {
25
        $this->config = $config;
26
        $this->clubKonnect = $clubKonnect;
27
    }
28
29
    /**
30
     * @return ClubKonnectResponse
31
     */
32
    public function getTvPackages(): ClubKonnectResponse
33
    {
34
        return $this->clubKonnect->withAuth('APICableTVPackagesV2.asp', []);
35
    }
36
37
    /**
38
     * @param CableTvEnum $cableTv
39
     * @param $smartCardNo
40
     * @return ClubKonnectResponse
41
     */
42
    public function verifyCustomerID(CableTvEnum $cableTv, $smartCardNo): ClubKonnectResponse
43
    {
44
        return $this->clubKonnect->withAuth('APIVerifyCableTVV1.0.asp', [
45
            'CableTV' => $cableTv->getCode(),
46
            'SmartCardNo' => $smartCardNo,
47
        ]);
48
    }
49
50
    /**
51
     * @param CableTvEnum $cableTv
52
     * @param string $package
53
     * @param $smartCardNo
54
     * @param $requestID
55
     * @param $callbackUrl
56
     * @return ClubKonnectResponse
57
     */
58
    public function purchasePackage(CableTvEnum $cableTv, string $package, $smartCardNo, $requestID, $callbackUrl = null): ClubKonnectResponse
59
    {
60
        $callbackUrl = is_null($callbackUrl) ? $this->config['default_redirect_url'] : $callbackUrl;
61
        return $this->clubKonnect->withAuth('APICableTVV1.asp', [
62
            'CableTV' => $cableTv->getCode(),
63
            'MeterType' => $package,
64
            'SmartCardNo' => $smartCardNo,
65
            'RequestID' => $requestID,
66
            'CallBackURL' => $callbackUrl
67
        ]);
68
    }
69
70
71
72
73
}
74

src/Electricity.php 1 location

@@ 18-75 (lines=58) @@
15
use HenryEjemuta\LaravelClubKonnect\Enums\DiscoEnum;
16
use HenryEjemuta\LaravelClubKonnect\Enums\MeterTypeEnum;
17
18
abstract class Electricity
19
{
20
    private $config;
21
    private $clubKonnect;
22
23
    public function __construct(ClubKonnect $clubKonnect, $config)
24
    {
25
        $this->config = $config;
26
        $this->clubKonnect = $clubKonnect;
27
    }
28
29
    /**
30
     * @return ClubKonnectResponse
31
     */
32
    public function getDiscosAndMinMax(): ClubKonnectResponse
33
    {
34
        return $this->clubKonnect->withAuth('APIElectricityDiscosV1.asp', []);
35
    }
36
37
    /**
38
     * @param DiscoEnum $disco
39
     * @param $meterNumber
40
     * @return ClubKonnectResponse
41
     */
42
    public function verifyMeterNumber(DiscoEnum $disco, $meterNumber): ClubKonnectResponse
43
    {
44
        return $this->clubKonnect->withAuth('APIVerifyElectricityV1.asp', [
45
            'ElectricCompany' => $disco->getCode(),
46
            'MeterNo' => $meterNumber,
47
        ]);
48
    }
49
50
    /**
51
     * @param DiscoEnum $disco
52
     * @param $meterNumber
53
     * @param $amount
54
     * @param MeterTypeEnum $meterType
55
     * @param $requestID
56
     * @param $callbackUrl
57
     * @return ClubKonnectResponse
58
     */
59
    public function buyElectricity(DiscoEnum $disco, $meterNumber, $amount, MeterTypeEnum $meterType, $requestID, $callbackUrl = null): ClubKonnectResponse
60
    {
61
        $callbackUrl = is_null($callbackUrl) ? $this->config['default_redirect_url'] : $callbackUrl;
62
        return $this->clubKonnect->withAuth('APIElectricityV1.asp', [
63
            'ElectricCompany' => $disco->getCode(),
64
            'MeterNo' => $meterNumber,
65
            'Amount' => $amount,
66
            'MeterType' => $meterType->getCode(),
67
            'RequestID' => $requestID,
68
            'CallBackURL' => $callbackUrl
69
        ]);
70
    }
71
72
}
73