Skip to content

Client implementation for connecting to Brightspace/D2L APIs

Notifications You must be signed in to change notification settings

kmaric69/d2l-client

 
 

Repository files navigation

Petersons D2L API client

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 [email protected]:petersons/d2l-client.git
  2. Build the Docker image

    dev/bin/docker-compose build --build-arg PHP_VERSION=8.1 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

About

Client implementation for connecting to Brightspace/D2L APIs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 99.3%
  • Other 0.7%