julienbornstein/doctolib-php

0.1.2 2022-01-25 15:01 UTC

This package is auto-updated.

Last update: 2024-09-25 21:08:31 UTC


README

Latest Release Software License GitHub Workflow Status Codecov Total Downloads

注意: 这是一个非官方的 Doctolib PHP 客户端。

这是一个 Doctolib 的 PHP 客户端,它包括以下内容:

  • REST 端点的辅助方法
    • 通过专业和地点搜索医生资料,并获取预约和可用信息。
    • 获取患者、资料、预约。
    • 创建、确认、删除预约。
    • 认证。 损坏
  • PSR-4 自动加载支持。

要求

  • PHP 7.4 或更高版本。
  • PHP cURL 扩展(通常与 PHP 一起安装)。

安装

使用 Composer 安装它

$ composer require julienbornstein/doctolib-php

用法

$doctolib = new Doctolib\Client(
    new Symfony\Component\HttpClient\HttpClient(), 
    SerializerFactory::create()
);

$searchResults = $doctolib->search('dentiste');
$speciality = $searchResults['specialities'][0];

$profiles = $doctolib->searchProfilesBySpecialityAndLocation('dentiste', '75009-paris'); // = https://www.doctolib.fr/dentiste/75009-paris
$profiles = $doctolib->searchProfilesBySpecialityAndLocation('dentiste', '75009-paris', [
    'latitude' => 48.8785328,
    'longitude' => 2.3377854,
]);

$booking = $doctolib->getBooking('cabinet-dentaire-haussmann-saint-lazare');
$agendas = $booking->getAgendas();
$visitMotives = Agenda::getVisitMotivesForAgendas($agendas);

$tomorrow = new DateTime('tomorrow');
$visitMotive = $visitMotives[0];
$availabilities = $doctolib->getAvailabilities($agendas, $tomorrow, $visitMotive->getRefVisitMotiveId());

$firstAvailability = $availabilities[0];
$firstSlot = $firstAvailability->getSlots()[0];

$doctolib->setSessionId('YOUR_SESSION_ID');

$patient = $doctolib->getMasterPatient();

$appointment = $doctolib->createAppointment($booking, $visitMotive, $firstSlot);
$appointment = $doctolib->confirmAppointment($appointment, $patient);

$upcomingAppointments = $doctolib->getUpcomingAppointments();
$appointment = $doctolib->getAppointment('APPOINTMENT_ID');
$doctolib->deleteAppointment('APPOINTMENT_ID');

框架集成

Symfony

在您的 services.yaml 文件中添加此块以将 Client 注册为服务。

    Doctolib\Client:
      arguments:
        $serializer: '@doctolib.serializer'

    doctolib.serializer:
      class: Symfony\Component\Serializer\SerializerInterface
      factory: ['Doctolib\SerializerFactory', 'create']

示例

您可以在 examples 目录中找到一些示例。

您还可以检查这个项目 julienbornstein/doctolib-autobooking

测试

$ make test

贡献

有关详细信息,请参阅 CONTRIBUTING

致谢

许可协议

MIT 许可协议 (MIT)。请参阅 许可文件 了解更多信息。