121 lines
4.1 KiB
Go
121 lines
4.1 KiB
Go
|
/*******************************************************************************
|
||
|
* Copyright 2017.
|
||
|
*
|
||
|
* Licensed 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.
|
||
|
*******************************************************************************/
|
||
|
|
||
|
package dtos
|
||
|
|
||
|
type GetRuleInfoResponse struct {
|
||
|
Triggered bool `json:"triggered"`
|
||
|
Id string `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
Sql string `json:"sql"`
|
||
|
Actions []map[string]interface{} `json:"actions"`
|
||
|
Options map[string]interface{} `json:"options"`
|
||
|
}
|
||
|
|
||
|
type GetRuleStatusResponse struct {
|
||
|
Status string `json:"status"`
|
||
|
}
|
||
|
|
||
|
type CreateRule struct {
|
||
|
Triggered bool `json:"triggered"`
|
||
|
Id string `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
Sql string `json:"sql"`
|
||
|
Actions []Actions `json:"actions"`
|
||
|
}
|
||
|
|
||
|
type Actions struct {
|
||
|
Rest map[string]interface{} `json:"rest,omitempty"`
|
||
|
MQTT map[string]interface{} `json:"mqtt,omitempty"`
|
||
|
Kafka map[string]interface{} `json:"kafka,omitempty"`
|
||
|
Zmq map[string]interface{} `json:"zmq,omitempty"`
|
||
|
Redis map[string]interface{} `json:"redis,omitempty"`
|
||
|
Influx map[string]interface{} `json:"influx,omitempty"`
|
||
|
Tdengine map[string]interface{} `json:"tdengine,omitempty"`
|
||
|
}
|
||
|
|
||
|
type Rest struct {
|
||
|
Method string `json:"method,omitempty"`
|
||
|
Url string `json:"url,omitempty"`
|
||
|
BodyType string `json:"bodyType,omitempty"`
|
||
|
Timeout int `json:"timeout,omitempty"`
|
||
|
RunAsync bool `json:"runAsync,omitempty"`
|
||
|
OmitIfEmpty bool `json:"omitIfEmpty,omitempty"`
|
||
|
SendSingle bool `json:"sendSingle,omitempty"`
|
||
|
BufferLength int `json:"bufferLength,omitempty"`
|
||
|
EnableCache bool `json:"enableCache,omitempty"`
|
||
|
Format string `json:"format,omitempty"`
|
||
|
}
|
||
|
|
||
|
type MQTT struct {
|
||
|
Server string `json:"server,omitempty"`
|
||
|
Topic string `json:"topic,omitempty"`
|
||
|
ClientId string `json:"clientId,omitempty"`
|
||
|
ProtocolVersion string `json:"protocolVersion,omitempty"`
|
||
|
Qos int `json:"qos,omitempty"`
|
||
|
Username string `json:"username,omitempty"`
|
||
|
Password string `json:"password,omitempty"`
|
||
|
CertificationPath string `json:"certificationPath,omitempty"`
|
||
|
PrivateKeyPath string `json:"privateKeyPath,omitempty"`
|
||
|
RootCaPath string `json:"rootCaPath,omitempty"`
|
||
|
InsecureSkipVerify string `json:"insecureSkipVerify,omitempty"`
|
||
|
Retained bool `json:"retained,omitempty"`
|
||
|
//compression string `json:"compression"`
|
||
|
}
|
||
|
|
||
|
func (b CreateRule) BuildCreateRuleParam(actions []Actions, ruleId, sql string) CreateRule {
|
||
|
b.Triggered = false
|
||
|
b.Id = ruleId
|
||
|
b.Name = ruleId
|
||
|
b.Sql = sql
|
||
|
b.Actions = actions
|
||
|
return b
|
||
|
}
|
||
|
|
||
|
func GetRuleAlertEkuiperActions(actionUrl string) []Actions {
|
||
|
var a []Actions
|
||
|
rest := make(map[string]interface{})
|
||
|
rest["method"] = "POST"
|
||
|
rest["url"] = "http://hummingbird-core:58081" + "/api/v1/ekuiper/alert"
|
||
|
rest["bodyType"] = "json"
|
||
|
rest["timeout"] = 5000
|
||
|
rest["runAsync"] = false
|
||
|
rest["omitIfEmpty"] = false
|
||
|
rest["sendSingle"] = true
|
||
|
rest["enableCache"] = false
|
||
|
rest["format"] = "json"
|
||
|
a = append(a, Actions{
|
||
|
Rest: rest,
|
||
|
})
|
||
|
return a
|
||
|
}
|
||
|
|
||
|
func GetRuleSceneEkuiperActions(actionUrl string) []Actions {
|
||
|
var a []Actions
|
||
|
rest := make(map[string]interface{})
|
||
|
rest["method"] = "POST"
|
||
|
rest["url"] = actionUrl + "/api/v1/ekuiper/scene"
|
||
|
rest["bodyType"] = "json"
|
||
|
rest["timeout"] = 5000
|
||
|
rest["runAsync"] = false
|
||
|
rest["omitIfEmpty"] = false
|
||
|
rest["sendSingle"] = true
|
||
|
rest["enableCache"] = false
|
||
|
rest["format"] = "json"
|
||
|
a = append(a, Actions{
|
||
|
Rest: rest,
|
||
|
})
|
||
|
return a
|
||
|
}
|