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!
subject: String!
template: String!
design: String!
design: String
}
input UpdateEmailTemplateRequest {
@ -14130,7 +14130,7 @@ func (ec *executionContext) unmarshalInputAddEmailTemplateRequest(ctx context.Co
var err error
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 {
return it, err
}

View File

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

View File

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

View File

@ -40,15 +40,17 @@ func AddEmailTemplateResolver(ctx context.Context, params model.AddEmailTemplate
return nil, fmt.Errorf("empty template not allowed")
}
if strings.TrimSpace(params.Design) == "" {
return nil, fmt.Errorf("empty design not allowed")
var design string
if params.Design == nil {
design = ""
}
_, err = db.Provider.AddEmailTemplate(ctx, models.EmailTemplate{
EventName: params.EventName,
Template: params.Template,
Subject: params.Subject,
Design: params.Design,
Design: design,
})
if err != nil {
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)
})
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{
EventName: s.TestInfo.TestEmailTemplateEventTypes[0],
Template: "test",
Subject: "test",
Design: " ",
EventName: eventType,
Template: "Test email",
Subject: "Test email",
Design: &design,
})
assert.Error(t, err)
assert.Nil(t, emailTemplate)
assert.NoError(t, err)
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 {
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,
Template: "Test email",
Subject: "Test email",
Design: "Test design",
Design: &design,
})
assert.NoError(t, err)
assert.NotNil(t, emailTemplate)