remove unneccessary convert method

Cette révision appartient à :
Daniel Seifert 2025-01-02 23:51:20 +01:00
Parent 29ee7babb1
révision 880608ed64
Signé par: DanielS
ID de la clé GPG: 6A513E13AEE66170
3 fichiers modifiés avec 61 ajouts et 66 suppressions

Voir le fichier

@ -25,14 +25,4 @@ abstract class Model
{
$this->connection = $connection;
}
protected function convertDataArrayToUrlParameters(array $data): array
{
$urlFields = [];
foreach (array_filter($data) as $key => $value) {
$urlFields['fields['.$key.']'] = $value;
}
return $urlFields;
}
}

Voir le fichier

@ -82,16 +82,15 @@ class Subscriber extends Model
'subscriber.json',
[
RequestOptions::FORM_PARAMS => array_filter(
array_merge(
$this->convertDataArrayToUrlParameters($fields ?? []),
[
'email' => trim($mailAddress),
'listid' => trim($listId ?? ''),
'tagid' => trim($tagId ?? ''),
'fields' => array_filter($fields ?? []),
'smsnumber' => trim($smsNumber ?? ''),
]
)
[
'email' => trim($mailAddress),
'listid' => trim($listId ?? ''),
'tagid' => trim($tagId ?? ''),
'fields' => array_filter(
array_map('trim', $fields ?? [])
),
'smsnumber' => trim($smsNumber ?? ''),
]
),
]
)
@ -127,12 +126,14 @@ class Subscriber extends Model
'POST',
'subscriber/tag.json',
[
RequestOptions::FORM_PARAMS => [
'email' => trim($mailAddress),
'tagids' => implode(',', array_filter(
array_map('trim', $tagIds)
)),
],
RequestOptions::FORM_PARAMS => array_filter(
[
'email' => trim($mailAddress),
'tagids' => array_filter(
array_map('trim', $tagIds)
),
]
),
]
)
);
@ -189,13 +190,13 @@ class Subscriber extends Model
'subscriber/'.urlencode(trim($subscriberId)).'.json',
[
RequestOptions::FORM_PARAMS => array_filter(
array_merge(
$this->convertDataArrayToUrlParameters($fields ?? []),
[
'newemail' => trim($newEmail ?? ''),
'newsmsnumber' => trim($newSmsNumber ?? ''),
]
)
[
'newemail' => trim($newEmail ?? ''),
'newsmsnumber' => trim($newSmsNumber ?? ''),
'fields' => array_filter(
array_map('trim', $fields ?? [])
),
]
),
]
)
@ -219,22 +220,26 @@ class Subscriber extends Model
/**
* @throws BaseException
*/
public function signin(string $apikey, string $emailAddress, ?array $fields = null, ?string $smsNumber = null): string
{
public function signin(
string $apikey,
string $emailAddress,
?array $fields = null,
?string $smsNumber = null
): string {
return current(
$this->connection->requestAndParse(
'POST',
'subscriber/signin.json',
[
RequestOptions::FORM_PARAMS => array_filter(
array_merge(
$this->convertDataArrayToUrlParameters($fields ?? []),
[
'apikey' => trim($apikey),
'email' => trim($emailAddress),
'smsnumber' => trim($smsNumber ?? ''),
]
)
[
'apikey' => trim($apikey),
'email' => trim($emailAddress),
'smsnumber' => trim($smsNumber ?? ''),
'fields' => array_filter(
array_map('trim', $fields ?? [])
),
]
),
]
)

Voir le fichier

@ -240,9 +240,16 @@ class SubscriberTest extends IntegrationTestCase
$this->callMethod(
$sut,
'subscribe',
['testsubscriber@mydomain.com']
['testsubscriber@mydomain.com', '1234567', '2345678', ['field1' => 'abcd', 'field2' => 'efgh']]
)
);
/** @var RequestInterface $request */
$request = current($this->getHistoryContainer())['request'];
$requestFormParams = $request->getBody()->getContents();
$this->assertMatchesRegularExpression('/fields%5Bfield1%5D=abcd/m', $requestFormParams);
$this->assertMatchesRegularExpression('/fields%5Bfield2%5D=efgh/m', $requestFormParams);
$this->assertMatchesRegularExpression('/email=testsubscriber%40mydomain.com/m', $requestFormParams);
}
public static function subscribeDataProvider(): Generator
@ -342,6 +349,13 @@ class SubscriberTest extends IntegrationTestCase
['testsubscriber@mydomain.com', ['2354758', ' 2354858']]
)
);
/** @var RequestInterface $request */
$request = current($this->getHistoryContainer())['request'];
$requestFormParams = $request->getBody()->getContents();
$this->assertMatchesRegularExpression('/tagids%5B0%5D=2354758/m', $requestFormParams);
$this->assertMatchesRegularExpression('/tagids%5B1%5D=2354858/m', $requestFormParams);
$this->assertMatchesRegularExpression('/email=testsubscriber%40mydomain.com/m', $requestFormParams);
}
public static function tagDataProvider(): Generator
@ -508,9 +522,16 @@ class SubscriberTest extends IntegrationTestCase
$this->callMethod(
$sut,
'signin',
['7gefzp8255z8z8469', 'subsriber@mydomain.com']
['7gefzp8255z8z8469', 'subsriber@mydomain.com', ['field1' => 'abcd', 'field2' => 'efgh']]
)
);
/** @var RequestInterface $request */
$request = current($this->getHistoryContainer())['request'];
$requestFormParams = $request->getBody()->getContents();
$this->assertMatchesRegularExpression('/fields%5Bfield1%5D=abcd/m', $requestFormParams);
$this->assertMatchesRegularExpression('/fields%5Bfield2%5D=efgh/m', $requestFormParams);
$this->assertMatchesRegularExpression('/apikey=7gefzp8255z8z8469/m', $requestFormParams);
}
public static function signinDataProvider(): Generator
@ -670,25 +691,4 @@ class SubscriberTest extends IntegrationTestCase
['myMailAddress']
);
}
/**
* @test
* @throws ReflectionException
* @covers \D3\KlicktippPhpClient\Resources\Model::convertDataArrayToUrlParameters
*/
public function testConvertDataArrayToUrlParameters()
{
$sut = $this->getMockBuilder(Subscriber::class)
->disableOriginalConstructor()
->getMock();
$this->assertSame(
['fields[field1]' => 'value1'],
$this->callMethod(
$sut,
'convertDataArrayToUrlParameters',
[['field1' => 'value1']]
)
);
}
}