fix: allow design variable empty value for email templates

This commit is contained in:
anik-ghosh-au7 2022-11-09 22:48:12 +05:30
parent b467e7002d
commit 87bf1c3045
5 changed files with 718 additions and 702 deletions

View File

@ -2395,7 +2395,7 @@ input AddEmailTemplateRequest {
event_name: String! event_name: String!
subject: String! subject: String!
template: String! template: String!
design: String! design: String
} }
input UpdateEmailTemplateRequest { input UpdateEmailTemplateRequest {
@ -14130,7 +14130,7 @@ func (ec *executionContext) unmarshalInputAddEmailTemplateRequest(ctx context.Co
var err error var err error
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("design")) ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("design"))
it.Design, err = ec.unmarshalNString2string(ctx, v) it.Design, err = ec.unmarshalOString2ᚖstring(ctx, v)
if err != nil { if err != nil {
return it, err return it, err
} }

View File

@ -6,7 +6,7 @@ type AddEmailTemplateRequest struct {
EventName string `json:"event_name"` EventName string `json:"event_name"`
Subject string `json:"subject"` Subject string `json:"subject"`
Template string `json:"template"` Template string `json:"template"`
Design string `json:"design"` Design *string `json:"design"`
} }
type AddWebhookRequest struct { type AddWebhookRequest struct {

View File

@ -430,7 +430,7 @@ input AddEmailTemplateRequest {
event_name: String! event_name: String!
subject: String! subject: String!
template: String! template: String!
design: String! design: String
} }
input UpdateEmailTemplateRequest { input UpdateEmailTemplateRequest {

View File

@ -40,15 +40,17 @@ func AddEmailTemplateResolver(ctx context.Context, params model.AddEmailTemplate
return nil, fmt.Errorf("empty template not allowed") return nil, fmt.Errorf("empty template not allowed")
} }
if strings.TrimSpace(params.Design) == "" { var design string
return nil, fmt.Errorf("empty design not allowed")
if params.Design == nil {
design = ""
} }
_, err = db.Provider.AddEmailTemplate(ctx, models.EmailTemplate{ _, err = db.Provider.AddEmailTemplate(ctx, models.EmailTemplate{
EventName: params.EventName, EventName: params.EventName,
Template: params.Template, Template: params.Template,
Subject: params.Subject, Subject: params.Subject,
Design: params.Design, Design: design,
}) })
if err != nil { if err != nil {
log.Debug("Failed to add email template: ", err) log.Debug("Failed to add email template: ", err)

View File

@ -51,16 +51,30 @@ func addEmailTemplateTest(t *testing.T, s TestSetup) {
assert.Nil(t, emailTemplate) assert.Nil(t, emailTemplate)
}) })
t.Run("should not add email template with empty design", func(t *testing.T) { var design string
design = ""
for _, eventType := range s.TestInfo.TestEmailTemplateEventTypes {
t.Run("should add email template with empty design for "+eventType, func(t *testing.T) {
emailTemplate, err := resolvers.AddEmailTemplateResolver(ctx, model.AddEmailTemplateRequest{ emailTemplate, err := resolvers.AddEmailTemplateResolver(ctx, model.AddEmailTemplateRequest{
EventName: s.TestInfo.TestEmailTemplateEventTypes[0], EventName: eventType,
Template: "test", Template: "Test email",
Subject: "test", Subject: "Test email",
Design: " ", Design: &design,
}) })
assert.Error(t, err) assert.NoError(t, err)
assert.Nil(t, emailTemplate) assert.NotNil(t, emailTemplate)
assert.NotEmpty(t, emailTemplate.Message)
et, err := db.Provider.GetEmailTemplateByEventName(ctx, eventType)
assert.NoError(t, err)
assert.Equal(t, et.EventName, eventType)
assert.Equal(t, "Test email", et.Subject)
assert.Equal(t, "Test design", et.Design)
}) })
}
design = "Test design"
for _, eventType := range s.TestInfo.TestEmailTemplateEventTypes { for _, eventType := range s.TestInfo.TestEmailTemplateEventTypes {
t.Run("should add email template for "+eventType, func(t *testing.T) { t.Run("should add email template for "+eventType, func(t *testing.T) {
@ -68,7 +82,7 @@ func addEmailTemplateTest(t *testing.T, s TestSetup) {
EventName: eventType, EventName: eventType,
Template: "Test email", Template: "Test email",
Subject: "Test email", Subject: "Test email",
Design: "Test design", Design: &design,
}) })
assert.NoError(t, err) assert.NoError(t, err)
assert.NotNil(t, emailTemplate) assert.NotNil(t, emailTemplate)