Skip to content

Commit

Permalink
Merge pull request #72 from arif98741/dev
Browse files Browse the repository at this point in the history
Durjoysoft Gateway Added
  • Loading branch information
arif98741 authored May 14, 2024
2 parents 0866786 + c19a3e7 commit de32353
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/Config/sms.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
use Xenon\LaravelBDSms\Provider\DianaHost;
use Xenon\LaravelBDSms\Provider\DianaSms;
use Xenon\LaravelBDSms\Provider\DnsBd;
use Xenon\LaravelBDSms\Provider\DurjoySoft;
use Xenon\LaravelBDSms\Provider\ElitBuzz;
use Xenon\LaravelBDSms\Provider\Esms;
use Xenon\LaravelBDSms\Provider\Grameenphone;
Expand Down Expand Up @@ -133,6 +134,10 @@
'ClientId' => env('SMS_DIANA_SMS_CLIENT_ID', ''),
],
DnsBd::class => [],
DurjoySoft::class => [
'ApiKey' => env('SMS_DURJOYSOFT_SMS_API_KEY', ''),
'SenderID' => env('SMS_DURJOYSOFT_SMS_SENDER_ID', ''),
],
ElitBuzz::class => [
'url' => env('SMS_ELITBUZZ_URL', ''),
'senderid' => env('SMS_ELITBUZZ_SENDER_ID', ''),
Expand Down
84 changes: 84 additions & 0 deletions src/Provider/DurjoySoft.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?php
/*
* Last Modified: 6/16/22, 12:56 AM
* Copyright (c) 2022
* -created by Ariful Islam
* -All Rights Preserved By
* -If you have any query then knock me at
* arif98741@gmail.com
* See my profile @ https://github.com/arif98741
*/

namespace Xenon\LaravelBDSms\Provider;

use GuzzleHttp\Exception\GuzzleException;
use Xenon\LaravelBDSms\Handler\ParameterException;
use Xenon\LaravelBDSms\Handler\RenderException;
use Xenon\LaravelBDSms\Request;
use Xenon\LaravelBDSms\Sender;

class DurjoySoft extends AbstractProvider
{
private string $apiEndpoint = 'https://smsp.durjoysoft.com/api/sms';

/**
* DurjoySoft constructor.
* @param Sender $sender
*/
public function __construct(Sender $sender)
{
$this->senderObject = $sender;
}

/**
* Send Request To Api and Send Message
* @return bool|string
* @throws GuzzleException
* @throws RenderException
*/
public function sendRequest()
{
$text = $this->senderObject->getMessage();
$number = $this->senderObject->getMobile();
$config = $this->senderObject->getConfig();
$queue = $this->senderObject->getQueue();
$queueName = $this->senderObject->getQueueName();
$tries=$this->senderObject->getTries();
$backoff=$this->senderObject->getBackoff();

$query = [
'ApiKey' => $config['ApiKey'],
'SenderID' => $config['SenderID'],
'number' => $number,
'sms' => $text,
'IsUnicode' => 2,
];

$requestObject = new Request($this->apiEndpoint, $query, $queue, [], $queueName,$tries,$backoff);
$response = $requestObject->get();
if ($queue) {
return true;
}

$body = $response->getBody();
$smsResult = $body->getContents();

$data['number'] = $number;
$data['message'] = $text;
return $this->generateReport($smsResult, $data)->getContent();
}

/**
* @throws ParameterException
*/
public function errorException()
{
if (!array_key_exists('ApiKey', $this->senderObject->getConfig())) {
throw new ParameterException('ApiKey is absent in configuration');
}
if (!array_key_exists('SenderID', $this->senderObject->getConfig())) {
throw new ParameterException('SenderID key is absent in configuration');
}
}

}

0 comments on commit de32353

Please sign in to comment.