Home Manual Reference Source Test Repository

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;
    }
}