71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
package telegram
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/tech/sendico/pkg/model"
|
|
)
|
|
|
|
const legacyContactRequestTopicSignup = "signup_request"
|
|
|
|
func newContactRequestTemplate(request *model.ContactRequest) messageTemplate {
|
|
if request == nil {
|
|
request = &model.ContactRequest{}
|
|
}
|
|
|
|
switch normalizeContactRequestTopic(request.Topic) {
|
|
case model.ContactRequestTopicAccountVerificationCompleted:
|
|
return newAccountVerificationCompletedTemplate(request)
|
|
case model.ContactRequestTopicSignupCompleted:
|
|
return newSignupCompletedTemplate(request)
|
|
default:
|
|
return newSiteContactTemplate(request)
|
|
}
|
|
}
|
|
|
|
func normalizeContactRequestTopic(topic string) string {
|
|
normalized := strings.ToLower(strings.TrimSpace(topic))
|
|
if normalized == legacyContactRequestTopicSignup {
|
|
return model.ContactRequestTopicSignupCompleted
|
|
}
|
|
return normalized
|
|
}
|
|
|
|
func newAccountVerificationCompletedTemplate(request *model.ContactRequest) messageTemplate {
|
|
return messageTemplate{
|
|
title: "Account verification completed",
|
|
emphasize: []string{"verification completed"},
|
|
fields: []messageField{
|
|
{label: "Name", value: request.Name},
|
|
{label: "Email", value: request.Email},
|
|
},
|
|
}
|
|
}
|
|
|
|
func newSignupCompletedTemplate(request *model.ContactRequest) messageTemplate {
|
|
return messageTemplate{
|
|
title: "New signup completed",
|
|
emphasize: []string{"signup completed"},
|
|
fields: []messageField{
|
|
{label: "Organization", value: request.Company},
|
|
{label: "Name", value: request.Name},
|
|
{label: "Email", value: request.Email},
|
|
},
|
|
}
|
|
}
|
|
|
|
func newSiteContactTemplate(request *model.ContactRequest) messageTemplate {
|
|
return messageTemplate{
|
|
title: "New site request received",
|
|
emphasize: []string{"site request"},
|
|
fields: []messageField{
|
|
{label: "Name", value: request.Name},
|
|
{label: "Email", value: request.Email},
|
|
{label: "Phone", value: request.Phone},
|
|
{label: "Company", value: request.Company},
|
|
{label: "Topic", value: request.Topic},
|
|
{label: "Message", value: request.Message},
|
|
},
|
|
}
|
|
}
|