58 lines
1006 B
Go
58 lines
1006 B
Go
package message
|
|
|
|
import (
|
|
// stdlib
|
|
"errors"
|
|
"log"
|
|
|
|
// local
|
|
"go.dev.pztrn.name/discordrone/env"
|
|
|
|
// other
|
|
"github.com/drone/drone-template-lib/template"
|
|
)
|
|
|
|
// Process starts message(s) processing.
|
|
func Process() error {
|
|
if env.Data.Debug {
|
|
log.Println("Preparing message for sending...")
|
|
}
|
|
|
|
// Webhook data should present.
|
|
if env.Data.Plugin.Webhook.ID == "" && env.Data.Plugin.Webhook.Token == "" {
|
|
return errors.New("webhook id or token is missing")
|
|
}
|
|
|
|
// Payload.
|
|
p := &payload{
|
|
Embeds: []EmbedObject{
|
|
createEmbed(),
|
|
},
|
|
}
|
|
|
|
// If no additional message was passed - send what we got.
|
|
if len(env.Data.Plugin.Message) == 0 {
|
|
err := sendMessage(p)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
// If message was set - format it.
|
|
if len(env.Data.Plugin.Message) > 0 {
|
|
text, err := template.RenderTrim(env.Data.Plugin.Message, env.Data.Drone)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
p.Content = text
|
|
|
|
err1 := sendMessage(p)
|
|
if err1 != nil {
|
|
return err1
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|