Merge pull request #1644 from ArthurHoaro/fix/daily-rss

Daily RSS - Remove relative description (today, yesterday)
This commit is contained in:
ArthurHoaro 2020-12-16 16:04:53 +01:00 committed by GitHub
commit ab4c170672
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 8 deletions

View file

@ -131,7 +131,7 @@ public function rss(Request $request, Response $response): Response
$dataPerDay[$day] = [ $dataPerDay[$day] = [
'date' => $endDateTime, 'date' => $endDateTime,
'date_rss' => $endDateTime->format(DateTime::RSS), 'date_rss' => $endDateTime->format(DateTime::RSS),
'date_human' => DailyPageHelper::getDescriptionByType($type, $dayDateTime), 'date_human' => DailyPageHelper::getDescriptionByType($type, $dayDateTime, false),
'absolute_url' => $indexUrl . 'daily?' . $type . '=' . $day, 'absolute_url' => $indexUrl . 'daily?' . $type . '=' . $day,
'links' => [], 'links' => [],
]; ];

View file

@ -154,16 +154,20 @@ public static function getEndDateTimeByType(string $type, \DateTimeImmutable $re
* Get localized description of the time period depending on given datetime and type. * Get localized description of the time period depending on given datetime and type.
* Example: for a month period, it returns `October, 2020`. * Example: for a month period, it returns `October, 2020`.
* *
* @param string $type month/week/day * @param string $type month/week/day
* @param \DateTimeImmutable $requested DateTime extracted from request input * @param \DateTimeImmutable $requested DateTime extracted from request input
* (should come from extractRequestedDateTime) * (should come from extractRequestedDateTime)
* @param bool $includeRelative Include relative date description (today, yesterday, etc.)
* *
* @return string Localized time period description * @return string Localized time period description
* *
* @throws \Exception Type not supported. * @throws \Exception Type not supported.
*/ */
public static function getDescriptionByType(string $type, \DateTimeImmutable $requested): string public static function getDescriptionByType(
{ string $type,
\DateTimeImmutable $requested,
bool $includeRelative = true
): string {
switch ($type) { switch ($type) {
case static::MONTH: case static::MONTH:
return $requested->format('F') . ', ' . $requested->format('Y'); return $requested->format('F') . ', ' . $requested->format('Y');
@ -172,9 +176,9 @@ public static function getDescriptionByType(string $type, \DateTimeImmutable $re
return t('Week') . ' ' . $requested->format('W') . ' (' . format_date($requested, false) . ')'; return t('Week') . ' ' . $requested->format('W') . ' (' . format_date($requested, false) . ')';
case static::DAY: case static::DAY:
$out = ''; $out = '';
if ($requested->format('Ymd') === date('Ymd')) { if ($includeRelative && $requested->format('Ymd') === date('Ymd')) {
$out = t('Today') . ' - '; $out = t('Today') . ' - ';
} elseif ($requested->format('Ymd') === date('Ymd', strtotime('-1 days'))) { } elseif ($includeRelative && $requested->format('Ymd') === date('Ymd', strtotime('-1 days'))) {
$out = t('Yesterday') . ' - '; $out = t('Yesterday') . ' - ';
} }
return $out . format_date($requested, false); return $out . format_date($requested, false);

View file

@ -121,6 +121,19 @@ public function testGeDescriptionsByType(
static::assertEquals($expectedDescription, $description); static::assertEquals($expectedDescription, $description);
} }
/**
* @dataProvider getDescriptionsByTypeNotIncludeRelative
*/
public function testGeDescriptionsByTypeNotIncludeRelative(
string $type,
\DateTimeImmutable $dateTime,
string $expectedDescription
): void {
$description = DailyPageHelper::getDescriptionByType($type, $dateTime, false);
static::assertEquals($expectedDescription, $description);
}
public function getDescriptionByTypeExceptionUnknownType(): void public function getDescriptionByTypeExceptionUnknownType(): void
{ {
$this->expectException(\Exception::class); $this->expectException(\Exception::class);
@ -248,6 +261,20 @@ public function getDescriptionsByType(): array
]; ];
} }
/**
* Data provider for testGeDescriptionsByTypeNotIncludeRelative() test method.
*/
public function getDescriptionsByTypeNotIncludeRelative(): array
{
return [
[DailyPageHelper::DAY, $date = new \DateTimeImmutable(), $date->format('F j, Y')],
[DailyPageHelper::DAY, $date = new \DateTimeImmutable('-1 day'), $date->format('F j, Y')],
[DailyPageHelper::DAY, new \DateTimeImmutable('2020-10-09 04:05:06'), 'October 9, 2020'],
[DailyPageHelper::WEEK, new \DateTimeImmutable('2020-10-09 04:05:06'), 'Week 41 (October 5, 2020)'],
[DailyPageHelper::MONTH, new \DateTimeImmutable('2020-10-09 04:05:06'), 'October, 2020'],
];
}
/** /**
* Data provider for testGetDescriptionsByType() test method. * Data provider for testGetDescriptionsByType() test method.
*/ */