Skip to content

Commit 4c9b381

Browse files
committed
Refactor changeBitrix24Partner method into linkBitrix24Partner and unlinkBitrix24Partner. Add corresponding events, update related documentation, unit tests, and CHANGELOG.
Signed-off-by: mesilov <[email protected]>
1 parent cc3fee8 commit 4c9b381

9 files changed

+129
-18
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,13 @@
110110
- changed method `public function applicationInstalled(?string $applicationToken): void` application token now is nullable
111111
- changed method `public function applicationUninstalled(?string $applicationToken): void` application token now is nullable
112112
- added method `linkContactPerson(Uuid $uuid)`
113+
- added method `linkBitrix24Partner()`
114+
- added method `unlinkBitrix24Partner()`
113115
- added method `unlinkContactPerson()`
114116
- added method `linkBitrix24PartnerContactPerson()`
115117
- added method `unlinkBitrix24PartnerContactPerson()`
116118
- remove method `changeContactPerson(?Uuid $uuid)`
119+
- remove method `changeBitrix24Partner(?Uuid $uuid)`
117120
- remove method `changeBitrix24PartnerContactPerson(?Uuid $uuid)`
118121

119122
### Statistics

src/Application/Contracts/ApplicationInstallations/Docs/ApplicationInstallations.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ Optional can store links to:
2020
| `linkBitrix24PartnerContactPerson()` | `void` | Link Bitrix24 partner contact person | |
2121
| `unlinkBitrix24PartnerContactPerson()` | `void` | Unlink Bitrix24 partner contact person | |
2222
| `getBitrix24PartnerId()` | `?Uuid` | Returns Bitrix24 Partner id related to this installation (optional) | |
23-
| `changeBitrix24Partner()` | `void` | Changes Bitrix24 partner | |
23+
| `linkBitrix24Partner()` | `void` | Link Bitrix24 partner | |
24+
| `unlinkBitrix24Partner()` | `void` | Unlink Bitrix24 partner | |
2425
| `getExternalId()` | `?string` | Returns external id for application installation | |
2526
| `setExternalId()` | `void` | Sets external id for application installation | `InvalidArgumentException` |
2627
| `getStatus()` | `ApplicationInstallationStatus` | Returns application installation status | |

src/Application/Contracts/ApplicationInstallations/Entity/ApplicationInstallationInterface.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,18 @@ public function unlinkBitrix24PartnerContactPerson(): void;
9797
public function getBitrix24PartnerId(): ?Uuid;
9898

9999
/**
100-
* Change bitrix24 partner
100+
* Link Bitrix24 partner
101101
*
102-
* Change bitrix24 partner if other partner starts support client portal
102+
* Link Bitrix24 partner who supports this portal
103103
*/
104-
public function changeBitrix24Partner(?Uuid $uuid): void;
104+
public function linkBitrix24Partner(Uuid $uuid): void;
105+
106+
/**
107+
* Unlink Bitrix24 partner
108+
*
109+
* Unlink Bitrix24 partner who stops supporting this portal
110+
*/
111+
public function unlinkBitrix24Partner(): void;
105112

