ludicat/mtg-finder-sdk

dev-main 2024-04-19 13:29 UTC

This package is auto-updated.

Last update: 2024-09-19 14:33:43 UTC


README

这是一个用于MTG Finder API的PHP SDK。它提供了一种简单的方式与API交互。

安装

您可以通过composer安装此包。

composer require ludicat/mtg-finder-sdk

用法

MTG Finder网站 的账户设置中创建一个API密钥。您可以在 MTG Finder API文档 中找到详细的文档。

您必须实例化一个客户端。它将通过任何API端点传递。

use Ludicat\MTGFinder\Client;

$client = new Client('YOUR_API_KEY');

端点

格式

您必须在事件上设置格式。为了做到这一点,您将需要使用它们的ID。您可以通过在 Formats 端点上使用 get 方法来获取完整的ID列表(及其名称)。

use Ludicat\MTGFinder\Api\Formats;

$formatsApi = new Formats($client);
/** @var array<Ludicat\MTGFinder\Model\Format> $availableFormats */
$availableFormats = $formatsApi->get();

Geoname

MTG Finder使用Geoname API来获取国家列表。您可以通过ID或通过在 Geoname 端点上搜索城市名称、邮政编码或GPS坐标来获取。

use Ludicat\MTGFinder\Api\Geoname;

$geonameApi = new Geoname($client);
/** @var Ludicat\MTGFinder\Model\Geoname|null $data */
$data = $geonameApi->get(123);
/** @var array<Ludicat\MTGFinder\Model\Geoname> $data */
$data = $geonameApi->search('FR', 'Paris'); // Could either be a city name or a zipcode
/** @var array<Ludicat\MTGFinder\Model\Geoname> $data */
$data = $geonameApi->searchZip('FR', '75001');
/** @var array<Ludicat\MTGFinder\Model\Geoname> $data */
$data = $geonameApi->searchCity('FR', 'Paris');
/** @var Ludicat\MTGFinder\Model\Geoname|null $data */
$data = $geonameApi->searchCoord(42.5833, 1.6667);

事件

API的主要目的是同步您的网站并自动创建事件。我们建议您在创建事件之前获取格式和geoname。

use Ludicat\MTGFinder\Api\Event;
use Ludicat\MTGFinder\Model\Event as EventModel;

$eventApi = new Event($client);
$eventApi->create([
    'state' => EventModel::STATE_PUBLISHED,
    'name' => 'Test event',
    'description' => 'This is a test event',
    'formats' => [
        ['id' => 1],
        ['id' => 2],
        ['id' => 5],
    ],
    'address' => [
        'street' => '1, street of the test',
        'additional' => 'Appartement 42',
        'name' => 'The bar next door',
        'geoname' => [
            'id' => 123
        ],
        'latitude' => 48.8566,
        'longitude' => 2.3522,
    ],
    'maxPeople' => 16,
    'startAt' => '2024-01-01 19:00:00',
    'endAt' => '2024-01-01 23:00:00',
    'publication' => 'Check my new tournament !',
]);

测试

在运行测试之前,您必须创建Docker环境。

make build
make test

故障排除

如果您遇到任何问题,请在此存储库中创建一个问题: https://github.com/Ludicat/mtg-finder-sdk/issues

请记住,任何滥用API都将导致您的账户被封禁。