petersons/d2l-client

Client implementation for connecting to Brightspace/D2L APIs.

v0.12.0 2024-03-24 21:45 UTC

This package is auto-updated.

Last update: 2024-10-24 23:04:58 UTC


README

Build Status codecov

Status

This package is currently in active development.

Installation

  1. Require the package using Composer:
composer require petersons/d2l-client

Features

  • Provides a PHP HTTP client to communicate with D2L APIs
  • Provides integration with Laravel

Requirements

Usage example

use Petersons\D2L\AuthenticatedUriFactory;
use Petersons\D2L\DTO\Enrollment\CreateEnrollment;
use Petersons\D2L\SymfonyHttpClient;
use Symfony\Component\HttpClient\HttpClient;
use Symfony\Component\HttpClient\ScopingHttpClient;

$client = new SymfonyHttpClient(
            ScopingHttpClient::forBaseUri(
                HttpClient::create(),
                'https://petersonstest.brightspace.com',
            ),
            new AuthenticatedUriFactory(
                'https://petersonstest.brightspace.com',
                'appId',
                'appKey',
                'lmsUserId',
                'lmsUserKey',
            ),
            'orgId',
            'installationCode',
            'pKey',
            'apiLpVersion', // e.g. 1.30
            'apiLeVersion', // e.g. 1.53
        );

$client->enrollUser(new CreateEnrollment(1, 2, 3));

Laravel integration

You may publish the configuration file using the vendor:publish Artisan command:

php artisan vendor:publish --tag=d2l-config

After setting up all the needed config env variables you can typehint the \Petersons\D2L\Contracts\ClientInterface interface via the constructor of your service and start using it.

Local development

Docker dependencies for local development:

  1. Clone project

    git clone git@github.com:petersons/d2l-client.git
  2. Build the Docker image

    dev/bin/docker-compose build --build-arg PHP_VERSION=8.2 php
  3. Install library dependencies

    dev/bin/php composer update
  4. Running all tests with Xdebug debugging disabled

    dev/bin/php-test vendor/bin/phpunit
  5. Running all tests with Xdebug debugging enabled

    dev/bin/php-debug vendor/bin/phpunit
  6. Running linter

    dev/bin/php-test vendor/bin/php-cs-fixer fix
  7. Clear Docker volumes

    dev/bin/docker-compose down --volumes