chore: tweak webhook payload

This commit is contained in:
Steven 2024-06-01 23:46:00 +08:00
parent 8c0bee3840
commit 2e0d5412b4
2 changed files with 24 additions and 10 deletions

View file

@ -8,8 +8,6 @@ import (
"time" "time"
"github.com/pkg/errors" "github.com/pkg/errors"
v1pb "github.com/usememos/memos/proto/gen/api/v1"
) )
var ( var (
@ -17,6 +15,18 @@ var (
timeout = 30 * time.Second timeout = 30 * time.Second
) )
type Memo struct {
// The name of the memo.
// Format: memos/{id}
// id is the system generated id.
Name string
// The name of the creator.
// Format: users/{id}
Creator string
// The raw content.
Content string
}
// WebhookPayload is the payload of webhook request. // WebhookPayload is the payload of webhook request.
// nolint // nolint
type WebhookPayload struct { type WebhookPayload struct {
@ -24,7 +34,7 @@ type WebhookPayload struct {
ActivityType string `json:"activityType"` ActivityType string `json:"activityType"`
CreatorID int32 `json:"creatorId"` CreatorID int32 `json:"creatorId"`
CreatedTs int64 `json:"createdTs"` CreatedTs int64 `json:"createdTs"`
Memo *v1pb.Memo `json:"memo"` Memo *Memo `json:"memo"`
} }
// WebhookResponse is the response of webhook request. // WebhookResponse is the response of webhook request.
@ -40,8 +50,8 @@ func Post(payload WebhookPayload) error {
if err != nil { if err != nil {
return errors.Wrapf(err, "failed to marshal webhook request to %s", payload.URL) return errors.Wrapf(err, "failed to marshal webhook request to %s", payload.URL)
} }
req, err := http.NewRequest("POST",
payload.URL, bytes.NewBuffer(body)) req, err := http.NewRequest("POST", payload.URL, bytes.NewBuffer(body))
if err != nil { if err != nil {
return errors.Wrapf(err, "failed to construct webhook request to %s", payload.URL) return errors.Wrapf(err, "failed to construct webhook request to %s", payload.URL)
} }

View file

@ -1224,6 +1224,10 @@ func convertMemoToWebhookPayload(memo *v1pb.Memo) (*webhook.WebhookPayload, erro
return &webhook.WebhookPayload{ return &webhook.WebhookPayload{
CreatorID: creatorID, CreatorID: creatorID,
CreatedTs: time.Now().Unix(), CreatedTs: time.Now().Unix(),
Memo: memo, Memo: &webhook.Memo{
Name: memo.Name,
Creator: memo.Creator,
Content: memo.Content,
},
}, nil }, nil
} }