From 0a8ecee7f9f0ab7f79c5109006511f17a6f562bc Mon Sep 17 00:00:00 2001 From: andrey-tech Date: Sun, 22 May 2022 15:32:47 +0300 Subject: [PATCH] Add methods getContactsByPhone(), getTaskList() --- LICENSE | 2 +- README.md | 11 +++++++++++ src/App/Bitrix24/Contact.php | 23 +++++++++++++++++++++-- src/App/Bitrix24/Task.php | 28 ++++++++++++++++++++++++++-- 4 files changed, 59 insertions(+), 5 deletions(-) diff --git a/LICENSE b/LICENSE index a06b4e7..f750ad2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019-2021 andrey-tech +Copyright (c) 2019-2022 andrey-tech Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 674ef36..31b6c87 100644 --- a/README.md +++ b/README.md @@ -287,6 +287,7 @@ try { - `fetchContactList(array $filter = [], array $select = [], array $order = []) :\Generator` Загружает все контакты с возможностью фильтрации, сортировки и выборки полей. Реализует [быстрый метод](https://dev.1c-bitrix.ru/rest_help/rest_sum/start.php) загрузки при работе с большими объемами данных. +- `getContactsByPhone(int|string $phone, $select = []) :array` Возвращает контакты по номеру телефона. - `addContacts(array $contacts = [], array $params = []) :array` Пакетно добавляет контакты. - `updateContacts(array $contacts = [], array $params = []) :array` Пакетно обновляет контакты. - `deleteContacts(array $contactIds = []) :array` Пакетно удаляет контакты. @@ -298,6 +299,7 @@ try { + `$contaxctId` - ID контакта; + `$contactIds` - массив ID сделок; ++ `$phone` - номер телефона; + `$with` - имена связанных сущностей, возвращаемых вместе с контактом: * `\App\Bitrix24\Bitrix24API::$WITH_COMPANIES` - компании (возвращаются в виде массива в поле с именем, заданным публичным статическим свойством `Bitrix24API::$WITH_COMPANIES`); - `$fields` - набор полей сделки; @@ -745,6 +747,7 @@ try { Методы для работы с задачами находятся в трейте `\App\Bitrix24\Task`: - `getTask($taskId, array $select = []) :?array` Возвращает задачу по ID. +- `getTaskList(array $filter = [], array $select = [], array $order = []): Generator` Возвращает все задачи. - `addTask(array $fields = []) :int` Добавляет новую задачу. - `addTasks(array $tasks = []) :array` Пакетно добавляет задачи. - `getTaskFields() :array` Возвращает описание полей задачи. @@ -752,7 +755,9 @@ try { Параметры методов: + `$taskId` - ID задачи; ++ `$filter` - параметры фильтрации; + `$select` - параметры выборки полей; ++ `$order` - параметры сортировки; + `$fields` - набор полей задачи; + `$tasks` - массив наборов полей задач. @@ -769,6 +774,12 @@ try { $task = $bx24->getTask(4325); print_r($task); + // Получаем все задачи + $generator = $bx24->getTaskList(); + foreach ($generator as $result) { + print_r($result); + } + // Создаем новую задачу $taskId = $bx24->addTask([ 'TITLE' => 'Новая задача №123', // Название задачи diff --git a/src/App/Bitrix24/Contact.php b/src/App/Bitrix24/Contact.php index 7c577da..93c0b0d 100644 --- a/src/App/Bitrix24/Contact.php +++ b/src/App/Bitrix24/Contact.php @@ -4,17 +4,18 @@ * Трейт Contact. Методы для работы с контактом в системе Bitrix24. * * @author andrey-tech - * @copyright 2019-2021 andrey-tech + * @copyright 2019-2022 andrey-tech * @see https://github.com/andrey-tech/bitrix24-api-php * @license MIT * - * @version 1.2.2 + * @version 1.3.0 * * v1.0.0 (14.10.2019) Начальная версия * v1.1.0 (15.11.2019) Добавлен метод getContactFields() * v1.2.0 (09.06.2020) Изменен метод getContact(), добавлен метод fetchContactList() * v1.2.1 (11.06.2020) Исправлен метод deleteContacts() * v1.2.2 (03.02.2021) Исправлено имя класса исключения в методах + * v1.3.0 (22.05.2022) Добавлен метод getContactsByPhone() */ declare(strict_types=1); @@ -70,6 +71,24 @@ public function getContact($contactId, array $with = []) return $this->createResultWith($result, 'CONTACT', $with); } + /** + * Возвращает контакты по номеру телефона + * + * @param int|string $phone Номер телефона + * @param array $select Параметры выборки + * @return array + */ + public function getContactsByPhone($phone, $select = []) + { + return $this->request( + 'crm.contact.list', + [ + 'filter' => [ 'PHONE' => $phone ], + 'select' => $select + ] + ); + } + /** * Добавляет контакт * diff --git a/src/App/Bitrix24/Task.php b/src/App/Bitrix24/Task.php index 69d7800..5d7d661 100644 --- a/src/App/Bitrix24/Task.php +++ b/src/App/Bitrix24/Task.php @@ -4,20 +4,23 @@ * Трейт Task. Методы для работы с задачами в системе Bitrix24. * * @author andrey-tech - * @copyright 2019-2021 andrey-tech + * @copyright 2019-2022 andrey-tech * @see https://github.com/andrey-tech/bitrix24-api-php * @license MIT * - * @version 1.0.1 + * @version 1.1.0 * * v1.0.0 (02.12.2019) Начальная версия * v1.0.1 (03.02.2021) Исправлено имя класса исключения в методах + * v1.1.0 (22.05.2022) Добавлен метод getTaskList() */ declare(strict_types=1); namespace App\Bitrix24; +use Generator; + trait Task { /** @@ -51,6 +54,27 @@ public function getTask($taskId, array $select = []) return $task; } + /** + * Возвращает все задачи + * + * @param array $filter Параметры фильтрации + * @param array $order Параметры + * сортировки + * @param array $select Параметры выборки + * @return Generator + * @see https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_list.php + */ + public function getTaskList(array $filter = [], array $select = [], array $order = []): Generator + { + $params = [ + 'order' => $order, + 'filter' => $filter, + 'select' => $select + ]; + + return $this->getList('tasks.task.list', $params); + } + /** * Добавляет задачу *