Commit Graph

48 Commits

Author SHA1 Message Date
Linus Kardell cd7ec988f2 Fix getId() on null in deleteConflictingEpisodeAction
Previously, it would take the guid and try to search for that in the
episode URL column, which may not find a match (or possibly even find
the wrong match).

testDoNotFailToUpdateEpisodeActionByGuidIfThereIsAnotherWithTheSameValueForEpisodeUrl
didn't catch this issue because it used the same value for episode and
guid when updating at line 84, so fix that as well. And for good
measure, give the save actions different position values, so the asserts
actually check that the saves have succeeded and they found the right
episode.
2024-01-12 20:43:01 +01:00
thrillfall bf8fee14e3 delete conflicting episode action if current episode actions updates to same episode url 2023-02-24 20:48:53 +01:00
thrillfall ee84d2f670 test updating episode action fails when other episode action with same episode url already exists 2023-02-24 20:42:45 +01:00
thrillfall a6a19df999 test disambiguated episode action search 2023-02-24 19:37:50 +01:00
thrillfall a1893061ce fix #109 search for episode action by guid only (retry with episode url if nothing found) thus avoid multiple results 2023-02-24 17:11:59 +01:00
thrillfall 4999b96456 register app into nextcloud service container we can run tests 2023-02-24 17:11:59 +01:00
Jonathan Flueren bfb3799f5c Fix indentation 2022-11-08 20:51:38 +01:00
JonOfUs 3c2f229b76 Add migration + test for long podcast feed URLs 2022-11-08 20:51:38 +01:00
kalle (jag) 6420fa4f7d Apply suggestions from code review
Co-authored-by: Jonathan Flueren <11487762+JonOfUs@users.noreply.github.com>
2022-10-28 09:50:44 +02:00
Kalle Fagerberg a5a69fa3f7 Added image proxying/caching 2022-10-28 09:50:44 +02:00
Kalle Fagerberg 2b82e9e9c9 Added PodcastData parsing/toArray tests 2022-10-28 09:50:44 +02:00
Jonathan Flueren 6ba2f89195 Add integration tests for subs and empty since 2022-05-25 23:57:42 +02:00
Jonathan Flueren 4c4803f117 Change to mock in migration tests for better compatibility 2022-05-04 19:23:31 +02:00
Jonathan Flueren 2ac01444bc Change test request creation to work with Nextcloud 24 2022-05-04 19:23:31 +02:00
thrillfall e119d41c86 do not add subscriptions that have no url (i.e. antennapod local folder subscriptions) 2021-12-09 20:55:05 +01:00
Matthias Gutjahr 48c4bb779e Remove unit tests 2021-11-03 13:51:26 +01:00
Matthias Gutjahr bac196e0b5 Throw exception if client sends invalid request data 2021-11-03 13:51:26 +01:00
Matthias Gutjahr 3e94305d0c Add integration test for create action 2021-11-03 13:51:26 +01:00
Matthias Gutjahr cba5bd97c3 Fix typo 2021-11-03 13:51:26 +01:00
Matthias Gutjahr 1d2056e025 Add check for EpisodeAction properties
- 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()
2021-11-03 13:51:26 +01:00
thrillfall f686348c22 add another episode action to test that converted timestamps are set to correct entites 2021-10-13 22:32:06 +02:00
thrillfall 137e367c2d also catch oracle exception message 2021-10-06 19:40:52 +02:00
Jonathan Flueren 77571feb40 Update tests to new upload format 2021-10-06 19:40:52 +02:00
Jonathan Flueren 3534c43976 Adjust expected DateTime format to gpodder - UTC ISO 8601 2021-10-06 19:40:52 +02:00
Jonathan Flueren 795a9253d2 Adjust EpisodeAction upload to gpodder api, remove String upload
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
2021-10-06 19:40:52 +02:00
Jonathan Flueren 91c2dccd3c Test array parsing without guid 2021-10-06 19:40:52 +02:00
Jonathan Flueren 7813339a95 Allow EpisodeAction upload as array
Parsing EpisodeActions from String can lead to problems if the String is changed by only a little bits.
Additionally, the gpodder api describes the upload as Array.
Uploading EpisodeActions as String is still possible.
2021-10-06 19:40:52 +02:00
thrillfall 499d11d209 query episode actions by unix timestamp (instead of datetime object) 2021-10-06 14:06:45 +02:00
thrillfall 2a988e91a6 test only with new episode_action.datetime_epoch field 2021-10-06 14:06:45 +02:00
thrillfall a11850e995 dont run test that fails on mysql or sqlite database 2021-10-06 14:06:45 +02:00
thrillfall 39e094e812 make test independent of test system timezone 2021-10-06 14:06:45 +02:00
thrillfall aa09c8d0a3 expect also sqlite exception message in test 2021-10-06 14:06:45 +02:00
thrillfall ac1acf079b provide episode_action timestamps as UTC in api response 2021-10-06 14:06:45 +02:00
thrillfall aa024e55f8 add new timestamp database field. add migration step to convert timestamps to unix epoch 2021-10-06 14:06:45 +02:00
thrillfall 2e8ba1b0ad adapt tests to new dbal exception class in nc >=21 2021-10-06 14:06:45 +02:00
thrillfall ff4798f6da do not null EpisodeAction.guid when processing request without guid 2021-08-29 13:14:40 +02:00
thrillfall a336618ada make it clearer when we insert test data in the database 2021-08-29 13:14:40 +02:00
thrillfall 9f0c06e919 test we still retrieve the correct episode action by guid when episode url changes 2021-08-29 13:14:40 +02:00
thrillfall 352802ca69 update existing episode actions with guid 2021-08-29 13:14:40 +02:00
thrillfall 850dfd5eb4 add guid to episode action and make it findable by it 2021-08-29 13:14:40 +02:00
thrillfall ae27f7cf34 test unique index constraint for episode actions 2021-08-29 13:14:40 +02:00
thrillfall ba0d4f4357 parse optional guid from EpisodeAction request 2021-08-29 13:14:40 +02:00
thrillfall 20a647906a do not pass same data twice 2021-08-27 12:51:29 +02:00
Jonathan Flueren 48b78669e6 Enable processing of multiple EpisodeActions
EpisodeAction/create now can deal with multiple EpisodeActions inside a single EpisodeAction string, they will be processed one after another.
For this EpisodeActionReader->fromString() now returns an array of EpisodeActions.
2021-08-24 22:31:24 +02:00
thrillfall ad3b9c107d convert timestamp from episode action request to format also mysql can process 2021-07-22 23:44:45 +02:00
thrillfall 324aecd7b8 make subscription changes endpoint comply with gpodder.net api 2021-07-13 21:36:34 +02:00
Matthias Gutjahr cd5a77281e
Fix compatibility with more recent versions of PHPUnit 2021-07-13 09:43:54 +02:00
thrillfall 72bf365285 parse EpisodeAction message from AntennaPod
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
2021-06-27 13:24:17 +02:00