* @link https://www.oxidmodule.com */ declare(strict_types=1); namespace D3\LinkmobilityClient\SMS; use Assert\Assert; use D3\LinkmobilityClient\Request\Request; use D3\LinkmobilityClient\Url\Url; use D3\LinkmobilityClient\ValueObject\SmsBinaryMessage; use InvalidArgumentException; class BinaryRequest extends Request implements SmsRequestInterface { /** * @return string */ public function getUri(): string { return (new Url())->getBinarySmsUri(); } public function getRawBody(): array { return array_merge( parent::getRawBody(), [ 'userDataHeaderPresent' => true, ] ); } /** * @throws InvalidArgumentException */ public function validate() { parent::validate(); Assert::thatNullOr($this->getMessage())->isInstanceOf(SmsBinaryMessage::class); } /** * @return string */ public function getResponseClass(): string { return Response::class; } }