escolalms/pencil-spaces
Escola Headless LMS Pencil Spaces integration
Maintainers
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
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT e8c86769386248cde2e27d31eb09855fc421ec33
- Tomasz Smolarek <tomasz.smolarek.woop@escolasoft.com>
- Maciej Rymarz <maciej.rymarz.woop@escolasoft.com>
README
👁 swagger
👁 codecov
👁 phpunit
👁 downloads
👁 downloads
👁 downloads
👁 Maintainability
👁 phpstan
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-spacesphp 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
The endpoints are defined in 👁 swagger
Tests
Run ./vendor/bin/phpunit to run tests.
Test details 👁 codecov
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.
