feat: Custom message files (#1992)

* feat: add get custom message text to admin api

* feat: read custom message texts from files

* feat: get languages in apis

* feat: get languages in apis

* feat: get languages in apis

* feat: pr feedback

* feat: docs

* feat: merge main
This commit is contained in:
Fabi
2021-07-13 07:13:39 +02:00
committed by GitHub
parent 7ebf0333c3
commit 03a38fbf1c
40 changed files with 1108 additions and 245 deletions

View File

@@ -8,10 +8,6 @@ import (
"github.com/caos/zitadel/internal/domain"
)
type MessageTextsView struct {
Texts []*MessageTextView
Default bool
}
type MessageTextView struct {
AggregateID string
MessageTextType string

View File

@@ -110,6 +110,46 @@ func (r *CustomTextView) IsMessageTemplate() bool {
r.Template == domain.DomainClaimedMessageType
}
func CustomTextViewsToMessageDomain(aggregateID, lang string, texts []*CustomTextView) *domain.CustomMessageText {
langTag := language.Make(lang)
result := &domain.CustomMessageText{
ObjectRoot: models.ObjectRoot{
AggregateID: aggregateID,
},
Language: langTag,
}
for _, text := range texts {
if text.CreationDate.Before(result.CreationDate) {
result.CreationDate = text.CreationDate
}
if text.ChangeDate.After(result.ChangeDate) {
result.ChangeDate = text.ChangeDate
}
if text.Key == domain.MessageTitle {
result.Title = text.Text
}
if text.Key == domain.MessagePreHeader {
result.PreHeader = text.Text
}
if text.Key == domain.MessageSubject {
result.Subject = text.Text
}
if text.Key == domain.MessageGreeting {
result.Greeting = text.Text
}
if text.Key == domain.MessageText {
result.Text = text.Text
}
if text.Key == domain.MessageButtonText {
result.ButtonText = text.Text
}
if text.Key == domain.MessageFooterText {
result.FooterText = text.Text
}
}
return result
}
func CustomTextViewsToLoginDomain(aggregateID, lang string, texts []*CustomTextView) *domain.CustomLoginText {
langTag := language.Make(lang)
result := &domain.CustomLoginText{

View File

@@ -59,12 +59,6 @@ func MessageTextViewFromModel(template *model.MessageTextView) *MessageTextView
}
}
func MessageTextsViewToModel(textsIn []*MessageTextView, defaultIn bool) *model.MessageTextsView {
return &model.MessageTextsView{
Texts: messageTextsViewToModelArr(textsIn, defaultIn),
}
}
func messageTextsViewToModelArr(texts []*MessageTextView, defaultIn bool) []*model.MessageTextView {
result := make([]*model.MessageTextView, len(texts))
for i, r := range texts {