authorizer/server/db/models/webhook.go

36 lines
1.3 KiB
Go
Raw Normal View History

2022-07-04 17:07:13 +00:00
package models
2022-07-10 16:19:33 +00:00
import (
"encoding/json"
"github.com/authorizerdev/authorizer/server/graph/model"
)
2022-07-04 17:07:13 +00:00
// Note: any change here should be reflected in providers/casandra/provider.go as it does not have model support in collection creation
// Webhook model for db
type Webhook struct {
Key string `json:"_key,omitempty" bson:"_key,omitempty" cql:"_key,omitempty"` // for arangodb
ID string `gorm:"primaryKey;type:char(36)" json:"_id" bson:"_id" cql:"id"`
EventName string `gorm:"unique" json:"event_name" bson:"event_name" cql:"event_name"`
2022-07-10 16:19:33 +00:00
EndPoint string `gorm:"type:text" json:"endpoint" bson:"endpoint" cql:"endpoint"`
Headers string `gorm:"type:text" json:"headers" bson:"headers" cql:"headers"`
2022-07-04 17:07:13 +00:00
Enabled bool `json:"enabled" bson:"enabled" cql:"enabled"`
CreatedAt int64 `json:"created_at" bson:"created_at" cql:"created_at"`
UpdatedAt int64 `json:"updated_at" bson:"updated_at" cql:"updated_at"`
}
func (w *Webhook) AsAPIWebhook() *model.Webhook {
2022-07-10 16:19:33 +00:00
headersMap := make(map[string]interface{})
json.Unmarshal([]byte(w.Headers), &headersMap)
return &model.Webhook{
ID: w.ID,
EventName: &w.EventName,
Endpoint: &w.EndPoint,
2022-07-10 16:19:33 +00:00
Headers: headersMap,
Enabled: &w.Enabled,
CreatedAt: &w.CreatedAt,
UpdatedAt: &w.UpdatedAt,
}
}