kylewlawrence/infinity-laravel

Laravel wrapper for kylewlawrence/infinity-api-client-php package

v1.0.241 2023-04-02 19:33 UTC

README

This package provides integration with the Infinity API. It supports creating boards, retrieving and updating items, deleting references, etc.

The package simply provides a Infinity facade that acts as a wrapper to the kylewlawrence/infinity-api-client-php package.

NB: Currently only supports bearer token-based authentication.

Installation

You can install this package via Composer using:

composer require kylewlawrence/infinity-api-client-php

If you want to make use of the facade you must install it as well.

// config/app.php
'aliases' => [
    ..
    'Infinity' => KyleWLawrence\Infinity\Facades\Infinity::class,
];

Configuration

To publish the config file to app/config/infinity-laravel.php run:

php artisan vendor:publish --provider="KyleWLawrence\Infinity\Providers\InfinityServiceProvider"

Set your configuration using environment variables, either in your .env file or on your server's control panel:

  • INF_TOKEN

The API access token. You can create one at: https://app.startinfinity.com/profile/developer/tokens

This package does not yet support OAuth.

  • INF_DRIVER (Optional)

Set this to null or log to prevent calling the Infinity API directly from your environment.

Contributing

If you have any questions/problems/request with the SDK (the InfinityService class), please go to the Infinity PHP SDK repository with those requests. Pull Requests for the Laravel wrapper are always welcome here. I'll catch-up and develop the contribution guidelines soon. For the meantime, just open and issue or create a pull request.

Usage

Facade

The Infinity facade acts as a wrapper for an instance of the Infinity\Api\HttpClient class. Any methods available on this class (documentation here) are available through the facade. for example:

// Get all Servers
Infinity::boards()->getAll();

// Create a new board
$newBoard = Infinity::boards()->create([
    'name' => 'Blah Blah',                          
    'description' => 'Bler bleman blope',                     
    'user_ids' => [1234, 1235, 12346],      
]);
print_r($newBoard);

// Delete an item
Infinity::boards('PWefUeHA8Pd')->items('8b9fee67-600c-499f-ab19-04bd9092be4e')->delete();

Dependency injection

If you'd prefer not to use the facade, you can skip adding the alias to config/app.php and instead inject KyleWLawrence\Infinity\Services\InfinityService into your class. You can then use all of the same methods on this object as you would on the facade.

<?php

use KyleWLawrence\Infinity\Services\InfinityService;

class MyClass {

    public function __construct(InfinityService $infinity_service) {
        $this->infinity_service = $infinity_service;
    }

    public function getBoards() {
        $this->infinity_service->boards()->getAll();
    }

}

This package is available under the MIT license.