mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-09-22 16:00:51 +00:00
58 lines
1.9 KiB
Go
58 lines
1.9 KiB
Go
package xpack
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/1Panel-dev/1Panel/agent/app/dto"
|
|
"github.com/1Panel-dev/1Panel/agent/app/model"
|
|
"github.com/1Panel-dev/1Panel/agent/utils/xpack/providers"
|
|
)
|
|
|
|
func DeliverCustomWebhookAlertLog(
|
|
alertType string,
|
|
info dto.AlertDTO,
|
|
create dto.AlertLogCreate,
|
|
project string,
|
|
params []dto.Param,
|
|
config model.AlertConfig,
|
|
transport *http.Transport,
|
|
agentInfo *dto.AgentInfo,
|
|
task dto.AlertTaskMetadata,
|
|
) (providers.DeliveryResult, error) {
|
|
if provider, ok := AlertProvider.(providers.CustomWebhookDeliveryProvider); ok {
|
|
result, err := provider.CreateCustomWebhookAlertLog(alertType, info, create, project, params, config, transport, agentInfo, task)
|
|
return validateCustomWebhookDeliveryResult(result, err)
|
|
}
|
|
err := AlertProvider.CreateWebhookAlertLog(alertType, info, create, project, params, config, transport, agentInfo)
|
|
return providers.DeliveryResult{}, err
|
|
}
|
|
|
|
func DeliverTaskScanCustomWebhookAlertLog(
|
|
alert dto.AlertDTO,
|
|
alertType string,
|
|
create dto.AlertLogCreate,
|
|
pushAlert dto.PushAlert,
|
|
config model.AlertConfig,
|
|
transport *http.Transport,
|
|
agentInfo *dto.AgentInfo,
|
|
task dto.AlertTaskMetadata,
|
|
) (providers.DeliveryResult, error) {
|
|
if provider, ok := AlertProvider.(providers.CustomWebhookDeliveryProvider); ok {
|
|
result, err := provider.CreateTaskScanCustomWebhookAlertLog(alert, alertType, create, pushAlert, config, transport, agentInfo, task)
|
|
return validateCustomWebhookDeliveryResult(result, err)
|
|
}
|
|
err := AlertProvider.CreateTaskScanWebhookAlertLog(alert, alertType, create, pushAlert, config, transport, agentInfo)
|
|
return providers.DeliveryResult{}, err
|
|
}
|
|
|
|
func validateCustomWebhookDeliveryResult(result providers.DeliveryResult, err error) (providers.DeliveryResult, error) {
|
|
if err != nil {
|
|
return result, err
|
|
}
|
|
if result.Queued && result.LogID == 0 {
|
|
return providers.DeliveryResult{}, fmt.Errorf("custom webhook provider queued a delivery without a log ID")
|
|
}
|
|
return result, nil
|
|
}
|