Always respond with timezone in timestamp

This commit is contained in:
JonOfUs 2024-12-01 18:39:11 +01:00 committed by Jonathan Flueren
parent 2dbd02b8eb
commit d552205369

View File

@ -6,73 +6,90 @@ namespace OCA\GPodderSync\Db\EpisodeAction;
use DateTime; use DateTime;
use OCA\GPodderSync\Core\EpisodeAction\EpisodeAction; use OCA\GPodderSync\Core\EpisodeAction\EpisodeAction;
class EpisodeActionRepository { class EpisodeActionRepository
{
private EpisodeActionMapper $episodeActionMapper;
private EpisodeActionMapper $episodeActionMapper; public function __construct(EpisodeActionMapper $episodeActionMapper)
{
$this->episodeActionMapper = $episodeActionMapper;
}
public function __construct(EpisodeActionMapper $episodeActionMapper) { /**
$this->episodeActionMapper = $episodeActionMapper; * @param int $sinceEpoch
} * @param string $userId
*
* @return EpisodeAction[]
*/
public function findAll(int $sinceEpoch, string $userId): array
{
$episodeActions = [];
foreach (
$this->episodeActionMapper->findAll($sinceEpoch, $userId)
as $entity
) {
$episodeActions[] = $this->mapEntityToEpisodeAction($entity);
}
return $episodeActions;
}
/** public function findByEpisodeUrl(
* @param int $sinceEpoch string $episodeUrl,
* @param string $userId string $userId
* ): ?EpisodeAction {
* @return EpisodeAction[] $episodeActionEntity = $this->episodeActionMapper->findByEpisodeUrl(
*/ $episodeUrl,
public function findAll(int $sinceEpoch, string $userId) : array { $userId
$episodeActions = []; );
foreach ($this->episodeActionMapper->findAll($sinceEpoch, $userId) as $entity) {
$episodeActions[] = $this->mapEntityToEpisodeAction($entity);
}
return $episodeActions;
}
public function findByEpisodeUrl(string $episodeUrl, string $userId): ?EpisodeAction {
$episodeActionEntity = $this->episodeActionMapper->findByEpisodeUrl($episodeUrl, $userId);
if ($episodeActionEntity === null) { if ($episodeActionEntity === null) {
return null; return null;
} }
return $this->mapEntityToEpisodeAction( return $this->mapEntityToEpisodeAction($episodeActionEntity);
$episodeActionEntity
);
} }
public function findByGuid(string $guid, string $userId): ?EpisodeAction { public function findByGuid(string $guid, string $userId): ?EpisodeAction
$episodeActionEntity = $this->episodeActionMapper->findByGuid($guid, $userId); {
$episodeActionEntity = $this->episodeActionMapper->findByGuid(
$guid,
$userId
);
if ($episodeActionEntity === null) { if ($episodeActionEntity === null) {
return null; return null;
} }
return $this->mapEntityToEpisodeAction( return $this->mapEntityToEpisodeAction($episodeActionEntity);
$episodeActionEntity
);
} }
public function deleteEpisodeActionByEpisodeUrl(string $episodeUrl, string $userId) : void { public function deleteEpisodeActionByEpisodeUrl(
$episodeAction = $this->episodeActionMapper->findByEpisodeUrl($episodeUrl, $userId); string $episodeUrl,
string $userId
): void {
$episodeAction = $this->episodeActionMapper->findByEpisodeUrl(
$episodeUrl,
$userId
);
$this->episodeActionMapper->delete($episodeAction); $this->episodeActionMapper->delete($episodeAction);
} }
private function mapEntityToEpisodeAction(EpisodeActionEntity $episodeActionEntity): EpisodeAction private function mapEntityToEpisodeAction(
{ EpisodeActionEntity $episodeActionEntity
return new EpisodeAction( ): EpisodeAction {
$episodeActionEntity->getPodcast(), return new EpisodeAction(
$episodeActionEntity->getEpisode(), $episodeActionEntity->getPodcast(),
$episodeActionEntity->getAction(), $episodeActionEntity->getEpisode(),
DateTime::createFromFormat( $episodeActionEntity->getAction(),
"U", DateTime::createFromFormat(
(string)$episodeActionEntity->getTimestampEpoch()) "U",
->format("Y-m-d\TH:i:s"), (string) $episodeActionEntity->getTimestampEpoch()
$episodeActionEntity->getStarted(), )->format("c"),
$episodeActionEntity->getPosition(), $episodeActionEntity->getStarted(),
$episodeActionEntity->getTotal(), $episodeActionEntity->getPosition(),
$episodeActionEntity->getGuid(), $episodeActionEntity->getTotal(),
$episodeActionEntity->getId(), $episodeActionEntity->getGuid(),
); $episodeActionEntity->getId()
} );
}
} }