/** * @param PushMessage $message * * @return string */ private function formatMessage($message) { $handlers = [PushMessage::SERVICE_IOS => function (PushMessage $message) { return ['aps' => ['alert' => $message->getBody(), 'badge' => $message->getBadge(), 'sound' => 'default', 'category' => $message->getCategory()], 'data' => $message->getData()]; }, PushMessage::SERVICE_ANDROID => function (PushMessage $message) { return ['data' => array_merge(['message' => $message->getBody()], $message->getData())]; }]; return Json::encode(call_user_func(ArrayHelper::getValue($handlers, $message->getService()), $message)); }
/** * @param PushMessage $message * * @return null */ private function createCampaign($message) { return $this->execute('create/campaign', ['title' => $message->getBody(), 'text' => $message->getBody(), 'tokenArray' => $message->getRecipients(), 'ios' => ['active' => 1, 'environment' => YII_DEBUG ? 'sandbox' : 'production']]); }