remove unneccessary convert method

This commit is contained in:
Daniel Seifert 2025-01-02 23:51:20 +01:00
parent 29ee7babb1
commit 880608ed64
Signed by: DanielS
GPG Key ID: 6A513E13AEE66170
3 changed files with 61 additions and 66 deletions

View File

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

View File

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

View File

@ -240,9 +240,16 @@ class SubscriberTest extends IntegrationTestCase
$this->callMethod( $this->callMethod(
$sut, $sut,
'subscribe', '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 public static function subscribeDataProvider(): Generator
@ -342,6 +349,13 @@ class SubscriberTest extends IntegrationTestCase
['testsubscriber@mydomain.com', ['2354758', ' 2354858']] ['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 public static function tagDataProvider(): Generator
@ -508,9 +522,16 @@ class SubscriberTest extends IntegrationTestCase
$this->callMethod( $this->callMethod(
$sut, $sut,
'signin', '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 public static function signinDataProvider(): Generator
@ -670,25 +691,4 @@ class SubscriberTest extends IntegrationTestCase
['myMailAddress'] ['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']]
)
);
}
} }