authorizer/server/db/providers/provider_template/webhook.go

57 lines
1.7 KiB
Go
Raw Normal View History

package provider_template
import (
2022-07-10 16:19:33 +00:00
"context"
"fmt"
"strings"
"time"
"github.com/authorizerdev/authorizer/server/db/models"
"github.com/authorizerdev/authorizer/server/graph/model"
"github.com/google/uuid"
)
// AddWebhook to add webhook
2022-07-10 16:19:33 +00:00
func (p *provider) AddWebhook(ctx context.Context, webhook models.Webhook) (*model.Webhook, error) {
if webhook.ID == "" {
webhook.ID = uuid.New().String()
}
webhook.Key = webhook.ID
webhook.CreatedAt = time.Now().Unix()
webhook.UpdatedAt = time.Now().Unix()
// Add timestamp to make event name unique for legacy version
webhook.EventName = fmt.Sprintf("%s-%d", webhook.EventName, time.Now().Unix())
2022-07-10 16:19:33 +00:00
return webhook.AsAPIWebhook(), nil
}
// UpdateWebhook to update webhook
2022-07-10 16:19:33 +00:00
func (p *provider) UpdateWebhook(ctx context.Context, webhook models.Webhook) (*model.Webhook, error) {
webhook.UpdatedAt = time.Now().Unix()
// Event is changed
if !strings.Contains(webhook.EventName, "-") {
webhook.EventName = fmt.Sprintf("%s-%d", webhook.EventName, time.Now().Unix())
}
2022-07-10 16:19:33 +00:00
return webhook.AsAPIWebhook(), nil
}
// ListWebhooks to list webhook
2022-07-10 16:19:33 +00:00
func (p *provider) ListWebhook(ctx context.Context, pagination model.Pagination) (*model.Webhooks, error) {
return nil, nil
}
// GetWebhookByID to get webhook by id
2022-07-10 16:19:33 +00:00
func (p *provider) GetWebhookByID(ctx context.Context, webhookID string) (*model.Webhook, error) {
return nil, nil
}
// GetWebhookByEventName to get webhook by event_name
func (p *provider) GetWebhookByEventName(ctx context.Context, eventName string) ([]*model.Webhook, error) {
2022-07-10 16:19:33 +00:00
return nil, nil
}
// DeleteWebhook to delete webhook
2022-07-10 16:19:33 +00:00
func (p *provider) DeleteWebhook(ctx context.Context, webhook *model.Webhook) error {
2022-07-11 14:10:54 +00:00
// Also delete webhook logs for given webhook id
return nil
}