escolalms/pencil-spaces

Escola Headless LMS Pencil Spaces integration

Maintainers

👁 qunabu

Package info

github.com/EscolaLMS/Pencil-Spaces

Type:package

pkg:composer/escolalms/pencil-spaces

Statistics

Installs: 4 833

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.3 2024-02-14 13:33 UTC

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT e8c86769386248cde2e27d31eb09855fc421ec33

  • Tomasz Smolarek <tomasz.smolarek.woop@escolasoft.com>
  • Maciej Rymarz <maciej.rymarz.woop@escolasoft.com>

This package is auto-updated.

Last update: 2026-06-14 18:45:41 UTC


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-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

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.