2021-06-10 11:49:10 +00:00
|
|
|
package policy
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
|
|
|
|
"golang.org/x/text/language"
|
|
|
|
|
2022-04-26 23:01:45 +00:00
|
|
|
"github.com/zitadel/zitadel/internal/errors"
|
|
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
|
|
"github.com/zitadel/zitadel/internal/eventstore/repository"
|
2021-06-10 11:49:10 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
customTextPrefix = "customtext."
|
|
|
|
CustomTextSetEventType = customTextPrefix + "set"
|
|
|
|
CustomTextRemovedEventType = customTextPrefix + "removed"
|
|
|
|
CustomTextTemplateRemovedEventType = customTextPrefix + "template.removed"
|
|
|
|
)
|
|
|
|
|
|
|
|
type CustomTextSetEvent struct {
|
|
|
|
eventstore.BaseEvent `json:"-"`
|
|
|
|
|
|
|
|
Template string `json:"template,omitempty"`
|
|
|
|
Key string `json:"key,omitempty"`
|
|
|
|
Language language.Tag `json:"language,omitempty"`
|
|
|
|
Text string `json:"text,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *CustomTextSetEvent) Data() interface{} {
|
|
|
|
return e
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *CustomTextSetEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewCustomTextSetEvent(
|
|
|
|
base *eventstore.BaseEvent,
|
|
|
|
template,
|
|
|
|
key,
|
|
|
|
text string,
|
|
|
|
language language.Tag,
|
|
|
|
) *CustomTextSetEvent {
|
|
|
|
return &CustomTextSetEvent{
|
|
|
|
BaseEvent: *base,
|
|
|
|
Template: template,
|
|
|
|
Key: key,
|
|
|
|
Language: language,
|
|
|
|
Text: text,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-03 08:19:07 +00:00
|
|
|
func CustomTextSetEventMapper(event *repository.Event) (eventstore.Event, error) {
|
2021-06-10 11:49:10 +00:00
|
|
|
e := &CustomTextSetEvent{
|
|
|
|
BaseEvent: *eventstore.BaseEventFromRepo(event),
|
|
|
|
}
|
|
|
|
|
|
|
|
err := json.Unmarshal(event.Data, e)
|
|
|
|
if err != nil {
|
|
|
|
return nil, errors.ThrowInternal(err, "TEXT-28dwe", "unable to unmarshal custom text")
|
|
|
|
}
|
|
|
|
|
|
|
|
return e, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type CustomTextRemovedEvent struct {
|
|
|
|
eventstore.BaseEvent `json:"-"`
|
|
|
|
|
|
|
|
Template string `json:"template,omitempty"`
|
|
|
|
Key string `json:"key,omitempty"`
|
|
|
|
Language language.Tag `json:"language,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *CustomTextRemovedEvent) Data() interface{} {
|
|
|
|
return e
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *CustomTextRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewCustomTextRemovedEvent(base *eventstore.BaseEvent, template, key string, language language.Tag) *CustomTextRemovedEvent {
|
|
|
|
return &CustomTextRemovedEvent{
|
|
|
|
BaseEvent: *base,
|
|
|
|
Template: template,
|
|
|
|
Key: key,
|
|
|
|
Language: language,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-03 08:19:07 +00:00
|
|
|
func CustomTextRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
|
2021-06-10 11:49:10 +00:00
|
|
|
e := &CustomTextRemovedEvent{
|
|
|
|
BaseEvent: *eventstore.BaseEventFromRepo(event),
|
|
|
|
}
|
|
|
|
|
|
|
|
err := json.Unmarshal(event.Data, e)
|
|
|
|
if err != nil {
|
|
|
|
return nil, errors.ThrowInternal(err, "TEXT-28sMf", "unable to unmarshal custom text removed")
|
|
|
|
}
|
|
|
|
|
|
|
|
return e, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type CustomTextTemplateRemovedEvent struct {
|
|
|
|
eventstore.BaseEvent `json:"-"`
|
|
|
|
|
|
|
|
Template string `json:"template,omitempty"`
|
|
|
|
Language language.Tag `json:"language,omitempty"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *CustomTextTemplateRemovedEvent) Data() interface{} {
|
|
|
|
return e
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e *CustomTextTemplateRemovedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewCustomTextTemplateRemovedEvent(base *eventstore.BaseEvent, template string, language language.Tag) *CustomTextTemplateRemovedEvent {
|
|
|
|
return &CustomTextTemplateRemovedEvent{
|
|
|
|
BaseEvent: *base,
|
|
|
|
Template: template,
|
|
|
|
Language: language,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-03 08:19:07 +00:00
|
|
|
func CustomTextTemplateRemovedEventMapper(event *repository.Event) (eventstore.Event, error) {
|
2021-06-10 11:49:10 +00:00
|
|
|
e := &CustomTextTemplateRemovedEvent{
|
|
|
|
BaseEvent: *eventstore.BaseEventFromRepo(event),
|
|
|
|
}
|
|
|
|
|
|
|
|
err := json.Unmarshal(event.Data, e)
|
|
|
|
if err != nil {
|
|
|
|
return nil, errors.ThrowInternal(err, "TEXT-mKKRs", "unable to unmarshal custom text message removed")
|
|
|
|
}
|
|
|
|
|
|
|
|
return e, nil
|
|
|
|
}
|