blob: 265eb112419c9ccab94937f9fc9758b959eff605 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Commit, ActionTree, MutationTree } from 'vuex';
import * as types from '@/store/mutation-types';
import { AxiosResponse } from 'axios';
import graph from '@/graph';
import { Alarm, AlarmParams } from '@/types/alarm';
export interface State {
alarmService: Alarm[];
total: number;
}
const initState: State = {
alarmService: [],
total: 0,
};
// getters
const getters = {};
// mutations
const mutations: MutationTree<State> = {
[types.SET_ALARM](state: State, data: { items: Alarm[]; total: number }): void {
state.alarmService = data.items;
state.total = data.total;
},
[types.CLEAR_ALARM](state: State): void {
state.alarmService = [];
state.total = 0;
},
};
// actions
const actions: ActionTree<State, any> = {
GET_ALARM(context: { commit: Commit; state: State }, params: AlarmParams): Promise<void> {
return graph
.query('queryAlarms')
.params(params)
.then((res: AxiosResponse<any>) => {
if (res.data.data.getAlarm.items) {
context.commit(types.SET_ALARM, res.data.data.getAlarm);
}
});
},
CLEAR_ALARM(context: { commit: Commit; state: State }): void {
context.commit(types.CLEAR_ALARM);
},
};
export default {
namespaced: true,
state: initState,
getters,
actions,
mutations,
};