Giter VIP home page Giter VIP logo

laravel-autotask-client's Introduction

Bringing the Autotask Client to Laravel

This package bridges the Autotask client to Laravel by injecting it into the application container.

To Install

Run composer require anteris-dev/laravel-autotask-client.

To publish the configuration file, use the command php artisan vendor:publish --provider 'Anteris\Autotask\Laravel\ServiceProvider'. Now you can enter your Autotask API information in the configuration file found at config/autotask.php or preferablly, in your .env file using the keys below.

AUTOTASK_USERNAME=username
AUTOTASK_SECRET=secret
AUTOTASK_INTEGRATION_CODE=integration-code
AUTOTASK_ZONE_URL=https://example.com

To register the facade so you may use the client like this: Autotask::tickets()->findById(0) add the following line to the 'aliases' key in the Laravel file config/app.php.

'Autotask' => Anteris\Autotask\Laravel\Facade::class,

Getting Started

You can inject the Autotask client like any other class. Laravel will automatically create the client and setup your credentials whenever you need it. An example is listed below.

use Anteris\Autotask\Client as AutotaskClient;

Route::get('/', function (AutotaskClient $autotask) {

    $ticket = $autotask->tickets()->findById(0);

});

You can also setup the facade (see above) for even easier access to the client. See the example below.

Route::get('/', function () {

    Autotask::tickets()->findById(0);

});

For more information about the client, check out the documentation over here.

WIP Section

We are currently working on a model that can be extended and interacted with like other Laravel models (relationships loaded, etc.). These models support caching the responses so requests are not constantly being made against the Autotask server. You can specify the number of seconds a response should be cached by setting the $cache_time variable on your model. By default this is set to 24 hours, settings this to 0 disables the cache.

  • Note: These are not compatible with Eloquent models / relationships.

To Install

Run composer require anteris-dev/laravel-autotask-client:dev-master.

Getting Started

Create a new model by extending the Autotask model.

use Anteris\Autotask\Laravel\Models\AutotaskModel;

class Ticket extends AutotaskModel
{
    protected string $endpoint = 'Tickets'; // Must be the plural form of the endpoint
    protected int $cache_time  = 86400;     // 24 hours in seconds
}

// Supported actions:
Ticket::count(); // Used like the count in the query builder
Ticket::find();  // Array of IDs or an ID
Ticket::get(); // Used like the get in the query builder
Ticket::loop(); // Used like the loop in the query builder
Ticket::where(); // Used like the where in the query builder
Ticket::orWhere(); // Used like the orWhere in the query builder

Defining Relationships

Current belongsTo() and hasMany() relationships amongst other Autotask models is supported. These are defined as shown below.

use Anteris\Autotask\Laravel\Models\AutotaskModel;

class Contact extends AutotaskModel
{
    protected string $endpoint = 'Contacts'; // Must be the plural form of the endpoint
    protected int $cache_time  = 86400;      // 24 hours in seconds

    public function company()
    {
        return $this->belongsTo(Company::class);
    }

    public function tickets()
    {
        return $this->hasMany(Ticket::class);
    }
}

// Relationships can be referenced like normal Laravel models:
$contact = Contact::find(1);

echo $contact->company->companyName;

laravel-autotask-client's People

Contributors

aidan-casey avatar rvzug avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.