Looking to hire Laravel developers? Try LaraJobs

infinity-laravel maintained by kylewlawrence

Description
Laravel wrapper for kylewlawrence/infinity-api-client-php package
Author
Last update
2023/10/30 23:36 (dev-main)
License
Downloads
90
Tags

Comments
comments powered by Disqus

Laravel Infinity

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.