/** * @NoAdminRequired * @NoCSRFRequired * * @param int $page * @return JSONResponse */ public function get($page = 1) { $rows = $this->manager->getAnnouncements(self::PAGE_LIMIT, self::PAGE_LIMIT * (max(1, $page) - 1)); $announcements = []; foreach ($rows as $row) { $displayName = $row['author']; $user = $this->userManager->get($displayName); if ($user instanceof IUser) { $displayName = $user->getDisplayName(); } $announcements[] = ['id' => $row['id'], 'author' => $displayName, 'author_id' => $row['author'], 'time' => $row['time'], 'subject' => $row['subject'], 'message' => $row['message']]; } return new JSONResponse($announcements); }
public function testAnnouncement() { $subject = 'subject' . "\n<html>"; $message = 'message' . "\n<html>"; $author = 'author'; $time = time() - 10; $announcement = $this->manager->announce($subject, $message, $author, $time); $this->assertInternalType('int', $announcement['id']); $this->assertGreaterThan(0, $announcement['id']); $this->assertSame('subject <html>', $announcement['subject']); $this->assertSame('message<br /><html>', $announcement['message']); $this->assertSame('author', $announcement['author']); $this->assertSame($time, $announcement['time']); $this->assertEquals($announcement, $this->manager->getAnnouncement($announcement['id'])); $this->assertEquals($announcement, $this->manager->getAnnouncement($announcement['id'])); $this->assertEquals([$announcement], $this->manager->getAnnouncements(1)); $this->manager->delete($announcement['id']); try { $this->manager->getAnnouncement($announcement['id']); $this->fail('Failed to delete the announcement'); } catch (\InvalidArgumentException $e) { $this->assertInstanceOf('InvalidArgumentException', $e); } }