Skip to content

Commit

Permalink
fix: conflicts
Browse files Browse the repository at this point in the history
Signed-off-by: sarthakjdev <[email protected]>
  • Loading branch information
sarthakjdev committed Nov 20, 2024
1 parent ff43988 commit 35a347b
Showing 1 changed file with 0 additions and 88 deletions.
88 changes: 0 additions & 88 deletions pkg/components/template_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -250,91 +250,3 @@ func (m *TemplateMessage) ToJson(configs ApiCompatibleJsonConverterConfigs) ([]b

return jsonToReturn, nil
}

// AddHeader adds a header to the template message.
// Template Messages in whatsapp can only have one header, so this function will override the last header added if any.
func (tm *TemplateMessage) AddHeader(params TemplateMessageComponentHeaderType) {
var existingHeaderIndex int
var found bool

for i, component := range tm.Components {
if TemplateMessageComponentType(component.GetComponentType()) == TemplateMessageComponentTypeHeader {
existingHeaderIndex = i
found = true
break
}
}

if found {
// Override the existing header.
tm.Components[existingHeaderIndex] = params
} else {
// Add the new header if no existing header is found.
tm.Components = append(tm.Components, params)
}
}

// AddBody adds a body to the template message.
// Template Messages in whatsapp can only have one body component, so this function will override the last body added if any.
func (tm *TemplateMessage) AddBody(params TemplateMessageComponentBodyType) {
var existingBodyIndex int
var found bool

for i, component := range tm.Components {
if TemplateMessageComponentType(component.GetComponentType()) == TemplateMessageComponentTypeBody {
existingBodyIndex = i
found = true
break
}
}

if found {
// Override the existing body.
tm.Components[existingBodyIndex] = params
} else {
// Add the new body if no existing body is found.
tm.Components = append(tm.Components, params)
}
}

func (tm *TemplateMessage) AddButton(params TemplateMessageComponentButtonType) error {
// at max 10 buttons can be added to a template message
numberOfButtons := 0
for _, component := range tm.Components {
if TemplateMessageComponentType(component.GetComponentType()) == TemplateMessageComponentTypeButton {
numberOfButtons++
}
}

if numberOfButtons >= 10 {
return fmt.Errorf("maximum number of buttons reached")
}
tm.Components = append(tm.Components, params)
return nil
}

// ToJson converts the template message to JSON.
func (m *TemplateMessage) ToJson(configs ApiCompatibleJsonConverterConfigs) ([]byte, error) {
if err := internal.GetValidator().Struct(configs); err != nil {
return nil, fmt.Errorf("error validating configs: %v", err)
}

jsonData := TemplateMessageApiPayload{
BaseMessagePayload: NewBaseMessagePayload(configs.SendToPhoneNumber, MessageTypeTemplate),
Template: *m,
}

if configs.ReplyToMessageId != "" {
jsonData.Context = &Context{
MessageId: configs.ReplyToMessageId,
}
}

jsonToReturn, err := json.Marshal(jsonData)

if err != nil {
return nil, fmt.Errorf("error marshalling json: %v", err)
}

return jsonToReturn, nil
}

0 comments on commit 35a347b

Please sign in to comment.