Ghost/core/server/models/plugins/search.js
Kevin Ansfield 35f8042d7b
Added ?search= param to Admin API members endpoint (#11854)
no issue

- adds `search` bookshelf plugin that calls out to an optional `searchQuery()` method on individual models to apply model-specific SQL conditions to queries
- updated the base model's `findPage()` method to use the search plugin within `findPage` calls
- added a `searchQuery` method to the `member` model that performs a basic `LIKE %query%` for both `name` and `email` columns
- allowed the `?search=` parameter to pass through in the `options` object for member browse requests
2020-05-28 10:14:02 +01:00

19 lines
480 B
JavaScript

const searchPlugin = function searchPlugin(Bookshelf) {
const Model = Bookshelf.Model.extend({
// override this on the model itself
searchQuery() {},
applySearchQuery: function applySearchQuery(options) {
if (options.search) {
this.query((qb) => {
this.searchQuery(qb, options.search);
});
}
}
});
Bookshelf.Model = Model;
};
module.exports = searchPlugin;