dilumsadeepa/dev-sms-gateway-laravel-package

Laravel package for Puppy SMS Gateway (auth, environments, API keys, SMS send/status)

Maintainers

Package info

github.com/dilumsadeepa/DEV-SMS-Gateway-Laravel-package

pkg:composer/dilumsadeepa/dev-sms-gateway-laravel-package

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-02-23 04:32 UTC

This package is auto-updated.

Last update: 2026-02-23 04:41:04 UTC


README

Laravel package for integrating with puppy-sms-gateway-server.

It supports:

  • user register/login
  • environment creation
  • environment API key management
  • SMS send via environment API key
  • status polling and account logs

Requirements

  • PHP 8.1+
  • Laravel 9/10/11/12
  • guzzlehttp/guzzle (installed automatically)

Install

Option 1: Packagist (after publish)

composer require dilumsadeepa/dev-sms-gateway-laravel-package

Option 2: GitHub VCS (before Packagist)

composer config repositories.dev-sms-gateway vcs https://github.com/dilumsadeepa/DEV-SMS-Gateway-Laravel-package.git
composer require dilumsadeepa/dev-sms-gateway-laravel-package:dev-main

Publish Config

php artisan vendor:publish --tag=puppy-sms-gateway-config

Configuration

Set values in your Laravel .env:

PUPPY_SMS_GATEWAY_BASE_URL=http://127.0.0.1:8090

# Environment API key (used for send/status)
PUPPY_SMS_GATEWAY_API_KEY=

# Auth token (used for account endpoints: /api/auth/me, /api/environments, /api/account/logs)
PUPPY_SMS_GATEWAY_AUTH_TOKEN=

# Optional default pin. Not required when using environment API key.
PUPPY_SMS_GATEWAY_PIN=

PUPPY_SMS_GATEWAY_TIMEOUT=20
PUPPY_SMS_GATEWAY_SEND_ENDPOINT=/api/send-sms
PUPPY_SMS_GATEWAY_HEALTH_ENDPOINT=/health
PUPPY_SMS_GATEWAY_STATUS_ENDPOINT=/api/status
PUPPY_SMS_GATEWAY_LOGS_ENDPOINT=/api/account/logs
PUPPY_SMS_GATEWAY_REGISTER_ENDPOINT=/api/auth/register
PUPPY_SMS_GATEWAY_LOGIN_ENDPOINT=/api/auth/login
PUPPY_SMS_GATEWAY_ME_ENDPOINT=/api/auth/me
PUPPY_SMS_GATEWAY_LOGOUT_ENDPOINT=/api/auth/logout
PUPPY_SMS_GATEWAY_ENVIRONMENTS_ENDPOINT=/api/environments

Quick Start (Full Flow)

use Puppy\SmsGateway\Laravel\Facades\PuppySmsGateway;

// 1) Register (creates account only)
PuppySmsGateway::register('Alice', 'alice@example.com', 'StrongPass123');

// 2) Login
$login = PuppySmsGateway::login('alice@example.com', 'StrongPass123');
$token = $login['token'];
PuppySmsGateway::setAuthToken($token);

// 3) Create environment (returns default environment API key)
$environment = PuppySmsGateway::createEnvironment(
    name: 'Production',
    pin: '1234',
    description: 'Main Android device',
    metadata: ['region' => 'us']
);

$apiKey = $environment['apiKey'];
PuppySmsGateway::setApiKey($apiKey);

// 4) Send SMS with environment API key
$send = PuppySmsGateway::send('+14075551234', 'Hello from Laravel package');

// 5) Poll status (uses API key by default)
$status = PuppySmsGateway::status($send['requestId']);

Common Operations

use Puppy\SmsGateway\Laravel\Facades\PuppySmsGateway;

$health = PuppySmsGateway::health();
$me = PuppySmsGateway::me();
$environments = PuppySmsGateway::environments();
$apiKeys = PuppySmsGateway::listApiKeys('<environment-id>');
$newKey = PuppySmsGateway::createApiKey('<environment-id>', 'backend-service');
$revoke = PuppySmsGateway::revokeApiKey('<environment-id>', '<key-id>');
$logs = PuppySmsGateway::logs(); // requires auth token

Notes

  • send() requires an environment API key.
  • status() accepts either API key or auth token.
  • logs() uses account endpoint and requires auth token.
  • If SMS device acknowledgement times out, send() returns a pending-style response from the server.

License

MIT