escolalms / pencil-spaces
Escola Headless LMS Pencil Spaces integration
Installs: 2 258
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
Requires
- php: >=8.0
- escolalms/auth: ^0
- escolalms/core: ^1
- escolalms/settings: ^0
- laravel/framework: >=8.0
Requires (Dev)
- nunomaduro/larastan: ^1.0
- orchestra/testbench: >=5.0
- phpunit/phpunit: ^9.0
README
What does it do
This package is used for integration with Pencil Spaces.
Currently available features:
- API user creation
- Space creation
- Generating a link for the logged-in user
Installing
composer require escolalms/pencil-spaces
php artisan migrate
Configuration
You can configure the package by adding values to your .env
file
PENCIL_SPACES_API_KEY=api-key
PENCIL_SPACES_API_URL=https://api-url.com
or using Facade
use Illuminate\Support\Facades\Config;
Config::set('pencil_spaces.api_key', 'api_key');
Config::set('pencil_spaces.api_url', 'https://api-url.com');
or /api/admin/config
endpoint
$this->actingAs($this->user, 'api')->json( 'POST', '/api/admin/config', [ 'config' => [ [ 'key' => 'pencil_spaces.api_key', 'value' => 'api_key', ], [ 'key' => 'pencil_spaces.api_url', 'value' => 'https://api-url.com', ], ] ] );
Example
Use EscolaLms\PencilSpaces\Facades\PencilSpace
Facade for integration.
- Generate a direct login link for an API-managed user =>
PencilSpace::getDirectLoginUrl(int $userId, string $redirectUrl = null)
- Create Space =>
PencilSpace::createSpace(CreatePencilSpaceResource $createSpaceResource)
An account in Pencil Space will be created for users who don't have one. The table pencil_space_accounts
will store the userId
and email
returned from Pencil Space.
Endpoints
Tests
Run ./vendor/bin/phpunit
to run tests.
Test details
You can use PencilSpace::fake()
in your tests. Requests to the API will be mocked, and you will be able to test your feature.
Listeners
This package doesn't listen for any events.