Skip to content

dompie/keila-php-api

Folders and files

NameName
Last commit message
Last commit date
Mar 19, 2024
Jul 4, 2024
Jun 25, 2024
Mar 19, 2024
Mar 19, 2024
Mar 19, 2024
Jun 20, 2024
Mar 19, 2024
Mar 19, 2024
Mar 19, 2024

Repository files navigation

Keila PHP API

A PHP HTTP client for the Keila newsletter API with Guzzle as single dependency.

Install

composer require dompie/keila-http-api

How to use

require_once 'vendor/autoload.php';

$httpClient = new \GuzzleHttp\Client();
$client = new \Dompie\KeilaApiClient\ApiClientV1($httpClientInterface, 'https://keila-installation.url', 'my-secret-keila-api-key');
$responseInterface = $client->createContact([
    'first_name' => 'First',
    'last_name' => 'Last',
    'email' => '[email protected]',
]);

$campaign = new \Dompie\KeilaApiClient\Campaign();
$campaign->withName('My test campaign')
    ->withTextEditor('Hello world!')
    ->withMarkdownEditor();
    
$responseInterface = $client->createCampaign($campaign);

Then you can pass the Guzzle ResponseInterface to your context.

Response helper

For testing purposes I've added also a KeilaResponse class to quickly access relevant items.

$response = \Dompie\KeilaApiClient\KeilaResponse::new($responseInterface);
$response->hasData();
$response->getDataItem(0); //First element from the data property
$response->getGuzzleResponse()->getStatusCode()

⚠️ Tests will trigger E-Mail sending. Use only with keila dev instance.

cp phpunit.xml.dist phpunit.xml

Put your Keila URI and Keila api key into phpunit.xml:

<env name="KEILA_BASE_URI" value="http://keila.local:4000" force="true"/>
<env name="KEILA_API_KEY" value="secret-api-key" force="true"/>

Finally tests

make test
or
XDEBUG_MODE=coverage make test-coverage