PHP code example of treblle / oaas-laravel

1. Go to this page and download the library: Download treblle/oaas-laravel library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

treblle / oaas-laravel example snippets


use Treblle\OaaS\Facades\TreblleOaaS;

// Get all requests for a customer
$requests = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->get();

foreach ($requests as $request) {
    echo "Request: {$request->getMethod()} {$request->getPath()}" . PHP_EOL;
    echo "Status: {$request->getHttpCode()}" . PHP_EOL;
    echo "Load Time: {$request->getLoadTimeMs()}ms" . PHP_EOL;
}

use Treblle\OaaS\Enums\HttpMethod;
use Treblle\OaaS\Enums\Device;
use Treblle\OaaS\Enums\TimePeriod;

$requests = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->whereMethod(HttpMethod::POST)
    ->whereDevice(Device::IOS)
    ->whereTimePeriod(TimePeriod::LAST_24_HOURS)
    ->whereSuccessful() // 2xx status codes
    ->withoutProblems()
    ->sortByLoadTimeSlowest()
    ->limit(10)
    ->get();

// Custom time range filtering (alternative to whereTimePeriod)
$requests = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->whereTimeRange('2025-09-01 00:00:00', '2025-09-30 23:59:59')
    ->get();

// Get all-time requests
$requests = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->allTime()
    ->get();

// Search checkout requests for specific payment methods
$requests = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->withParams('stripe') // Find requests with Stripe payment data
    ->whereMethod(HttpMethod::POST)
    ->get();

// Find user registration attempts with Gmail addresses
$requests = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->withParams('@gmail.com') // Partial match on email domains
    ->get();

// Get paginated results
$page1 = TreblleOaaS::requests('workspace-id', 'api-id')
    ->whereCustomer('customer-123')
    ->paginate(perPage: 20, page: 1);

echo "Total requests: {$page1->total()}" . PHP_EOL;
echo "Current page: {$page1->currentPage()} / {$page1->totalPages()}" . PHP_EOL;

// Check if there are more pages
if ($page1->hasNextPage()) {
    $page2 = TreblleOaaS::requests('workspace-id', 'api-id')
        ->whereCustomer('customer-123')
        ->paginate(perPage: 20, page: 2);
}

$requestDetails = TreblleOaaS::getRequest('workspace-id', 'api-id', 'request-id');

echo "Request URL: {$requestDetails->getRequestUrl()}" . PHP_EOL;
echo "Response Body: " . json_encode($requestDetails->getResponseBody()) . PHP_EOL;
echo "Server Info: " . json_encode($requestDetails->getServerInfo()) . PHP_EOL;

// Check compliance and security
if ($requestDetails->hasProblem()) {
    echo "Request has problems: " . json_encode($requestDetails->getProblem()) . PHP_EOL;
}

$compliance = $requestDetails->getComplianceReport();
echo "Compliance Status: {$compliance['status']}" . PHP_EOL;
echo "Compliance Score: {$compliance['overall_percentage']}%" . PHP_EOL;

foreach ($requests as $request) {
    // Status checks
    if ($request->isSuccessful()) {
        echo "✅ Successful request" . PHP_EOL;
    } elseif ($request->hasClientError()) {
        echo "⚠️ Client error: {$request->getHttpCode()}" . PHP_EOL;
    } elseif ($request->hasServerError()) {
        echo "❌ Server error: {$request->getHttpCode()}" . PHP_EOL;
    }
    
    // Performance checks
    if ($request->isLoadTimeFast()) {
        echo "⚡ Fast response: {$request->getLoadTimeMs()}ms" . PHP_EOL;
    } else {
        echo "🐌 Slow response: {$request->getLoadTimeMs()}ms" . PHP_EOL;
    }
    
    // Customer info
    if ($displayName = $request->getCustomerDisplayName()) {
        echo "Customer: {$displayName}" . PHP_EOL;
    }
    
    // Security info
    echo "Threat Level: {$request->getThreatLevel()}" . PHP_EOL;
    echo "Has Auth: " . ($request->hasAuth() ? 'Yes' : 'No') . PHP_EOL;
}

return [
    // API Configuration
    'api_token' => env('TREBLLE_OAAS_API_TOKEN'),
    'base_url' => env('TREBLLE_OAAS_BASE_URL', 'https://api-forge.treblle.com/api/v1'),
    
    // Request Timeouts
    'timeout' => env('TREBLLE_OAAS_TIMEOUT', 30),
    'connect_timeout' => env('TREBLLE_OAAS_CONNECT_TIMEOUT', 10),
    
    // Pagination Defaults
    'default_limit' => env('TREBLLE_OAAS_DEFAULT_LIMIT', 20),
    'max_limit' => env('TREBLLE_OAAS_MAX_LIMIT', 50),
];

use Treblle\OaaS\Exceptions\OaaSException;

try {
    $requests = TreblleOaaS::requests('workspace-id', 'api-id')
        ->whereCustomer('customer-123')
        ->get();
} catch (OaaSException $e) {
    echo "API Error: {$e->getMessage()}" . PHP_EOL;
    echo "HTTP Status: {$e->getCode()}" . PHP_EOL;
    
    if ($e->hasResponse()) {
        $responseData = $e->getResponseData();
        echo "Response: " . json_encode($responseData) . PHP_EOL;
    }
}
bash
php artisan vendor:publish --tag=treblle-oaas-config