- also add type hints and phpdocs
- add additional unit tests
- set integer types in EpisodeActionEntity
- correctly call static methods
- improve exception handling in EpisodeActionSaver
- remove unused method EpisodeActionWriter::purge()
Remove 3rd dimension of POST data by directly accessing request data - a simple EpisodeActions array has to be posted now. This way the api is closer to gpodder.
Additionally, removed EpisodeAction upload as String, so it's now incompatible with older versions
createDateTimeFromTimestamp interpreted 0 as timestamp as a mistake while 0 is a valid timestamp.
The fix checks if timestamp is null (not defined/initialized), so that 0 is treated as a correct timestamp.
Reverting the change of format of the timestamp that gets saved into episode_action table.
Reason: The 'T' was in there so that the timestamp format is like AntennaPod's timestamp format.
Use UTC timestamp for episode actions instead of the timezone used by the AntennaPod app.
Correct conversion should be assured because the AntennaPod timestamp includes a timezone identifier (T).
Also slightly change the output format for the DateTime-timestamp to equal other timestamp formats.
persist and list with database
create episodeAction list reponse (with mocked timestamp, started and total)
create episodeActions with received values
update existing episodeActions by unique episode link
receive and store subscription changes
deal with multiple subscription changes in single request
split database into subdirectories
only return subscription changes younger then passed parameter since
parse passed timestamp
parse passed timestamp for episode_actions listing
only return list of urls for subscription changes
align list endpoint naming schema
store userId with episode actions and subscriptions
return json object on application root route