Bump versions
Добавил новый тег, 5.8.0
Спасибо!
Add tests for #51
Disallow plugin php-http/discovery
Sync with the latest version API
Removed dot-to-dash substitution in client_login
нормализация client_login без доменной части
fix phpcs
Merge pull request #51 from Alexsisukin/fix_client_login
Removed dot-to-dash substitution in client_login
В директе доступны логины вида name@domain и при замене точки на тире получаем ошибку вида
Объект не найден: В HTTP-заголовке Client-Login указан несуществующий логин
Предлагаю оставить только strtolower
Не, не нужно. Думаю, это связано с тем, что cs-fix
запускался на PHP 7.4+
Да, такое решение должно быть безопасным. В смысле, не поломает совместимость с V4. Возможно, можно вообще отказаться от нормализации в случае, когда указан email. Но если нет проблем при нормализации левой части, то можно оставить в таком варианте.
Выполни, пожалуйста, в терминале команду:
$ composer cs-fix
Чтобы все тесты в CI стали зелеными.
Если убрать str_replace()
, то ошибки нет?
Сейчас нормализация логина выполняется согласно требованиям Директа:
Внимание. Если логин пользователя содержит точки и символы верхнего регистра (заглавные буквы), то для получения нормализованного логина их следует заменить, соответственно, дефисами и символами нижнего регистра.
https://yandex.ru/dev/direct/doc/dg-v4/concepts/finance-token.html
Bump slevomat/coding-standard to 8.9.1
Add rules for enums
Add rule SlevomatCodingStandard.ControlStructures.DisallowTrailingMultiLineTernaryOperator
Add rule SlevomatCodingStandard.Attributes.AttributeAndTargetSpacing
Где можно посмотреть пример использования GetKeywordsRequest через библиотеку? и поддерживается ли этот метод, вижу что в версии live4 он еще доступен
Fix issue with backtracking at regex context
При установке в конфиге useSandbox для отчетов:
$config = ConfigBuilder::create() ->useSandbox('true') ->setAccessToken('y0********') ->setClientLogin('********') ->setLocale('ru') ->getConfig();
Запрос идет на боевой сервер, что неудобно для разработки :(
Подправил функцию "createHttpRequest()" в файле "/src/Soap/ApiSoapClient.php"
===
private function createHttpRequest(Reports\ReportRequest $reportRequest): RequestInterface
{
$endPoint = self::ENDPOINT;
if ($this->config->useSandbox()) {
$endPoint = str_replace('api.direct.yandex.', 'api-sandbox.direct.yandex.', $endPoint);
}
$request = $this->requestFactory->createRequest('POST', $endPoint)
->withHeader('Authorization', sprintf('Bearer %s', $this->config->getAccessToken()))
.......
====
Возможно, хардкор. Поэтому патч делать не стал.
Sync with the latest version API
Fix typo
Add support the sandbox mode for service Reports
Close #50
Пока не вижу более элегантного решения. А подобное изменение будет согласовано с решением в Biplane\YandexDirect\Soap\ApiSoapClient
.
Позже, если будет найдено альтернативное решение, можно будет так же согласовано отрефакторить.
Предполагаю, вопрос относится к Biplane\YandexDirect\Api\V5\Contract\GetKeywordsRequest
. Если так, то этот класс относится к методу Keywords.get()
.
use Biplane\YandexDirect\ApiServiceFactory;
use Biplane\YandexDirect\Api\V5\Contract;
use Biplane\YandexDirect\Api\V5\Keywords;
$service = (new ApiServiceFactory())->createService(..., Keywords::class);
$request = Contract\GetKeywordsRequest::create()
->setSelectionCriteria(
Contract\KeywordsSelectionCriteria::create()
->setIds([123, 124])
)
->setFieldNames([
Contract\KeywordFieldEnum::CAMPAIGN_ID,
Contract\KeywordFieldEnum::ID,
Contract\KeywordFieldEnum::KEYWORD,
Contract\KeywordFieldEnum::STATE,
Contract\KeywordFieldEnum::STATUS,
]);
$response = $service->get($request);
// $response an instance of Biplane\YandexDirect\Api\V5\Contract\GetKeywordsResponse
Allows to install symfony/event-dispatcher
6.x