Better API to filter books in a library.

Instead of having a single method `listBooksIds` that tries to be
exhaustive about all the filter and sort option, split the method in
two separated methods `filter` and `sort`.

The `filter` method takes a `Filter` object that represent on what we are
filtering. This object has to be construct before calling `filter`.

```cpp
Filter filter;
filter.query("Astring");
filter.acceptTags({"nopic"});
// return all book in eng and with "Astring" in the tile or description".
library.filter(filter);
//equivalent to
library.listBooksIds(ALL, UNSORTED, "Astring", "", "", "", {"nopic"});
// or better
library.filter(Filter().query("Astring").acceptTags({"nopic"}));
```

The method `listBooksIds` has been marked as deprecated.

Add a small test on the library.
This commit is contained in:
Matthieu Gautier
2019-06-25 15:37:11 +02:00
parent 21592af8b2
commit 31c9375a3a
4 changed files with 590 additions and 100 deletions

View File

@ -1,7 +1,8 @@
tests = [
'parseUrl'
'parseUrl',
'library'
]