Commit Graph

52 Commits

Author SHA1 Message Date
Matthias Gutjahr
7cc459a46d Add @method docblock tags for magic methods 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
Jonathan Flueren
52b6d8e8a2 Add timestamp to subscription change response 2021-10-17 19:48:13 +02:00
thrillfall
76ee383ea4 remove unused VersionController 2021-10-13 22:54:15 +02:00
Jonathan Flueren
dae9f2a9ec Change return value of migration to number of affected rows 2021-10-13 22:32:06 +02:00
Jonathan Flueren
6dd54198f6 Store epoch to correct entry, fix uninitialized variable 2021-10-13 22:32:06 +02:00
Jonathan Flueren
77571feb40 Update tests to new upload format 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
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
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
9271a5063e ensure dbal return types for mysql and 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
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
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
3a3038711f make retrievel episode actions without guid more explanatory 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
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
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
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
thrillfall
57f0691b4c nextcloud < v22.0 throws UniqueConstraintViolationException. This can be reverted after v21 reaches end of support 2021-08-21 20:20:24 +02:00
thrillfall
ab155ca94a fix inspection warnings 2021-08-17 19:41:54 +02:00
Jonathan Flueren
20920c5d84 Stop creating unnecessary log file in Nextcloud base folder
EpisodeActionReader created (or appended to) file actionreader.log in Nextcloud base folder (with index.php & occ). This concluded in a Nextcloud warning about "additional files in Nextcloud folder" in the self-check feature.
2021-08-16 14:20:21 +02:00
Jonathan Flueren
9ac7758e87 Correct empty timestamp check in createDateTimeFromTimestamp
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.
2021-08-12 15:27:58 +02:00
Jonathan Flueren
e438ae94dd Revert change of timestamp format
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.
2021-07-24 20:11:42 +02:00
Jonathan Flueren
5a46233e46 Update EpisodeActionController.php
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.
2021-07-24 19:06:14 +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
thrillfall
b09210655e unique key violation exception is thrown as \Exception thus we need to check the reason 2021-07-11 22:52:30 +02:00
thrillfall
932fb8cd46 allow null/false value for boolean field 2021-07-08 19:29:40 +02:00
thrillfall
4af08367fc remove redundant unique modifier since we already have unique index on that column 2021-07-08 12:37:55 +02:00
thrillfall
6a39f2d814 use correct table name in models 2021-07-06 21:47:06 +02:00
thrillfall
a810fcc8bc shorten to long table names 2021-07-06 14:23:25 +02:00