115 lines
3.7 KiB
Go
115 lines
3.7 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
|
||
|
|
||
|
import (
|
||
|
"github.com/winc-link/hummingbird/internal/models"
|
||
|
)
|
||
|
|
||
|
type RuleEngineRequest struct {
|
||
|
Name string `json:"name"` //名字
|
||
|
Description string `json:"description"` //描述
|
||
|
Filter Filter `json:"filter"`
|
||
|
DataResourceId string `json:"data_resource_id"`
|
||
|
}
|
||
|
|
||
|
func (r RuleEngineRequest) BuildEkuiperSql() string {
|
||
|
return r.Filter.Sql
|
||
|
}
|
||
|
|
||
|
type Filter struct {
|
||
|
MessageSource string `json:"message_source"`
|
||
|
SelectName string `json:"select_name"`
|
||
|
Condition string `json:"condition"`
|
||
|
Sql string `json:"sql"`
|
||
|
}
|
||
|
|
||
|
type RuleEngineUpdateRequest struct {
|
||
|
Id string `json:"id"`
|
||
|
Name *string `json:"name"` //名字
|
||
|
Description *string `json:"description"` //描述
|
||
|
Filter *Filter `json:"filter"`
|
||
|
DataResourceId *string `json:"data_resource_id"`
|
||
|
}
|
||
|
|
||
|
func ReplaceRuleEngineModelFields(ds *models.RuleEngine, patch RuleEngineUpdateRequest) {
|
||
|
if patch.Name != nil {
|
||
|
ds.Name = *patch.Name
|
||
|
}
|
||
|
if patch.Description != nil {
|
||
|
ds.Description = *patch.Description
|
||
|
}
|
||
|
if patch.Filter != nil {
|
||
|
ds.Filter = models.Filter(*patch.Filter)
|
||
|
}
|
||
|
if patch.DataResourceId != nil {
|
||
|
ds.DataResourceId = *patch.DataResourceId
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
func (r RuleEngineUpdateRequest) BuildEkuiperSql() string {
|
||
|
return r.Filter.Sql
|
||
|
}
|
||
|
|
||
|
type RuleEngineFieldUpdateRequest struct {
|
||
|
Id string `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
//AlertLevel constants.AlertLevel `json:"alert_level"`
|
||
|
Description string `json:"description"`
|
||
|
}
|
||
|
|
||
|
type RuleEngineResponse struct {
|
||
|
Id string `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
Description string `json:"description"`
|
||
|
Filter Filter `json:"filter"`
|
||
|
Created int64 `json:"created"`
|
||
|
DataResourceId string `json:"data_resource_id"`
|
||
|
DataResource DataResourceInfo `json:"dataResource"`
|
||
|
Modified int64 `json:"modified"`
|
||
|
}
|
||
|
|
||
|
type RuleEngineSearchQueryRequest struct {
|
||
|
BaseSearchConditionQuery `schema:",inline"`
|
||
|
Name string `schema:"name,omitempty"`
|
||
|
Status string `schema:"status,omitempty"`
|
||
|
}
|
||
|
|
||
|
type RuleEngineSearchQueryResponse struct {
|
||
|
Id string `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
Description string `json:"description"`
|
||
|
Created int64 `json:"created"`
|
||
|
Status string `json:"status"`
|
||
|
ResourceType string `json:"resource_type"`
|
||
|
DataResource DataResourceInfo `json:"dataResource"`
|
||
|
}
|
||
|
|
||
|
func RuleEngineSearchQueryResponseFromModel(p models.RuleEngine) RuleEngineSearchQueryResponse {
|
||
|
var dataResource DataResourceInfo
|
||
|
dataResource.Name = p.DataResource.Name
|
||
|
dataResource.Type = string(p.DataResource.Type)
|
||
|
dataResource.Option = p.DataResource.Option
|
||
|
return RuleEngineSearchQueryResponse{
|
||
|
Id: p.Id,
|
||
|
Name: p.Name,
|
||
|
Description: p.Description,
|
||
|
Created: p.Created,
|
||
|
Status: string(p.Status),
|
||
|
DataResource: dataResource,
|
||
|
}
|
||
|
}
|