src/searching/builder/AlarmsSearchBuilder.js
'use strict';
import SearchWithSummaryBuilder from './SearchWithSummaryBuilder';
import FieldFinder from '../../util/searchingFields/FieldFinder';
export const TOKEN_URL = '$_token';
/**
* Defined a search over Alarms
* @example ogapi.alarmsSearchBuilder()
*/
export default class AlarmsSearchBuilder extends SearchWithSummaryBuilder {
/**
* @param {!InternalOpenGateAPI} parent - Instance of our InternalOpenGateAPI
*/
constructor(parent, fieldFinder = new FieldFinder(parent, '/alarms')) {
super(parent, { onDevices: '/devices', onSubscriptions: '/subscriptions' }, fieldFinder);
this._url = '/entities' + TOKEN_URL + '/alarms';
}
_buildUrl() {
for (let route in this._routes) {
if (this._builderParams[route]) {
this._url = this._url.replace(TOKEN_URL, this._routes[route]);
}
}
this._url = this._url.replace(TOKEN_URL, '');
return super._buildUrl();
}
/**
* The search request will have this group by
* @example
* @param {!(object)} group
* @return {AlarmsSearchBuilder}
*/
group(group) {
this._builderParams.group = (group || {});
return this;
}
}