J. King
5c5a5a4886
Appease PostgreSQL's max() aggregate
2018-11-29 14:36:34 -05:00
J. King
527ecee393
Code coverage fixes
2018-11-29 13:56:15 -05:00
J. King
4a1c23ba45
Munge PostgreSQL queries instead of adding explicit casts
...
PDO does not adequately inform PostgreSQL of a parameter's type, so type
casts are required. Rather than adding these to each query manually, the
queries are instead processed to add type hints automatically.
Unfortunately the queries are processed rather naively; question-mark
characters in string constants, identifiers, regex patterns, or geometry
operators will break things spectacularly.
2018-11-29 13:45:37 -05:00
J. King
4c8d8f1a52
Provide PostgreSQL with an empty-set query for IN() clauses
...
Also satisfy PostgreSQL with some explicit casts
2018-11-28 17:18:33 -05:00
J. King
dd4f22e04e
Avoid use of reserved SQL word "user"
2018-11-28 14:21:36 -05:00
J. King
8dfedd30ef
Test PostgreSQL schema upgrade
...
This was in fact buggy due to the schema version check causing an error
2018-11-28 10:46:23 -05:00
J. King
93af381436
Test setting of schema name
2018-11-27 17:39:39 -05:00
J. King
1414f8979c
Fix savepoint handling and locking in PostgreSQL driver
2018-11-27 17:16:00 -05:00
J. King
736a8c9d0c
Improved timeout handling for both SQlite and PostgreSQL
2018-11-22 13:30:13 -05:00
J. King
c0c4810662
Nominally complete PostgreSQL driver
...
Connection error handling as well as uprade error handling still need
to be implemented.
2018-11-21 11:06:12 -05:00
J. King
84b4cb7465
Enable PostgreSQL statement testing
...
Tests involving binary data are skipped for now
2018-11-20 16:32:18 -05:00
J. King
d52af6db5a
PostgreSQL fixes
...
Errors were not correctly throwing exceptions
For the sake of SQLite compatibility booleans should be bound as
integers in PDO
2018-11-20 15:48:03 -05:00
J. King
e2b6cb8360
Remove PicoFeed-related FIXMEs
...
PicoFeed will never be fixed, so they are not helpful
2018-11-20 15:46:22 -05:00
J. King
b5733b070c
Clean up statement tests
...
PostgreSQL tests are suppressed for now, but most pass.
2018-11-20 15:45:20 -05:00
J. King
e30d82fbaa
Correct signature
2018-11-16 21:35:05 -05:00
J. King
edfae438fa
Refine pg connection strings
2018-11-16 21:20:54 -05:00
J. King
796315c00c
Basic stub of PDO-base PostgreSQL driver
2018-11-10 00:02:38 -05:00
J. King
3b3b810f10
Replicate some unspecified NCNv1 behaviour, and document the rest
...
See #139 for list
Closes #139
Closes #140
Closes #141
2018-11-07 13:01:46 -05:00
J. King
1dcbb56077
Changelog and documentation updates
2018-11-07 10:24:35 -05:00
J. King
63ae6fb703
Merge remote-tracking branch 'remotes/origin/user-rewrite'
2018-11-06 16:36:50 -05:00
J. King
3a4100576a
Merge remote-tracking branch 'remotes/origin/cli-overhaul'
2018-11-06 16:36:35 -05:00
J. King
39134f5f7e
Rest of CLI tests
2018-11-06 16:35:33 -05:00
J. King
efac62f0e4
Add missing return type hints where possible
2018-11-06 12:50:26 -05:00
J. King
9e6f0460c2
Ensure the Lang class always exists when throwing exceptions
2018-11-06 12:48:31 -05:00
J. King
ba8e208d79
Partial CLI tests
2018-11-06 12:32:28 -05:00
J. King
1a8acdf03f
Fix early exceptions
2018-11-06 09:04:51 -05:00
J. King
9428d7468a
Add more user management functionality to the CLI
2018-11-05 09:08:50 -05:00
J. King
a8cc9a4780
Tests for internal user driver; closes #50
2018-11-04 12:06:30 -05:00
J. King
5f775bef7a
Appease phpdbg coverage bug
2018-11-03 13:49:02 -04:00
J. King
1ac85df46b
Last set of tests for User class
2018-11-03 13:26:22 -04:00
J. King
ffa7bd5a5d
Fix error in previous commit
2018-11-02 12:01:03 -04:00
J. King
931fe3b585
Move password generation to the User class
...
This allows user drivers which wish to generate their own passwords to
do so, and those which do not to defer to the built-in generator
2018-11-02 11:52:55 -04:00
J. King
31cdf313a4
Add missing return type hints where possible
2018-11-02 11:47:10 -04:00
J. King
898533bde5
More simplification
...
Authentication is now used as the primary point of synchronization
between the internal database and any external database
2018-11-02 10:01:49 -04:00
J. King
40d679844b
Ensure the Lang class always exists when throwing exceptions
2018-10-31 14:32:11 -04:00
J. King
27edcddc9b
Simplify NCNv1 userStatus call
2018-10-28 13:59:09 -04:00
J. King
057d72c816
Remove the distinction between internal and external user functionality
2018-10-28 13:50:57 -04:00
J. King
11747c93fd
Strip out unused user management functionality
...
Tests have been removed as well; new tests are forthcoming
2018-10-28 10:59:17 -04:00
J. King
0be9dcb5a8
Update dependencies
2018-10-26 16:27:18 -04:00
J. King
f64f0c6a22
Whitespace cleanup
2018-10-26 14:58:04 -04:00
J. King
1aa556cf12
Add HTTP authentication support to TTRSS; fixes #133
...
Also bump version to 0.4.0
2018-10-26 14:40:20 -04:00
J. King
edbfb12d17
Improve coverage slightly
...
Improves #66
2018-08-17 08:35:13 -04:00
J. King
e4d64424c7
Make new bugfix release
2018-07-22 12:30:44 -04:00
J. King
a92bad1bc8
Correctly load configuration
2018-06-18 10:09:43 -04:00
J. King
c7c5f48066
Fix notice
2018-01-24 23:25:54 -05:00
J. King
cbc9491f75
CS fixes and version bump
2018-01-12 09:48:33 -05:00
J. King
34b508171b
Merge CORS branch
2018-01-12 09:41:13 -05:00
J. King
1a4989e1e0
Merge PDO branch
2018-01-12 09:28:58 -05:00
J. King
aa57227097
Use PSR-7 for authentication; fixes #53
2018-01-11 15:48:29 -05:00
J. King
90dfeb727a
Implement CORS; fixes #126
2018-01-09 12:31:40 -05:00
J. King
0ec0a5b085
Ensure the request method is always uppercased
2018-01-08 17:11:38 -05:00
J. King
4b53c5e8b3
Tests and fixes for REST class; fixes #53 ; improves #66
2018-01-07 12:59:10 -05:00
J. King
3fa2d38f31
Initial rewrite of REST class; needs more testing, but should be functional
...
- improves #53
- improves #66
2018-01-06 12:02:45 -05:00
J. King
890f9b07d4
Replace Resquest objects with PSR-7 request messages; improves #53
2018-01-04 23:08:53 -05:00
J. King
9ad0b47201
Add Target class to manipulate request traget URL parts
...
The query part is not parsed for now because PSR-7 request objects/PHP take care of that parsing for us.
2018-01-04 14:06:45 -05:00
J. King
9eadd602bd
Replace Response objects with PSR-7 response messages; improves #53
...
While the test suite passes, this commit yields a broken server: replacing ad hoc request objectss with PSR-7 ones is still required, as is emission of PSR-7 responses. Both will come in subsequent commits, with tests
Diactoros was chosen specifically because it includes facilities for emitting responses, something which is awkward to test. The end of this refactoring should see both the Response and Request classes disappear, and the general REST class fully covered (as well as any speculative additions to AbstractHanlder).
2018-01-03 23:13:08 -05:00
J. King
27caf147df
Changes to Date helper class
...
- Changed 'transform' method to use ValueInfo throughout. This fixes a number of obscure bugs
- Changed the 'add' and 'sub' methods to default to "now" rather than null. This means null passes through rather than being interpreted as the current time, to be consistent with other date tools
- Also changed the 'add' and 'sub' methods so that they operate correctly with invalid date strings
- Added tests for the class; improves #66
- Modified TTRSS tests because the "iso8601" format string in ValueInfo is different from Date's older format
2018-01-02 16:53:38 -05:00
J. King
89bfc23d32
Standardize date normalization to immutables
...
Also move date formats to the ValueInfo class
Standardizing on immutables avoids any possible ambiguity in the API of the resultant value, as well as any ambiguity as to whether a DateTime output instance is the same instance or a clone (they had been clones)
2018-01-02 16:27:58 -05:00
J. King
87faededc6
Backport PDO changes to ValueInfo
2018-01-02 10:29:24 -05:00
J. King
ddf55e0665
Change session lifetimes to more closely match TTRSS
...
At least some clients seem to expect the default timeout of one day.
2018-01-01 12:31:42 -05:00
J. King
77793f95cb
Controller fixes for PDO databases; fixes #72
2017-12-31 17:24:40 -05:00
J. King
ba0aeab7ec
Make SQL statement type conversion use ValueInfo normalizer
...
This sees the addition of a dateOutFormat parameter to ValueInfo::normalize(), as well as a general simplification of how parameter binding works.
Some value type-casting results are slightly different, but this simply makes SQL statement objects consistent with the rest of the system.
2017-12-30 18:50:56 -05:00
J. King
bc9fcb975f
Change "rebind" to "retype" to better reflect what actually happens
2017-12-30 17:04:21 -05:00
J. King
bc9ffa0e17
Rewrite SQLite 3 type binding tests
2017-12-30 15:59:45 -05:00
J. King
39cad91b78
CS fixes
2017-12-22 11:51:58 -05:00
J. King
4bada691e9
PDO tests and fixes; improves #72
2017-12-19 19:08:08 -05:00
J. King
ad6a09ffa1
Partially tested pdo_sqlite driver; improves #72
2017-12-19 17:15:05 -05:00
J. King
ef75b5e9ab
SQLite driver tweaks
2017-12-19 12:11:49 -05:00
J. King
7ca0f4e877
Make the SQLite3 driver more generic
...
The changes in this commit should make it more practical to:
- Allow the driver to decide for itself whether to try creating a PDO object if its own requirements are not met
- Have any driver use a generic schema update procedure
- Use the same constructor for native and PDO SQLite
2017-12-18 18:29:32 -05:00
J. King
73c8583744
Remove reliance on xdebug; fixes #113
...
Code coverage information is now gathered via phpdbg (a separate executable) by if available rather than xdebug, as the latter is hard to turn on and off.
A "test:quick" task has also been added to Robo, which excludes 31 tests which together account for almost two thirds of the test run time. This should pave the way for testing to be added as a commit hook for Git.
2017-12-17 10:27:34 -05:00
Dustin Wilson
b8ed7c6bf8
Added missing static keyword to Misc\ValueInfo::normalize()
2017-12-10 11:16:06 -06:00
J. King
f100cab558
Version bump
2017-12-07 18:24:35 -05:00
J. King
44ae0ba29b
Collate synthetic subscription title column; fixes #127
2017-12-07 18:17:16 -05:00
J. King
0b3b3cb49c
Use SQLite nocase collation; improves #127
2017-12-07 18:05:34 -05:00
J. King
79f9808f1f
CS fixes
2017-12-07 15:18:25 -05:00
J. King
8d0dd15c8a
Remove use of SQLite IS operator; fixes #120
2017-12-06 22:26:06 -05:00
J. King
84bd624e94
Properly fix getCounters
2017-12-06 19:16:35 -05:00
J. King
af42bceac0
Do not omit zero-unread items in TTRSS getCounter operation
...
Though TTRSS itself (usually) omits items that have a counter of zero, at least one client takes this to mean the last-seen counter is unchanged, rather than zero.
2017-12-06 15:50:40 -05:00
J. King
adece521a9
TTRSS: Correct mark toggling; fixes #132
2017-12-01 22:13:27 -05:00
J. King
821bb22a72
SQLite concurrency tweaks; fixes #131
2017-12-01 16:37:58 -05:00
J. King
1a9628493e
Fix TTRSS path handling
2017-11-30 19:39:46 -05:00
J. King
9ac2421fe3
TTRSS: accept base64 passwords; fixes #130
2017-11-30 19:31:40 -05:00
J. King
3ffcd6dd97
Make TTRSS handler reject erroneous paths
2017-11-30 17:54:56 -05:00
J. King
a404d4d108
NCNv1: Be explicit about types; fixes #129
...
This is actually mandated by the specification: a change in data type requires a protocol version number change
2017-11-30 14:47:39 -05:00
J. King
4d4e8e3580
TTRSS: correct feed renaming; fixes #128
2017-11-30 12:49:23 -05:00
J. King
760b13993b
Version bump
2017-11-29 23:45:27 -05:00
J. King
22cdc8916d
Documentation tweaks and CS fixes
2017-11-29 22:42:50 -05:00
J. King
5cd7268c0a
Added incorrectDbCharset to NCNv1 server status
...
This has been exposed since version 11.0.3, released before our version 0.1.0, but after implementation work had begun
2017-11-29 18:14:59 -05:00
J. King
40944a9b58
Merge remote-tracking branch 'remotes/origin/ttrss'
2017-11-29 16:05:23 -05:00
J. King
3d958547a5
Implement OPTIONS requests for NCNv1; fixes #107
2017-11-29 15:28:33 -05:00
J. King
e1f1c8b859
Refactoring
2017-11-29 13:41:26 -05:00
J. King
2bbc83aeb0
Tweak
2017-11-29 12:15:37 -05:00
J. King
40e9b7f986
Changed all TTRSS outputs to match original types exactly; improves #125
2017-11-29 11:47:10 -05:00
J. King
b4890eaced
Make TTRSS tests consider data types; improves #125
2017-11-29 09:22:59 -05:00
J. King
b242c70968
Refactor of NCNv1 in anticipation of OPTIONS requests
2017-11-28 13:46:07 -05:00
J. King
91165cdd0d
Fix breakage caused by last comit
2017-11-27 15:05:50 -05:00
J. King
a0bf7c16bd
Fix sorting
...
Also avoid sorting when it's not needed by queries
2017-11-27 14:11:35 -05:00
J. King
999f255203
Fixes for bugs uncovered during client testing
2017-11-27 13:05:08 -05:00
J. King
4f85739d20
Change default SQLite timeout to 60s; improves #67
...
Real-world use suggests 5s is inadequate. Rather than bumping up small amounts as things break, it makes more sense to wait a very long time and investigate possible long-term solutions later, once logging is implemented.
2017-11-25 17:44:34 -05:00
J. King
05620602bf
Tweak
2017-11-23 18:12:18 -05:00