romeritocl / cachet-api-client
Cachet Api client
Requires
- php: >=7.2
- guzzlehttp/guzzle: ~6.0
- jms/serializer: ^3
Requires (Dev)
- phpunit/phpunit: ^8.3
This package is auto-updated.
Last update: 2024-11-19 22:40:19 UTC
README
✋ What is it?
Simple API client for CachetHQ. A PHP Based Api client that will help you organize calls and support objects and models for all Cachet API endpoints. Cachet is an open source status page system written in PHP. https://github.com/CachetHQ/Cachet.
💾 Installation
Install the library by:
- Downloading it from here
https://github.com/romeritoCL/cachet-api-client/releases/latest
- Using Composer:
composer require romeritocl/cachet-api-client
Finally, be sure to include the autoloader:
require_once '/path/to/your-project/vendor/autoload.php';
Once the library is ready and inside the project the stub objects will available and the Client class will also available.
Usage
Setup
use DevoraliveCachet\Client; $endpoint = 'https://demo.cachethq.io/api/v1/'; $token = '9yMHsdioQosnyVK4iCVR'; $client = new Client($endpoint, $token);
StandAlone Errors
Doctrine annotation error:
PHP Fatal error: Uncaught exception 'Doctrine\Common\Annotations\AnnotationException' with message '[Semantical Error] The annotation "@JMS\Serializer\Annotation\Type" in property (...) does not exist, or could not be auto-loaded.'
Can fix it registering the JMS namespace, locate your bootstrap.php file and add this line at the end:
Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists');
Components
Get components
$components = $client->getComponents(); foreach ($components as $component) { echo $component->getName(); }
Sorting
$components = $client->getComponents([ 'sort' => 'id', 'order' => 'desc' ]);
Get by id
$component = $client->getComponent(3);
Create new component
$component = new Component(); $component->setName('My new component'); $component->setDescription('Component description'); $component->setLink('https://github.com/mangati/cachet'); $component->setStatus(Component::STATUS_OPERATIONAL); $client->addComponent($component);
Update an existing component
$component = new Component(); $component->setId(3); $component->setName('My new component (updated)'); $client->updateComponent($component);
Delete an existing component
$id = 3; $client->deleteComponent($id);
Incidents
Get incidents
$incidents = $client->getIncidents(); foreach ($incidents as $incident) { echo $incident->getName(); }
Sorting
$incidents = $client->getIncidents([ 'sort' => 'id', 'order' => 'desc' ]);
Get by id
$incident = $client->getIncident(3);
Create new incident
$incident = new Incident(); $incident->setName('My new incident'); $incident->setMessage('incident message'); $incident->setStatus(Incident::STATUS_WATCHING); $client->addIncident($incident);
Update an existing incident
$incident = new Incident(); $incident->setId(3); $incident->setStatus(Incident::STATUS_FIXED); $client->updateIncident($incident);
Delete an existing incident
$id = 3; $client->deleteIncident($id);