public function testToArray() { $data = ['actionCode' => 'LOGIN', 'item' => ['id' => 'The Item', 'title' => 'The Item', 'description' => 'The Item\'s description', 'author' => 'john.doe'], 'categories' => ['foo', 'bar']]; $item = new Item(); $item->setItemId('The Item')->setTitle('The Item')->setDescription('The Item\'s description')->setAuthor('john.doe'); $this->action->fromArray($data); $this->action->setItem($item); $actionArray = $this->action->toArray(); $this->assertCount(3, $actionArray); $this->assertEquals($data, $actionArray); }
/** * Performs an action notification from certain user * * @param User|string $user A User model or userId * @param array $actions array of Action objects or strings * @return void */ public function notifySeveralActions($user, array $actions) { // Prepare request body $requestData = ['userId' => $user instanceof User ? $user->getUserId() : $user, 'actions' => []]; foreach ($actions as $action) { if (is_string($action)) { $actionCode = $action; $action = new Action(); $action->setActionCode($actionCode); } if ($action instanceof Action) { $requestData['actions'][] = $action->toArray(); } } // Perform request $this->connect('POST', self::ACTION_NOTIFY_SEVERAL_ROUTE, ['json' => $requestData]); }