2022-07-17 06:37:17 +00:00
|
|
|
package resolvers
|
2022-07-17 07:02:01 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"fmt"
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"github.com/authorizerdev/authorizer/server/db"
|
|
|
|
"github.com/authorizerdev/authorizer/server/db/models"
|
|
|
|
"github.com/authorizerdev/authorizer/server/graph/model"
|
2022-11-15 16:42:14 +00:00
|
|
|
"github.com/authorizerdev/authorizer/server/refs"
|
2022-07-17 07:02:01 +00:00
|
|
|
"github.com/authorizerdev/authorizer/server/token"
|
|
|
|
"github.com/authorizerdev/authorizer/server/utils"
|
|
|
|
"github.com/authorizerdev/authorizer/server/validators"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
)
|
|
|
|
|
|
|
|
// AddEmailTemplateResolver resolver for add email template mutation
|
|
|
|
func AddEmailTemplateResolver(ctx context.Context, params model.AddEmailTemplateRequest) (*model.Response, error) {
|
|
|
|
gc, err := utils.GinContextFromContext(ctx)
|
|
|
|
if err != nil {
|
|
|
|
log.Debug("Failed to get GinContext: ", err)
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
if !token.IsSuperAdmin(gc) {
|
|
|
|
log.Debug("Not logged in as super admin")
|
|
|
|
return nil, fmt.Errorf("unauthorized")
|
|
|
|
}
|
|
|
|
|
|
|
|
if !validators.IsValidEmailTemplateEventName(params.EventName) {
|
|
|
|
log.Debug("Invalid Event Name: ", params.EventName)
|
|
|
|
return nil, fmt.Errorf("invalid event name %s", params.EventName)
|
|
|
|
}
|
|
|
|
|
2022-07-29 10:45:57 +00:00
|
|
|
if strings.TrimSpace(params.Subject) == "" {
|
|
|
|
return nil, fmt.Errorf("empty subject not allowed")
|
|
|
|
}
|
|
|
|
|
2022-07-17 07:02:01 +00:00
|
|
|
if strings.TrimSpace(params.Template) == "" {
|
|
|
|
return nil, fmt.Errorf("empty template not allowed")
|
|
|
|
}
|
|
|
|
|
2022-11-09 17:18:12 +00:00
|
|
|
var design string
|
|
|
|
|
2022-11-15 16:42:14 +00:00
|
|
|
if params.Design == nil || strings.TrimSpace(refs.StringValue(params.Design)) == "" {
|
2022-11-09 17:18:12 +00:00
|
|
|
design = ""
|
2022-08-11 11:15:59 +00:00
|
|
|
}
|
|
|
|
|
2023-07-31 11:12:11 +00:00
|
|
|
_, err = db.Provider.AddEmailTemplate(ctx, &models.EmailTemplate{
|
2022-07-17 07:02:01 +00:00
|
|
|
EventName: params.EventName,
|
|
|
|
Template: params.Template,
|
2022-07-29 10:45:57 +00:00
|
|
|
Subject: params.Subject,
|
2022-11-09 17:18:12 +00:00
|
|
|
Design: design,
|
2022-07-17 07:02:01 +00:00
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
log.Debug("Failed to add email template: ", err)
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return &model.Response{
|
|
|
|
Message: `Email template added successfully`,
|
|
|
|
}, nil
|
|
|
|
}
|