* @link http://www.oxidmodule.com */ declare( strict_types = 1 ); namespace D3\LinkmobilityClient\SMS; use Assert\Assert; use D3\LinkmobilityClient\Request\Request; use D3\LinkmobilityClient\ValueObject\SmsMessageInterface; use D3\LinkmobilityClient\ValueObject\SmsTextMessage; class TextRequest extends Request implements SmsRequestInterface { /** * @return string */ public function getUri(): string { return '/rest/smsmessaging/text'; } public function validate() { parent::validate(); Assert::thatNullOr( $this->getMessage() )->isInstanceOf(SmsTextMessage::class); } /** * @return string */ public function getResponseClass(): string { return Response::class; } public function getRawBody() : array { return array_merge( parent::getRawBody(), [ 'maxSmsPerMessage' => $this->getMaxSmsPerMessage(), 'messageType' => $this->getMessageType(), ] ); } }