Files
inventory-plus-plus/internal/server/api/webhooks/tiktok/webhooks.go
T
2026-01-13 22:07:20 -07:00

44 lines
963 B
Go

package tiktok
import (
"encoding/json"
"fmt"
"time"
"ruben/inventory2/internal/domains/raw_events"
"ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/response"
"github.com/gin-gonic/gin"
)
func Webhooks(
r *gin.RouterGroup,
logger *logging.Logger,
db *raw_events.Store,
) {
r.POST("/test", response.Handler(func(c *gin.Context) (response.Response, error) {
r := c.Request
var body json.RawMessage
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
return nil, fmt.Errorf("failed to decode body as json: %w", err)
}
ts := time.Now().UTC()
err := db.Save(r.Context(), &raw_events.Event{
Platform: "tiktok",
StoreID: "test-store-1",
EventID: fmt.Sprint(ts.Unix()),
EventTimestamp: ts,
Payload: body,
})
if err != nil {
return nil, fmt.Errorf("error occurred saving the body as the event payload: %w", err)
}
return response.Status(201), nil
}))
}