surender / purespectrum-sdk
Laravel package to integrate with PureSpectrum API.
v1.0.1
2025-09-16 09:11 UTC
Requires
- php: >=8.0
- illuminate/support: ^12.0
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