106113
/**
107114
* Get external id for application installation

src/Application/Contracts/ApplicationInstallations/Events/ApplicationInstallationContactPersonChangedEvent.php renamed to src/Application/Contracts/ApplicationInstallations/Events/ApplicationInstallationBitrix24PartnerContactPersonLinkedEvent.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717
use Symfony\Component\Uid\Uuid;
1818
use Symfony\Contracts\EventDispatcher\Event;
1919

20-
class ApplicationInstallationContactPersonChangedEvent extends Event
20+
class ApplicationInstallationBitrix24PartnerContactPersonLinkedEvent extends Event
2121
{
2222
public function __construct(
23-
public readonly Uuid $applicationInstallationId,
23+
public readonly Uuid $applicationInstallationId,
2424
public readonly CarbonImmutable $timestamp,
25-
public readonly ?Uuid $previousContactPersonId,
26-
public readonly ?Uuid $currentContactPersonId)
27-
{
25+
public readonly Uuid $bitrix24PartnerContactPersonId
26+
) {
2827
}
2928
}
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717
use Symfony\Component\Uid\Uuid;
1818
use Symfony\Contracts\EventDispatcher\Event;
1919

20-
class ApplicationInstallationBitrix24PartnerContactPersonChangedEvent extends Event
20+
class ApplicationInstallationBitrix24PartnerContactPersonUnlinkedEvent extends Event
2121
{
2222
public function __construct(
23-
public readonly Uuid $applicationInstallationId,
23+
public readonly Uuid $applicationInstallationId,
2424
public readonly CarbonImmutable $timestamp,
25-
public readonly ?Uuid $previousBitrix24PartnerContactPersonId,
26-
public readonly ?Uuid $currentBitrix24PartnerContactPersonId)
27-
{
25+
public readonly Uuid $unlinkedBitrix24PartnerContactPersonId
26+
) {
2827
}
2928
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
/**
4+
* This file is part of the bitrix24-php-sdk package.
5+
*
6+
* © Maksim Mesilov <[email protected]>
7+
*
8+
* For the full copyright and license information, please view the MIT-LICENSE.txt
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Bitrix24\SDK\Application\Contracts\ApplicationInstallations\Events;
15+
16+
use Carbon\CarbonImmutable;
17+
use Symfony\Component\Uid\Uuid;
18+
use Symfony\Contracts\EventDispatcher\Event;
19+
20+
class ApplicationInstallationBitrix24PartnerLinkedEvent extends Event
21+
{
22+
public function __construct(
23+
public readonly Uuid $applicationInstallationId,
24+
public readonly CarbonImmutable $timestamp,
25+
public readonly Uuid $bitrix24PartnerId
26+
) {
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
/**
4+
* This file is part of the bitrix24-php-sdk package.
5+
*
6+
* © Maksim Mesilov <[email protected]>
7+
*
8+
* For the full copyright and license information, please view the MIT-LICENSE.txt
9+
* file that was distributed with this source code.
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Bitrix24\SDK\Application\Contracts\ApplicationInstallations\Events;
15+
16+
use Carbon\CarbonImmutable;
17+
use Symfony\Component\Uid\Uuid;
18+
use Symfony\Contracts\EventDispatcher\Event;
19+
20+
class ApplicationInstallationBitrix24PartnerUnlinkedEvent extends Event
21+
{
22+
public function __construct(
23+
public readonly Uuid $applicationInstallationId,
24+
public readonly CarbonImmutable $timestamp,
25+
public readonly Uuid $unlinkedBitrix24PartnerId
26+
) {
27+
}
28+
}

tests/Application/Contracts/ApplicationInstallations/Entity/ApplicationInstallationInterfaceTest.php

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,8 @@ final public function testUnlinkBitrix24PartnerContactPerson(
410410

411411
#[Test]
412412
#[DataProvider('applicationInstallationDataProvider')]
413-
#[TestDox('test changeBitrix24Partner method')]
414-
final public function testChangeBitrix24Partner(
413+
#[TestDox('test linkBitrix24Partner method')]
414+
final public function linkBitrix24Partner(
415415
Uuid $uuid,
416416
ApplicationInstallationStatus $applicationInstallationStatus,
417417
CarbonImmutable $createdAt,
@@ -441,11 +441,51 @@ final public function testChangeBitrix24Partner(
441441
);
442442

443443
$newBitrix24PartnerUuid = Uuid::v7();
444-
$installation->changeBitrix24Partner($newBitrix24PartnerUuid);
444+
$installation->linkBitrix24Partner($newBitrix24PartnerUuid);
445445
$this->assertEquals($newBitrix24PartnerUuid, $installation->getBitrix24PartnerId());
446446
$this->assertFalse($installation->getCreatedAt()->equalTo($installation->getUpdatedAt()));
447447
}
448448

449+
#[Test]
450+
#[DataProvider('applicationInstallationDataProvider')]
451+
#[TestDox('test unlinkBitrix24Partner method')]
452+
final public function unlinkBitrix24Partner(
453+
Uuid $uuid,
454+
ApplicationInstallationStatus $applicationInstallationStatus,
455+
CarbonImmutable $createdAt,
456+
CarbonImmutable $updatedAt,
457+
Uuid $bitrix24AccountUuid,
458+
ApplicationStatus $applicationStatus,
459+
PortalLicenseFamily $portalLicenseFamily,
460+
?int $portalUsersCount,
461+
?Uuid $clientContactPersonUuid,
462+
?Uuid $partnerContactPersonUuid,
463+
?Uuid $partnerUuid,
464+
?string $externalId
465+
): void {
466+
$installation = $this->createApplicationInstallationImplementation(
467+
$uuid,
468+
$applicationInstallationStatus,
469+
$createdAt,
470+
$updatedAt,
471+
$bitrix24AccountUuid,
472+
$applicationStatus,
473+
$portalLicenseFamily,
474+
$portalUsersCount,
475+
$clientContactPersonUuid,
476+
$partnerContactPersonUuid,
477+
$partnerUuid,
478+
$externalId
479+
);
480+
481+
$newBitrix24PartnerUuid = Uuid::v7();
482+
$installation->linkBitrix24Partner($newBitrix24PartnerUuid);
483+
$this->assertEquals($newBitrix24PartnerUuid, $installation->getBitrix24PartnerId());
484+
$installation->unlinkBitrix24Partner();
485+
$this->assertNull($installation->getBitrix24PartnerId());
486+
$this->assertFalse($installation->getCreatedAt()->equalTo($installation->getUpdatedAt()));
487+
}
488+
449489
#[Test]
450490
#[DataProvider('applicationInstallationDataProvider')]
451491
#[TestDox('test getExternalId method')]

tests/Unit/Application/Contracts/ApplicationInstallations/Entity/ApplicationInstallationReferenceEntityImplementation.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,18 @@ public function getBitrix24PartnerId(): ?Uuid
129129
return $this->bitrix24PartnerUuid;
130130
}
131131

132-
public function changeBitrix24Partner(?Uuid $uuid): void
132+
public function linkBitrix24Partner(Uuid $uuid): void
133133
{
134134
$this->bitrix24PartnerUuid = $uuid;
135135
$this->updatedAt = new CarbonImmutable();
136136
}
137137

138+
public function unlinkBitrix24Partner(): void
139+
{
140+
$this->bitrix24PartnerUuid = null;
141+
$this->updatedAt = new CarbonImmutable();
142+
}
143+
138144
public function getExternalId(): ?string
139145
{
140146
return $this->externalId;

0 commit comments

Comments
 (0)