Commit graph

226 commits

Author SHA1 Message Date
842e277d43 Implemented NCN API v1-2 folder list
- Fixes #2
- Also re-organized REST handling
2017-04-01 23:06:52 -04:00
dc9f5e545e Fix adding a feed
Also start on handling the v1-2 API
2017-04-01 15:42:10 -04:00
718c5a04dd Add authz verification to folder tests 2017-04-01 15:06:34 -04:00
1e1b848c62 Remove root field from folders table
The field is no longer required with the use of recursive common table expressions, and  presents a possible loss of referential integrity
2017-04-01 14:49:31 -04:00
a111bcc231 Folder get/set prop funcs and other changes
- Simplified folder removal; now properly relies on foreign keys for dependency resolution
- simplified *propertiesSet() methods by offloading input validation and query building to a generic function
- Implemented function to get the properties of a single folder (useful for internal use)
- Implemented a function to set the properties of a folder
2017-04-01 10:27:26 -04:00
2344911f78 Tests for removing folders 2017-03-31 18:48:24 -04:00
458eaac5c6 Tests for listing folders
- Fixed checking for existence of parent before listing
- Changed Result->getAll() to return an empty array rather than null for an empty result set
2017-03-31 17:42:28 -04:00
b68cea1188 Tests for adding folders 2017-03-31 15:27:59 -04:00
82e4838162 Re-organize Database tests
- Test files now consist entirely of traits:
 - General setup trait mocking User class and cleaning up
 - Driver trait to set up the database connection
 - Series trait containing tests for the series, independent of driver used
