Skip to content

Package: pencil-spaces

Generated from api/packages/pencil-spaces

Source: api/packages/pencil-spaces · imported version 0.0.3. The sections after the README are extracted from the code on every docs build.

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
  • composer require ulams/pencil-spaces
  • php artisan migrate

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',
],
]
]
);

Use Ulams\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.

The endpoints are defined in swagger

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.

This package doesn’t listen for any events.

Method Path Auth Action
POST /api/pencil-spaces/login yes PencilSpaceApiController@login
Permission Seeded for roles Constant
pencil-spaces_login admin, student PencilSpacesPermissionEnum::PENCIL_SPACES_LOGIN

Registered with AdministrableConfig::registerConfig (editable in the admin panel under Configuration → Settings).

Key Rules Public Read-only
pencil_spaces.api_url string no
pencil_spaces.api_key string no

None.

None.

None.

PENCIL_SPACES_API_KEY, PENCIL_SPACES_API_URL