Code Monkey home page Code Monkey logo

cachet.php's Issues

Use factories and object classes for all Cachet elements

Factories and object classes should be created for the following Cachet elements and existing code some be re-factored to use them.

  • CachetInstance to hold details of the Cachet instance you are currently using.
  • Component
  • Incident
  • Metric
  • MetricPoint
  • Subscriber

Subscribe on specify component - not working

$subscriberDetails = ['email' => '[email protected]', 'verify' => 1 , 'components' => [5,7]];
$subscriber = $cachetInstance->createSubscriber($subscriberDetails);

echo $subscriber->id.' - '.$subscriber->email;

I run this code, but the new Subscriber isn't being subscribed to the supplied component but is Subscribed to all updates.

Object 'delete' method

The following code should work as you'd expect.

$components = ComponentFactory::getAll($cachetInstance);
$component = $components[0];
$component->delete();

Factory 'create' methods

The factories for all Cachet elements should have a 'create' method that accepts an associative array as a parameter and then performs to appropriate POST request.

Appropriate 'createComponent' style methods should be added to the CachetInstance object that calls these new factory methods.

Reduce need to use multiple factories

On dev branch, currently we retrieve components like this:

$components = ComponentFactory::getAll($cachetInstance);

We should allow this more intuitive syntax:

$components = $cachetInstance->getAllComponents();

Use Guzzle

You're duplicating a lot of code for cURL.

Ordering always goes descending

This might be a regression, not certain.

When running the following two snippets, they return seem to both return the same (descending) results.

// Get components sorted by name ascending
$components = $cachetInstance->getAllComponents('name', 'asc');
// Display components sorted by name ascending
echo "\n";
echo '*** Components (sorted by name ascending) ***';
echo "\n";
foreach ($components as $component) {
    echo $component->id.' - '.$component->name.' - '.$component->description.' - '.$component->status;
    echo "\n";
}
// Get components sorted by name descending
$components = $cachetInstance->getAllComponents('name', 'desc');
// Display components sorted by name descending
echo "\n";
echo '*** Components (sorted by name descending) ***';
echo "\n";
foreach ($components as $component) {
    echo $component->id.' - '.$component->name.' - '.$component->description.' - '.$component->status;
    echo "\n";
}

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Change license to Lesser GPL3

The next version (v0.2) should be released with a more open license.

We'll release v0.2 with the Lesser GPL3, instead of the regular GPL3.

Not able to update 'Incidents' in v0.2

use \DivineOmega\CachetPHP\Factories\CachetInstanceFactory;

$cachetInstance = CachetInstanceFactory::create($host, $token);

$incidents = $cachetInstance->getAllIncidents();
$incident = $incidents[0];
$incident->status = 1;
$incident->save();

Receiving the following error -

PHP Fatal error:  Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `PUT http://status1.test.in/api/v1/incidents/2?name=Downtime%20Incoming%20Calls&message=%23%20Issue%20Observed%0D%0A%0D%0A%23%20Issue%20Fixed%20at%2012%3A15PM&status=1&visible=1&component_id=9` resulted in a `400 Bad Request` response:
{"errors":[{"id":"390e83d4-a2db-440f-b93d-2f0b4bb754cd","status":400,"title":"Bad Request","detail":"The request cannot  (truncated...)
' in /home/test/commonix/extlib/cachet-status-board-php-client/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:107
Stack trace:
#0 /home/test/commonix/extlib/cachet-status-board-php-client/vendor/guzzlehttp/guzzle/src/Middleware.php(65): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response))
#1 /home/test/commonix/extlib/cachet-status-board-php-client/vendor/guzzlehttp/promises/src/Promise.php(201): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#2 /hom in /home/test/commonix/extlib/cachet-status-board-php-client/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 107

What is the fix for this?

Object 'save' method

The following code should work as you'd expect.

$components = $cachetInstance->getAllComponents();
$component = $components[0];
$component->name = 'Jeff The Awesome Component';
$component->save();

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.