2017-03-31 13:24:00 -04:00
bc863ae935 Updated Database->updateFeeds()
• Added category updating in Database->updateFeeds()
• Made Database->updateFeeds() fail quietly when exceptions are
occurred, logging them in the database instead of failing.
• Changed the categories table name from arsse_tags to arsse_categories.
2017-03-30 09:42:37 -05:00
dbd735f1f3 Full set of tests for user-related Database funcs
- Fixed a few inconsistencies and bugs along the way
- User manager tests need some equivalent fleshing out
2017-03-29 23:41:05 -04:00
9338219a68 Improved UA String
• Added version constant in bootstrap
• Made the user agent string output information in a format similar to
a web browser with software version along with OS information and
architecture
2017-03-29 09:27:54 -05:00
6b2be0a877 Use Phake to create mock objects in tests 2017-03-28 20:30:40 -04:00
f37e6659c8 Merge branch 'master' of https://code.jkingweb.ca/jking/arsse 2017-03-28 19:58:24 -04:00
6bb129db2f Mock correct method of Lang 2017-03-28 19:58:20 -04:00
85800b111e New UA string
• Now Arsse exposes itself properly
• Conf->userAgentString exists to allow for specifying the string
through configuration
2017-03-28 18:19:12 -05:00
f902346b6c Eliminated passing of RuntimeData instances
- RuntimeData has now been replaced by a single static Data class
- The Data class has a load() method which fills the same role as the constructor of RuntimeData
- The static Lang class is now an instantiable class and is a member of Data
- All tests have been adjusted and pass
- The Exception tests no longer require convoluted workarounds: a simple mock  for Data::$l suffices; Lang tests also use a mock to prevent loops now instead of using a workaround
2017-03-28 18:50:00 -04:00
2b8aa75ee3 Row index is not a string 2017-03-28 10:31:49 -04:00
7236020b8b Changed "NewsSync" to "Arsse" 2017-03-27 23:12:12 -05:00
9d5dab249c Helper methods for testing Database class
May not actually work yet
2017-03-27 23:19:05 -04:00
b8f9b6070e Experimental method to remove a folder 2017-03-27 08:39:24 -04:00
ce0584e7f8 Added Feed Updating
• Started implementing feed updating (Database->updateFeeds())
• Moved hashing to the Feed object, now done when parsing
• Moved adding of articles to the database to its own method
(Database->articleAdd())
2017-03-26 15:16:15 -05:00
8c76c22d74 Implement retrieving folder list in Database 2017-03-24 22:39:18 -04:00
254ffe7b48 Don't enforce 100-character limit on folder names 2017-03-24 13:26:13 -04:00
8b50297e6d Complete tests for NCN version list
- Fixes #47
- Implemented an AbstractHandler class with a generic URL parser
2017-03-24 13:16:34 -04:00
25d9158171 Fix output of NCN version list
List is supposed to be contained in a JSON object, not a bare list
2017-03-19 21:54:28 -04:00
536fa5c4fd Implement NextCloud News version detection
- Improves #47
- Still needs wrapping to actually output to clients
2017-03-19 21:50:00 -04:00
20abd277eb Don't muck with test file for now 2017-03-18 22:32:16 -04:00
9a8def03c2 Fill in more of the REST handler.
Not yet functional.
2017-03-18 22:30:36 -04:00
3f61921b97 Added picoFeed wrapper
• Implemented a simple wrapper for picoFeed which fixes the id problems
and keeps error handling within its own class
• Updated Database.php to use the new class
• Replaced mentions of ownCloud with NextCloud in the schema
• Added hashes to schema for identification and change detection;
removed NextCloud hash and fingerprint; removed enclosure and category
hashes
2017-03-18 11:01:23 -05:00
b821d728e4 Add rest dependency; fix SQLite function def 2017-03-13 23:22:20 -04:00
6413d3a489 Re-order SQLite3 driver initialization
Should handle error reporting better
2017-03-13 19:13:06 -04:00
bb8af5a62c Added Custom Functions into Db/SQLite3/Driver
• Created Db/SQLite3/CustomFunctions to house the dateFormat custom
function and potentially others in the future.
• Fixed a typo in Db/SQLite3/Driver
2017-03-13 13:33:31 -05:00
8c268581fb Properly handle adding a folder
Also added test file for now
2017-03-09 22:41:11 -05:00
18c8076a0f Database update tests 2017-03-09 21:39:42 -05:00
6c16ba133c More database driver tests 2017-03-09 17:25:50 -05:00
689c1c77d0 Test for advisory locking 2017-03-09 17:14:26 -05:00
f0663e99c3 Add tests for transactions and savepoints
Existing code had subtle bugs; using increment and decrement operators actually makes things easier to understand (for once)
2017-03-09 16:36:33 -05:00
485400df2b Rename Result->get() to Result->getRow
It should be slightly clearer what it does
2017-03-09 15:01:18 -05:00
bdf3182305 Add result->lastId method; cleanup
- Result->lastId() added as MySQL and PostgreSQL have equivalent functionality
- Adjusted tests accordingly
- Cleaned up Database class to make use of this and getAll()
2017-03-09 14:48:42 -05:00
68f18e463c Use WITHOUT ROWID tables when useful
Slight optimization for SQLite for the 'settings' and 'users' tables
2017-03-09 10:15:28 -05:00
f0adf08b1e Add tests for type mismatches 2017-03-09 09:44:50 -05:00
95ee51563d First battery of SQLite driver tests 2017-03-08 22:16:35 -05:00
7f7d0cd1e7 All test for constraint violation exception 2017-03-08 13:59:20 -05:00
5ba38fc7aa Print ID in exception message 2017-03-08 12:31:45 -05:00
a3e2da1d36 Flesh out most database exceptions
- Fixes #46
- Some exception messages are tentative pending testing
2017-03-08 12:29:22 -05:00
7c1df71acd Make db throw specific exceptions
Needs testing and fleshing out; not all exception codes and messages have been defined
2017-03-08 09:55:16 -05:00
755c976aa4 Remove extraneous files 2017-03-08 08:21:48 -05:00
fa247b34f6 Reduce the number of database exception types 2017-03-08 08:19:42 -05:00
7687109132 Reorganize Db namespace; alter User ns to match 2017-03-07 18:01:13 -05:00