surender/purespectrum-sdk

Laravel package to integrate with PureSpectrum API.

Maintainers

Package info

github.com/surenderrawat1/purespectrum-sdk

pkg:composer/surender/purespectrum-sdk

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2025-09-16 09:11 UTC

This package is auto-updated.

Last update: 2026-02-16 10:02:03 UTC


README

This package provides an easy integration with PureSpectrum API.
It uses an clean architecture.

Installation

composer require surender/purespectrum-sdk

Publish config:

php artisan vendor:publish --provider="Surender\PureSpectrum\PureSpectrumServiceProvider"

Usage

Make Payload:

use Surender\PureSpectrum\Builders\SurveyBuilder;
use Surender\PureSpectrum\Builders\Qualification;
use Surender\PureSpectrum\Builders\Quota;
use Surender\PureSpectrum\Facades\PureSpectrum;

$survey = SurveyBuilder::make()
    ->meta([
        'survey_title' => 'Demo Survey',
        'survey_category_code' => 231,
        'survey_localization' => 'en_US',
        'completes_required' => 1000,
        'expected_ir' => 60,
        'expected_loi' => 10,
        'offer_price' => 4.5,
        'live_url' => 'https://example.com/live',
        'test_url' => 'https://example.com/test',
        'field_time' => 10,
        'billing_id' => 'PS_123456'
    ])
    ->addQualification(Qualification::make(211)->conditions(['111', '112'])) // gender M+F
    ->addQualification(Qualification::make(212)->range(21, 59, 311)) // age

    // nested quota example
    ->addQuota(
        Quota::make('female_21_30_income_50_100', 200)
            ->addCriteria(Qualification::make(211)->conditions(['112']))
            ->addCriteria(Qualification::make(212)->range(21, 30, 311))
            ->addCriteria(Qualification::make(213)->range(50000, 100000, 321))
    );

$payload = $survey->build();

use payload with the Facade:

use YourVendor\PureSpectrum\Facades\PureSpectrum;

$response = PureSpectrum::post('surveys', $payload);

use payload direct in controller:

use Surender\PureSpectrum\Contracts\PureSpectrumClientInterface;

class SurveyController {
    public function create(PureSpectrumClientInterface $client) {
        $payload = [...]; // build your survey payload
        $response = $client->post('surveys', $payload);
        return response()->json($response);
    }
}

Features

  • Interface-driven binding
  • Easily mockable for tests
  • Laravel standard package structure