Commit Graph

256 Commits

Author SHA1 Message Date
Jonathan Flueren 792704d07a Update API documentation 2021-10-06 19:40:52 +02:00
Jonathan Flueren c6ee19a929 Ensure uppercase action in EpisodeAction upload
Background: action is lowercase in gpodder api description - gpoddersync always worked with uppercase action.
2021-10-06 19:40:52 +02:00
Jonathan Flueren d131b59348 Align episode upload format to gpodder-api
'started', 'position' and 'total' are optional and 'timestamp' is in 'Y-m-d\TH:i:s' format
2021-10-06 19:40:52 +02:00
Jonathan Flueren d6c81e7f83 Update API documentation - add examples & differences between gpodder 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
Jonathan Flueren 896943ae67 Adjust RepairStep name to other RepairSteps in Nextcloud
All of them begin uppercase
2021-10-06 17:41:38 +02:00
Jonathan Flueren d1513883d7 Use correct SQL syntax in repair step
One space was missing
2021-10-06 17:41:38 +02:00
thrillfall 1243a7144a since we dont know from which version the update is being executed we always fix timestamps 2021-10-06 14:53:13 +02:00
thrillfall 414ad1a024 do not show internal id in response 2021-10-06 14:08:33 +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 9271a5063e ensure dbal return types for mysql and sqlite database 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 871257ede2 make sure we always return int for episode_action.started 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 00ee647c2b also test nextcloud v21 2021-10-06 14:06:45 +02:00
thrillfall 201bde60de add minimal composer.json 2021-10-06 14:06:45 +02:00
thrillfall ab1c354c2e test with all database types 2021-10-06 14:06:45 +02:00
thrillfall 14c4b8223f run github actions phpunit tests for each pushed commit 2021-10-06 14:06:40 +02:00
thrillfall 25a7ed885b release 2.0.0 2021-10-03 09:42:00 +02:00
thrillfall be432d8ad4
add api documentation 2021-09-28 11:10:22 +02:00
thrillfall fdc6a0db6d drop redundant phpdoc 2021-08-29 13:14:40 +02:00
thrillfall efa9280b91 we actively fix the guid so it is not asserting but ensuring 2021-08-29 13:14:40 +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 3a3038711f make retrievel episode actions without guid more explanatory 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
thrillfall 71c7b6e510 do not version release tarballs. we use github actions for that 2021-08-27 12:41:29 +02:00
thrillfall c7d5661ddf release 1.0.14 2021-08-24 23:41:53 +02:00
Jonathan Flueren e6637a0201 Use foreach for episode action strings, update variable names 2021-08-24 22:31:24 +02:00
Jonathan Flueren cd17ad5079 Increase code quality, use explode instead of strpos/substr
Makes code phpdoc conform and changes to a better readable EpisodeActions parsing.
2021-08-24 22:31:24 +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 d793b59637 release 1.0.13 2021-08-22 23:24:31 +02:00
thrillfall 0f6ab73cf2 narrow catch to nextcloud dbal exceptions 2021-08-22 23:23:02 +02:00
thrillfall 029c010e2f adapt table column length limit to episode actions like DOWNLOAD 2021-08-22 23:19:38 +02:00
thrillfall ebe4757b5e drop phpdoc 2021-08-22 22:57:33 +02:00
thrillfall a29aa2ccd5 extract parsing and storing episode action to separate class 2021-08-22 22:45:34 +02:00
thrillfall 83c18ad623 narrow catch to nextcloud dbal exceptions 2021-08-22 21:59:45 +02:00