bitrix24 / b24phpsdk

Bitrix24 PHP SDK for REST API
MIT License
15 stars 4 forks source link

[Bug in SDK]: error on parsing WorkflowDocumentId #54

Closed mesilov closed 4 days ago

mesilov commented 4 days ago

version(s) affected

1.1.0

Description

error on parsing WorkflowDocumentId

How to reproduce

#[CoversClass(WorkflowDocumentId::class)]
class WorkflowDocumentIdTest extends TestCase
{
    #[DataProvider('documentIdDataProvider')]
    public function testInitFromArray(array $documentId, int $dealId): void
    {
        $documentId = WorkflowDocumentId::initFromArray($documentId);
        $this->assertEquals(
            $dealId,
            $documentId->getId()
        );
    }

    public static function documentIdDataProvider(): Generator
    {
        yield 'deal' => [
            [
                "crm",
                "CCrmDocumentDeal",
                "DEAL_165752"
            ],
            165752
        ];
        yield 'task' => [
            [
                "tasks",
                "Bitrix\\Tasks\\Integration\\Bizproc\\Document\\Task",
                "2"
            ],
            2
        ];
        yield 'smart process' => [
            [
                "crm",
                "Bitrix\\Crm\\Integration\\BizProc\\Document\\Dynamic",
                "DYNAMIC_1032_4"
            ],
            4
        ];
    }
}

Possible Solution

    public function getId(): int
    {
        if (is_numeric($this->targetDocumentId)) {
            return (int)$this->targetDocumentId;
        }

        return (int)substr($this->targetDocumentId, strrpos($this->targetDocumentId, '_') + 1);
    }

Additional Context

No response