Methods
# protected _applyFilters(query, filters) → {Object}
Apply icon-specific filters to cursor pagination query.
Handles search facets including:
- price (free, premium, all)
- tagIds (array of tag IDs)
- styleId (design style)
- userId (creator filter)
- setId (icon set filter)
- familyId (family of sets)
- searchTerm (text search on name)
- iconIds (specific icon IDs, e.g. from Elasticsearch - unordered)
- iconIdsOrder (ordered icon IDs from Elasticsearch for relevance sorting)
- isActive (publication status)
- isDeleted (deletion status)
Parameters:
| Name | Type | Description |
|---|---|---|
query |
Object
|
Objection.js query builder |
filters |
Object
|
Filter criteria |
Modified query
Object
Examples
// Called internally by cursorPaginate()
query = this._applyFilters(query, {
price: 'free',
tagIds: [1, 2, 3],
styleId: 5
});
// With Elasticsearch relevance (ordered IDs)
const esRankedIds = [1001, 2003, 5005, 3002];
query = this._applyFilters(query, {
iconIdsOrder: esRankedIds, // Elasticsearch ranked order
price: 'free'
});
# findAllActive(options) → {Promise.<Array.<IconEntity>>}
Find all active (published) icons.
Parameters:
| Name | Type | Description |
|---|---|---|
options |
Object
|
Query options |
Promise.<Array.<IconEntity>>
# findBySetId(setId, options) → {Promise.<Array.<IconEntity>>}
Find all icons in a set.
Parameters:
| Name | Type | Description |
|---|---|---|
setId |
number
|
Set ID |
options |
Object
|
Query options |
Promise.<Array.<IconEntity>>
# findByUniqueId(uniqueId, options) → {Promise.<(IconEntity|null)>}
Find icon by unique identifier.
Parameters:
| Name | Type | Description |
|---|---|---|
uniqueId |
string
|
Icon unique ID |
options |
Object
|
Query options |
Promise.<(IconEntity|null)>