Skip to content

Commit

Permalink
Fix conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
arif98741 committed Feb 6, 2023
2 parents 03ef326 + dfa3d55 commit d5bfbad
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/Config/sms.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
use Xenon\LaravelBDSms\Provider\Sms4BD;
use Xenon\LaravelBDSms\Provider\SmsNet24;
use Xenon\LaravelBDSms\Provider\SmsinBD;
use Xenon\LaravelBDSms\Provider\SMSNoc;
use Xenon\LaravelBDSms\Provider\Ssl;
use Xenon\LaravelBDSms\Provider\Tense;
use Xenon\LaravelBDSms\Provider\TwentyFourSmsBD;
Expand Down Expand Up @@ -185,6 +186,11 @@
'user_password' => env('SMS_SMSNET24_USER_PASSWORD', ''),
'route_id' => env('SMS_SMSNET24_ROUTE_ID', ''),
'sms_type_id' => env('SMS_SMSNET24_SMS_TYPE_ID', ''),

SMSNoc::class => [
'sender_id' => env('SMSNOC_SENDER_ID', ''),
'bearer_token' => env('SMSNOC_BEARER_TOKEN', ''),

],
SmsinBD::class => [
'api_token' => env('SMSINBD_API_TOKEN', ''),
Expand Down
88 changes: 88 additions & 0 deletions src/Provider/SMSNoc.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?php

namespace Xenon\LaravelBDSms\Provider;

use Xenon\LaravelBDSms\Handler\RenderException;
use Xenon\LaravelBDSms\Request;
use Xenon\LaravelBDSms\Sender;

class SMSNoc extends AbstractProvider
{
/**
* Infobip Constructor
* @param Sender $sender
* @version v1.0.32
* @since v1.0.31
*/
public function __construct(Sender $sender)
{
$this->senderObject = $sender;
}

/**
* @param $config
* @return string[]
* @version v1.0.32
* @since v1.0.31
*/
private function getHeaders($config): array
{
return [
'Authorization' => 'Bearer ' . $config['bearer_token'],
'Content-Type' => 'application/json',
];
}

/**
* @return false|string
* @throws RenderException
* @version v1.0.32
* @since v1.0.31
*/
public function sendRequest()
{
$config = $this->senderObject->getConfig();
$queue = $this->senderObject->getQueue();
$text = $this->senderObject->getMessage();
$number = $this->senderObject->getMobile();

$query = [
'recipient' => '+88'.$number,
'message' => $text,
'type' => "plain",
'sender_id' => $config['sender_id'],
];

$requestObject = new Request('https://app.smsnoc.com/api/v3/sms/send', $query, $queue);
$requestObject->setHeaders($this->getHeaders($config))->setContentTypeJson(true);

$response = $requestObject->post();
if ($queue) {
return true;
}

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

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

/**
* @throws RenderException
* @version v1.0.32
* @since v1.0.31
*/
public function errorException()
{
$config = $this->senderObject->getConfig();

if (!array_key_exists('sender_id', $config)) {
throw new RenderException('sender_id key is absent in configuration');
}
if (!array_key_exists('bearer_token', $config)) {
throw new RenderException('bearer_token key is absent in configuration');
}
}
}

0 comments on commit d5bfbad

Please sign in to comment.