Commit Graph

25 Commits

Author SHA1 Message Date
Elf M. Sternberg 1c948e41f3 REFACTOR Moving around some code.
This places the parser in its own submodule so that we can be ready
for the next two or three phases of textual analysis.  Right now we
only scan for deliberate references, but the plan is to also scan
for explicit but incidental references, and then to go futher and
go the full tf-idf on the source.
2020-11-12 15:14:42 -08:00
Elf M. Sternberg e3fe863235 REFACTOR A solid final draft. 2020-11-12 14:30:39 -08:00
Elf M. Sternberg 8a83d802d3 REFACTOR Kasten -> Page
I don't speak German, and I kept getting confused about which was
which.  Let's just call it what it is, and worry about presentation
later.
2020-11-12 08:48:57 -08:00
Elf M. Sternberg ec81083aa9 REFACTOR Moved the 'store' into its own module. 2020-11-10 12:52:44 -08:00
Elf M. Sternberg 83d5858a45 Refinements to the tree structure. 2020-11-05 08:30:02 -08:00
Elf M. Sternberg 9337b98ad3 REFACTOR Again! note->note and note->kasten are now separate tables
This was getting semantically confusing, so I decided to short
circuit the whole mess by separating the two.  The results are
promising.  It does mean that deleting a note means traversing
two tables to clean out all the cruft, which is *sigh*, but it
also means that the tree is stored in one table and the graph in
another, giving us a much better separation of concerns down at
the SQL layer.
2020-11-04 17:53:25 -08:00
Elf M. Sternberg 1bbe8c1ee8 Completely revamped the internal structures.
This removes the page/note dichotomy, since it wasn't working
as well as I'd hoped.  The discipline required now is higher
where the data store layer is concerned, but the actual structures
are smaller and more efficient.
2020-11-04 12:54:17 -08:00
Elf M. Sternberg 77ca6d0304 A reset for the single table case. 2020-11-02 18:32:01 -08:00
Elf M. Sternberg dd61f8c0c2 Working on the API that translates the simple vector into a
tree-like structure suitable to RESTification.
2020-10-28 18:22:43 -07:00
Elf M. Sternberg 8c8352259a Hey, all the (current) tests are passing. That's... kinda nifty. 2020-10-26 19:49:38 -07:00
Elf M. Sternberg 72fb3b11ee FEAT Delete & Update note is now complete.
Well, as complete as it could be without proper automated testing.
I think there'll be some more testing soon, as it doesn't make sense
for it to hang out so blatantly like this.

Both a fmt and clippy pass have shaken all the lint off, and right
now it builds without warnings or lintings.  Wheee!
2020-10-26 18:54:56 -07:00
Elf M. Sternberg 4e04bb47d5 FEAT: Reference parser is now working.
It's probably not the fastest thing in the world, but
it's going to be enough for now.
2020-10-13 17:23:24 -07:00
Elf M. Sternberg 1c0f3abd6c FEAT: Move note now works. 2020-10-12 20:43:49 -07:00
Elf M. Sternberg fd4f39b5b8 It compiles. Whether it works is still ¯\_(ツ)_/¯ 2020-10-09 09:57:43 -07:00
Elf M. Sternberg 1b8e1c067d derive_builder pattern is applied successfully.
This is mostly an exercise to understand the derive_builder pattern.
It required a few tips to get it working, but in the end, it's
actually what I want.

I also learned a lot about how the Executor pattern, the Results<> object,
error mapping, and futures interact in this code.  This is going to be
incredibly useful long-term, as long as I still keep this project "live"
in my head.
2020-10-08 12:18:08 -07:00
Elf M. Sternberg e0c463f9fc Not working. 2020-10-06 08:01:25 -07:00
Elf M. Sternberg 0f5d15ad14 FEAT Can update a raw note. 2020-09-30 09:17:37 -07:00
Elf M. Sternberg 1565fef001 REFACTOR: Dry'ing out the insert_new_note feature.
Since both `insert_page` and `insert_note` need to insert a note,
having that code twice in the same block was annoying, especially
since discovering that my oh-so-clever use of `include_str!`
precludes me from using the `query!` macros, which want the strings
included *before* doing analysis.

All that wrestling with the Transaction type turned out to be much
simpler when I was able to just devolve it into an Executor.
2020-09-30 08:53:45 -07:00
Elf M. Sternberg 75809d821d FEAT: Can save a new page. Automagically includes its root note. 2020-09-30 07:37:18 -07:00
Elf M. Sternberg 6bc8b0e911 FEAT Can now retrieve and individual date by public ID. 2020-09-29 18:24:34 -07:00
Elf M. Sternberg 2e08b02def FEAT Enabled chrono datetimes in the database. 2020-09-29 14:27:11 -07:00
Elf M. Sternberg 884822a230 DOC Rustfmt works.
TEST Added test to reassure myself that Arc copies of the storage pool
     are working as planned.
2020-09-29 08:08:30 -07:00
Elf M. Sternberg 71dfc479d8 FEAT Can get a raw note.
TEST Asserts a non-existent raw note is non-existent.
2020-09-29 07:44:43 -07:00
Elf M. Sternberg 8ee71c76a3 FEAT Can initialize the database and fail to retrieve a page.
In the great tradition of TPP, this is a win.  We've gone through
the test driven development, and there is so much *learning* here:

- tokio::test NEEDS the threaded_schedular feature to report errors correctly
- thiserror can't do enum variants the way I expected
- Different error types for different returns is not kosher
- Serde's configuration NEEDS a type, such as JSON, to work,
- Rust has include_str!(), to embed text in a Rust program from an external source
- SQLX is still a pain, but it's managable.
2020-09-28 17:33:43 -07:00
Elf M. Sternberg 2bd7c0aaad DOC Phase one committed to the project, the basic layout of the backstore.
Just describing my vague TPP-level commitments to the project.
2020-09-27 05:35:37 -07:00