Skip to content

Commit

Permalink
Implement getFirstMessage()
Browse files Browse the repository at this point in the history
Closes #29, #24
  • Loading branch information
akrabat committed Oct 22, 2017
1 parent 3c9a26b commit 749aed9
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
4 changes: 4 additions & 0 deletions README.md
Expand Up @@ -42,6 +42,10 @@ $app->get('/bar', function ($req, $res, $args) {
// Get flash messages from previous request
$messages = $this->flash->getMessages();
print_r($messages);

// Get the first message from a specific key
$test = $this->flash->getFirstMessage('Test');
print_r($test);
});

$app->run();
Expand Down
17 changes: 17 additions & 0 deletions src/Messages.php
Expand Up @@ -143,6 +143,23 @@ public function getMessage($key)
return (isset($messages[$key])) ? $messages[$key] : null;
}

/**
* Get the first Flash message
*
* @param string $key The key to get the message from
* @param string $default Default value if key doesn't exist
* @return mixed Returns the message
*/
public function getFirstMessage($key, $default = null)
{
$messages = self::getMessage($key);
if (is_array($messages) && count($messages) > 0) {
return $messages[0];
}

return $default;
}

/**
* Has Flash Message
*
Expand Down
18 changes: 18 additions & 0 deletions tests/MessagesTest.php
Expand Up @@ -194,6 +194,24 @@ public function testGetMessageFromKey()
$this->assertEquals(['Test', 'Test2'], $flash->getMessage('Test'));
}

//Test getting the first message from the key
public function testGetFirstMessageFromKey()
{
$storage = ['slimFlash' => [ 'Test' => ['Test', 'Test2']]];
$flash = new Messages($storage);

$this->assertEquals('Test', $flash->getFirstMessage('Test'));
}

//Test getting the default message if the key doesn't exist
public function testDefaultFromGetFirstMessageFromKeyIfKeyDoesntExist()
{
$storage = ['slimFlash' => []];
$flash = new Messages($storage);

$this->assertEquals('This', $flash->getFirstMessage('Test', 'This'));
}

//Test getting the message from the key
public function testGetMessageFromKeyIncludingCurrent()
{
Expand Down

0 comments on commit 749aed9

Please sign in to comment.