Skip to content

Commit 6a56bf2

Browse files
authored
Merge pull request #551 from vadimkorchagin/feature/INDEP-337
Feature/indep 337
2 parents 5ad922e + c7f269e commit 6a56bf2

File tree

4 files changed

+110
-12
lines changed

4 files changed

+110
-12
lines changed

src/AmoCRM/Client/AmoCRMApiRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class AmoCRMApiRequest
3636
public const CONNECT_TIMEOUT = 5;
3737
public const REQUEST_TIMEOUT = 20;
3838
//TODO Do not forget to change this on each release
39-
public const LIBRARY_VERSION = '1.5.0';
39+
public const LIBRARY_VERSION = '1.5.1';
4040
public const USER_AGENT = 'amoCRM-API-Library/' . self::LIBRARY_VERSION;
4141

4242
public const SUCCESS_STATUSES = [

src/AmoCRM/Models/Sources/WebsiteButtonCreateRequestModel.php

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ class WebsiteButtonCreateRequestModel extends BaseApiModel
2828
*/
2929
private $trustedWebsites;
3030

31+
/**
32+
* @var string|null $name
33+
*/
34+
private $name;
35+
3136
/**
3237
* WebsiteButtonCreateRequestModel constructor.
3338
*
@@ -38,11 +43,13 @@ class WebsiteButtonCreateRequestModel extends BaseApiModel
3843
public function __construct(
3944
int $pipelineId,
4045
array $trustedWebsites = [],
41-
bool $isUsedInApp = false
46+
bool $isUsedInApp = false,
47+
?string $name = null
4248
) {
4349
$this->pipelineId = $pipelineId;
4450
$this->trustedWebsites = $trustedWebsites;
4551
$this->isUsedInApp = $isUsedInApp;
52+
$this->name = $name;
4653
}
4754

4855
/**
@@ -99,16 +106,40 @@ public function setTrustedWebsites(array $trustedWebsites): void
99106
$this->trustedWebsites = $trustedWebsites;
100107
}
101108

109+
/**
110+
* @return string|null
111+
*/
112+
public function getName(): ?string
113+
{
114+
return $this->name;
115+
}
116+
117+
/**
118+
* @param string|null $name
119+
*
120+
* @return void
121+
*/
122+
public function setName(?string $name): void
123+
{
124+
$this->name = $name;
125+
}
126+
102127
/**
103128
* @return array
104129
*/
105130
public function toArray(): array
106131
{
107-
return [
132+
$attributes = [
108133
'pipeline_id' => $this->getPipelineId(),
109134
'is_used_in_app' => $this->isUsedInApp(),
110135
'trusted_websites' => $this->getTrustedWebsites(),
111136
];
137+
138+
if (!empty($this->getName())) {
139+
$attributes['name'] = $this->getName();
140+
}
141+
142+
return $attributes;
112143
}
113144

114145
/**

src/AmoCRM/Models/Sources/WebsiteButtonCreateResponseModel.php

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,26 @@ class WebsiteButtonCreateResponseModel extends BaseApiModel
2424
*/
2525
private $trustedWebsites;
2626

27+
/**
28+
* @var string|null
29+
*/
30+
private $name;
31+
2732
/**
2833
* WebsiteButtonCreateResponseModel constructor.
2934
*
3035
* @param int $sourceId
3136
* @param array $trustedWebsites
37+
* @param string|null $name
3238
*/
3339
public function __construct(
3440
int $sourceId,
35-
array $trustedWebsites = []
41+
array $trustedWebsites = [],
42+
?string $name = null
3643
) {
3744
$this->sourceId = $sourceId;
3845
$this->trustedWebsites = $trustedWebsites;
46+
$this->name = $name;
3947
}
4048

4149
/**
@@ -74,6 +82,24 @@ public function setTrustedWebsites(array $trustedWebsites): void
7482
$this->trustedWebsites = $trustedWebsites;
7583
}
7684

85+
/**
86+
* @return string|null
87+
*/
88+
public function getName(): ?string
89+
{
90+
return $this->name;
91+
}
92+
93+
/**
94+
* @param string|null $name
95+
*
96+
* @return void
97+
*/
98+
public function setName(?string $name): void
99+
{
100+
$this->name = $name;
101+
}
102+
77103
/**
78104
* @param array $websiteButtonCreateResponse
79105
*
@@ -83,7 +109,8 @@ public static function fromArray(array $websiteButtonCreateResponse): WebsiteBut
83109
{
84110
return new WebsiteButtonCreateResponseModel(
85111
(int) ($websiteButtonCreateResponse['source_id'] ?? 0),
86-
(array) ($websiteButtonCreateResponse['trusted_websites'] ?? [])
112+
(array) ($websiteButtonCreateResponse['trusted_websites'] ?? []),
113+
(string) ($websiteButtonCreateResponse['name'] ?? '') ?: null
87114
);
88115
}
89116

@@ -95,6 +122,7 @@ public function toArray(): array
95122
return [
96123
'source_id' => $this->getSourceId(),
97124
'trusted_websites' => $this->getTrustedWebsites(),
125+
'name' => $this->getName(),
98126
];
99127
}
100128

src/AmoCRM/Models/Sources/WebsiteButtonUpdateRequestModel.php

Lines changed: 46 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace AmoCRM\Models\Sources;
66

77
use AmoCRM\Models\BaseApiModel;
8+
use InvalidArgumentException;
89

910
/**
1011
* Class WebsiteButtonUpdateRequestModel
@@ -23,6 +24,11 @@ class WebsiteButtonUpdateRequestModel extends BaseApiModel
2324
*/
2425
private $sourceId;
2526

27+
/**
28+
* @var string|null
29+
*/
30+
private $name;
31+
2632
/**
2733
* WebsiteButtonUpdateRequestModel constructor.
2834
*
@@ -31,10 +37,12 @@ class WebsiteButtonUpdateRequestModel extends BaseApiModel
3137
*/
3238
public function __construct(
3339
array $trustedWebsitesToAdd,
34-
int $sourceId
40+
int $sourceId,
41+
?string $name = null
3542
) {
3643
$this->trustedWebsitesToAdd = $trustedWebsitesToAdd;
3744
$this->sourceId = $sourceId;
45+
$this->name = $name;
3846
}
3947

4048
/**
@@ -73,25 +81,56 @@ public function setSourceId(int $sourceId): void
7381
$this->sourceId = $sourceId;
7482
}
7583

84+
/**
85+
* @return string|null
86+
*/
87+
public function getName(): ?string
88+
{
89+
return $this->name;
90+
}
91+
92+
/**
93+
* @param string|null $name
94+
*
95+
* @return void
96+
*/
97+
public function setName(?string $name): void
98+
{
99+
$this->name = $name;
100+
}
101+
76102
/**
77103
* @return array
78104
*/
79105
public function toArray(): array
80106
{
81-
return [
82-
'trusted_websites' => [
83-
'add' => $this->getTrustedWebsitesToAdd(),
84-
],
85-
];
107+
$attributes = [];
108+
109+
if (!empty($this->getTrustedWebsitesToAdd())) {
110+
$attributes['trusted_websites']['add'] = $this->getTrustedWebsitesToAdd();
111+
}
112+
113+
if (!empty($this->getName())) {
114+
$attributes['name'] = $this->getName();
115+
}
116+
117+
return $attributes;
86118
}
87119

88120
/**
89121
* @param string|null $requestId
90122
*
91123
* @return array
124+
* @throws InvalidArgumentException
92125
*/
93126
public function toApi(?string $requestId = '0'): array
94127
{
95-
return $this->toArray();
128+
$data = $this->toArray();
129+
130+
if (empty($data)) {
131+
throw new InvalidArgumentException('No attributes to update given');
132+
}
133+
134+
return $data;
96135
}
97136
}

0 commit comments

Comments
 (0)