Manager
import "github.com/sarthakjdev/wapi.go/internal/manager"
type AdInteractionSourceMediaTypeEnum
type AdInteractionSourceMediaTypeEnum string
const (
AdInteractionSourceMediaTypeImage AdInteractionSourceMediaTypeEnum = "image"
AdInteractionSourceMediaTypeVideo AdInteractionSourceMediaTypeEnum = "video"
)
type AdInteractionSourceTypeEnum
type AdInteractionSourceTypeEnum string
const (
AdInteractionSourceTypeUnknown AdInteractionSourceTypeEnum = "unknown"
)
type Change
type Change struct {
Value Value `json:"value"`
Field string `json:"field"`
}
type ChannelEvent
ChannelEvent represents an event that can be published and subscribed to.
type ChannelEvent struct {
Type events.EventType // Type is the type of the event.
Data events.BaseEvent // Data is the data associated with the event.
}
type Contact
type Contact struct {
WaId string `json:"wa_id"`
Profile Profile `json:"profile"`
}
type Conversation
type Conversation struct {
Id string `json:"id"`
Origin Origin `json:"origin,omitempty"`
}
type CreatePhoneNumberResponse
type CreatePhoneNumberResponse struct {
Id string `json:"id,omitempty"`
}
type DeleteQrCodeResponse
DeleteQrCodeResponse represents the response of deleting a QR code.
type DeleteQrCodeResponse struct {
Success bool `json:"success,omitempty"`
}
type Entry
type Entry struct {
Id string `json:"id"`
Changes []Change `json:"changes"`
}
type Error
type Error struct {
}
type EventManager
EventManager is responsible for managing events and their subscribers.
type EventManager struct {
subscribers map[events.EventType]chan ChannelEvent // subscribers is a map of event types to channels of ChannelEvent.
sync.RWMutex // RWMutex is used to synchronize access to the subscribers map.
}
func NewEventManager
func NewEventManager() *EventManager
NewEventManager creates a new instance of EventManger.
func (*EventManager) On
func (em *EventManager) On(eventName events.EventType, handler func(events.BaseEvent)) events.EventType
On registers a handler function for the specified event type. The handler function will be called whenever the event is published. It returns the event type that the handler is registered for.
func (*EventManager) Publish
func (em *EventManager) Publish(event events.EventType, data events.BaseEvent) error
Publish publishes an event to the event system and notifies all the subscribers.
func (*EventManager) Subscribe
func (em *EventManager) Subscribe(eventName events.EventType) (chan ChannelEvent, error)
Subscribe adds a new subscriber to the specified event type. The subscriber will be notified when the event is published.
func (*EventManager) Unsubscribe
func (em *EventManager) Unsubscribe(id events.EventType)
Unsubscribe removes a subscriber from the specified event type.
type FetchPhoneNumberFilters
FetchPhoneNumberFilters holds the filters for fetching phone numbers.
type FetchPhoneNumberFilters struct {
GetSandboxNumbers bool
}
type GenerateQrCodeResponse
GenerateQrCodeResponse represents the response of generating a QR code.
type GenerateQrCodeResponse struct {
Code string `json:"code,omitempty"`
PrefilledMessage string `json:"prefilled_message,omitempty"`
DeepLinkUrl string `json:"deep_link_url,omitempty"`
QrImageUrl string `json:"qr_image_url,omitempty"`
}
type GetAllQrCodesResponse
GetAllQrCodesResponse represents the response of getting all QR codes for a phone number.
type GetAllQrCodesResponse struct {
Data []GenerateQrCodeResponse `json:"data,omitempty"`
}
type InteractiveNotificationTypeEnum
type InteractiveNotificationTypeEnum string
const (
NotificationTypeButtonReply InteractiveNotificationTypeEnum = "button_reply"
NotificationTypeListReply InteractiveNotificationTypeEnum = "list_reply"
)
type MediaManager
MediaManager is responsible for managing media related operations.
type MediaManager struct {
requester request_client.RequestClient
}
func NewMediaManager
func NewMediaManager(requester request_client.RequestClient) *MediaManager
NewMediaManager creates a new instance of MediaManager.
func (*MediaManager) GetMediaIdByUrl
func (mm *MediaManager) GetMediaIdByUrl(id string)
GetMediaIdByUrl retrieves the media ID by its URL.
func (*MediaManager) GetMediaUrlById
func (mm *MediaManager) GetMediaUrlById(id string)
GetMediaUrlById retrieves the media URL by its ID.
type Message
type Message struct {
Id string `json:"id"`
From string `json:"from"`
Timestamp string `json:"timestamp"`
Type NotificationMessageTypeEnum `json:"type"`
Context NotificationPayloadMessageContextSchemaType `json:"context"`
Errors []Error `json:",inline"`
NotificationPayloadTextMessageSchemaType `json:",inline"`
NotificationPayloadAudioMessageSchemaType `json:",inline"`
NotificationPayloadImageMessageSchemaType `json:",inline"`
NotificationPayloadButtonMessageSchemaType `json:",inline"`
NotificationPayloadDocumentMessageSchemaType `json:",inline"`
NotificationPayloadOrderMessageSchemaType `json:",inline"`
NotificationPayloadStickerMessageSchemaType `json:",inline"`
NotificationPayloadSystemMessageSchemaType `json:",inline"`
NotificationPayloadVideoMessageSchemaType `json:",inline"`
NotificationPayloadReactionMessageSchemaType `json:",inline"`
NotificationPayloadLocationMessageSchemaType `json:",inline"`
NotificationPayloadContactMessageSchemaType `json:",inline"`
NotificationPayloadInteractionMessageSchemaType `json:",inline"`
}
type MessageManager
MessageManager is responsible for managing messages.
type MessageManager struct {
requester request_client.RequestClient
PhoneNumberId string
}
func NewMessageManager
func NewMessageManager(requester request_client.RequestClient, phoneNumberId string) *MessageManager
NewMessageManager creates a new instance of MessageManager.
func (*MessageManager) Send
func (mm *MessageManager) Send(message components.BaseMessage, phoneNumber string) (string, error)
Send sends a message with the given parameters and returns the response. TODO: return the structured response from here
type MessageStatusCategoryEnum
type MessageStatusCategoryEnum string
const (
MessageStatusCategorySent MessageStatusCategoryEnum = "sent"
)
type MessageStatusEnum
type MessageStatusEnum string
const (
MessageStatusDelivered MessageStatusEnum = "delivered"
MessageStatusRead MessageStatusEnum = "read"
MessageStatusUnDelivered MessageStatusEnum = "undelivered"
MessageStatusFailed MessageStatusEnum = "failed"
MessageStatusSent MessageStatusEnum = "sent"
)
type MessageTemplateCategory
MessageTemplateCategory represents the category of a WhatsApp Business message template.
type MessageTemplateCategory string
Constants representing different message template categories.
const (
MessageTemplateCategoryUtility MessageTemplateCategory = "UTILITY"
MessageTemplateCategoryMarketing MessageTemplateCategory = "MARKETING"
MessageTemplateCategoryAuthentication MessageTemplateCategory = "AUTHENTICATION"
)
type MessageTemplateComponentFormat
MessageTemplateComponentFormat represents the format of a message template component.
type MessageTemplateComponentFormat string
Constants representing different message template component formats.
const (
MessageTemplateComponentFormatText MessageTemplateComponentFormat = "TEXT"
MessageTemplateComponentFormatImage MessageTemplateComponentFormat = "IMAGE"
MessageTemplateComponentFormatDocument MessageTemplateComponentFormat = "DOCUMENT"
MessageTemplateComponentFormatVideo MessageTemplateComponentFormat = "VIDEO"
MessageTemplateComponentFormatLocation MessageTemplateComponentFormat = "LOCATION"
)
type MessageTemplateComponentType
MessageTemplateComponentType represents the type of a message template component.
type MessageTemplateComponentType string
Constants representing different message template component types.
const (
MessageTemplateComponentTypeGreeting MessageTemplateComponentType = "GREETING"
MessageTemplateComponentTypeHeader MessageTemplateComponentType = "HEADER"
MessageTemplateComponentTypeBody MessageTemplateComponentType = "BODY"
MessageTemplateComponentTypeFooter MessageTemplateComponentType = "FOOTER"
MessageTemplateComponentTypeButtons MessageTemplateComponentType = "BUTTONS"
MessageTemplateComponentTypeCarousel MessageTemplateComponentType = "CAROUSEL"
MessageTemplateComponentTypeLimitedTimeOffer MessageTemplateComponentType = "LIMITED_TIME_OFFER"
)
type MessageTemplateCreationResponse
type MessageTemplateCreationResponse struct {
Id string `json:"id,omitempty"`
Status MessageTemplateStatus `json:"status,omitempty"`
Category MessageTemplateCategory `json:"category,omitempty"`
}
type MessageTemplateStatus
MessageTemplateStatus represents the status of a WhatsApp Business message template.
type MessageTemplateStatus string
Constants representing different message template statuses.
const (
MessageTemplateStatusApproved MessageTemplateStatus = "APPROVED"
MessageTemplateStatusRejected MessageTemplateStatus = "REJECTED"
MessageTemplateStatusPending MessageTemplateStatus = "PENDING"
)
type Metadata
type Metadata struct {
DisplayPhoneNumber string `json:"display_phone_number"`
PhoneNumberId string `json:"phone_number_id"`
}
type NotificationMessageTypeEnum
type NotificationMessageTypeEnum string
const (
NotificationMessageTypeText NotificationMessageTypeEnum = "text"
NotificationMessageTypeAudio NotificationMessageTypeEnum = "audio"
NotificationMessageTypeImage NotificationMessageTypeEnum = "image"
NotificationMessageTypeButton NotificationMessageTypeEnum = "button"
NotificationMessageTypeDocument NotificationMessageTypeEnum = "document"
NotificationMessageTypeOrder NotificationMessageTypeEnum = "order"
NotificationMessageTypeSticker NotificationMessageTypeEnum = "sticker"
NotificationMessageTypeSystem NotificationMessageTypeEnum = "system"
NotificationMessageTypeVideo NotificationMessageTypeEnum = "video"
NotificationMessageTypeReaction NotificationMessageTypeEnum = "reaction"
NotificationMessageTypeInteractive NotificationMessageTypeEnum = "interactive"
NotificationMessageTypeUnknown NotificationMessageTypeEnum = "unknown"
NotificationMessageTypeLocation NotificationMessageTypeEnum = "location"
NotificationMessageTypeContacts NotificationMessageTypeEnum = "contacts"
)
type NotificationPayloadAudioMessageSchemaType
type NotificationPayloadAudioMessageSchemaType struct {
Audio struct {
Id string `json:"id,omitempty"`
MIMEType string `json:"mime_type,omitempty"`
SHA256 string `json:"sha256,omitempty"`
} `json:"audio,omitempty"`
}
type NotificationPayloadButtonInteractionMessageSchemaType
type NotificationPayloadButtonInteractionMessageSchemaType struct {
ButtonReply struct {
ReplyId string `json:"reply_id"`
Title string `json:"title"`
} `json:"button_reply,omitempty"`
}
type NotificationPayloadButtonMessageSchemaType
type NotificationPayloadButtonMessageSchemaType struct {
Button struct {
Payload string `json:"payload"`
Text string `json:"text"`
} `json:"button,omitempty"`
}
type NotificationPayloadContactMessageSchemaType
type NotificationPayloadContactMessageSchemaType struct {
Contacts []Contact `json:"contacts"`
}
type NotificationPayloadDocumentMessageSchemaType
type NotificationPayloadDocumentMessageSchemaType struct {
Document struct {
Id string `json:"id"`
MIMEType string `json:"mime_type"`
SHA256 string `json:"sha256"`
Caption string `json:"caption,omitempty"`
Filename string `json:"filename,omitempty"`
} `json:"document,omitempty"`
}
type NotificationPayloadErrorSchemaType
type NotificationPayloadErrorSchemaType struct {
Code int `json:"code"`
Title string `json:"title"`
Message string `json:"message"`
ErrorData struct {
Details string `json:"details"`
} `json:"error_data,omitempty"`
}
type NotificationPayloadImageMessageSchemaType
type NotificationPayloadImageMessageSchemaType struct {
Image struct {
Id string `json:"id"`
MIMEType string `json:"mime_type"`
SHA256 string `json:"sha256"`
Caption string `json:"caption,omitempty"`
} `json:"image,omitempty"`
}
type NotificationPayloadInteractionMessageSchemaType
type NotificationPayloadInteractionMessageSchemaType struct {
Interactive struct {
Type InteractiveNotificationTypeEnum `json:"type"`
NotificationPayloadButtonInteractionMessageSchemaType `json:",inline,omitempty"`
NotificationPayloadListInteractionMessageSchemaType `json:",inline,omitempty"`
} `json:"interactive,omitempty"`
}
type NotificationPayloadListInteractionMessageSchemaType
type NotificationPayloadListInteractionMessageSchemaType struct {
ListReply struct {
Id string `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
} `json:"list_reply,omitempty"`
}
type NotificationPayloadLocationMessageSchemaType
type NotificationPayloadLocationMessageSchemaType struct {
Location struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Name string `json:"name,omitempty"`
Address string `json:"address,omitempty"`
} `json:"location,omitempty"`
}
type NotificationPayloadMessageContextSchemaType
type NotificationPayloadMessageContextSchemaType struct {
Forwarded bool `json:"forwarded,omitempty"`
FrequentlyForwarded bool `json:"frequently_forwarded,omitempty"`
From string `json:"from,omitempty"`
Id string `json:"id"`
ReferredProduct struct {
CatalogId string `json:"catalog_id"`
ProductRetailerId string `json:"product_retailer_id"`
} `json:"referred_product,omitempty"`
}
type NotificationPayloadOrderMessageSchemaType
type NotificationPayloadOrderMessageSchemaType struct {
// OrderText string `json:"text"`
Order struct {
CatalogId string `json:"catalog_id"`
ProductItems []struct {
ProductRetailerId string `json:"product_retailer_id"`
Quantity string `json:"quantity"`
ItemPrice string `json:"item_price"`
Currency string `json:"currency"`
} `json:"product_items"`
} `json:"order,omitempty"`
}
type NotificationPayloadReactionMessageSchemaType
type NotificationPayloadReactionMessageSchemaType struct {
Reaction struct {
MessageId string `json:"message_id"`
Emoji string `json:"emoji"`
} `json:"reaction,omitempty"`
}
type NotificationPayloadStickerMessageSchemaType
type NotificationPayloadStickerMessageSchemaType struct {
Sticker struct {
Id string `json:"id"`
MIMEType string `json:"mime_type"`
SHA256 string `json:"sha256"`
Animated bool `json:"animated"`
} `json:"sticker,omitempty"`
}
type NotificationPayloadSystemMessageSchemaType
type NotificationPayloadSystemMessageSchemaType struct {
System struct {
Identity string `json:"identity"`
Body string `json:"body"`
Customer string `json:"customer"`
Type SystemNotificationTypeEnum `json:"type"`
WaId string `json:"wa_id"`
} `json:"system,omitempty"`
Identity struct {
Acknowledged string `json:"acknowledged"`
CreatedTimestamp string `json:"created_timestamp"`
Hash string `json:"hash"`
} `json:"identity,omitempty"`
}
type NotificationPayloadTextMessageSchemaType
type NotificationPayloadTextMessageSchemaType struct {
Text struct {
Body string `json:"body"`
} `json:"text,omitempty"`
Referral struct {
SourceUrl string `json:"source_url"`
SourceType AdInteractionSourceTypeEnum `json:"source_type"`
SourceId string `json:"source_id"`
Headline string `json:"headline"`
Body string `json:"body"`
ImageUrl string `json:"image_url,omitempty"`
VideoUrl string `json:"video_url,omitempty"`
ThumbnailUrl string `json:"thumbnail_url"`
CtwaCLId string `json:"ctwa_clid"`
MediaType AdInteractionSourceMediaTypeEnum `json:"media_type"`
} `json:"referral,omitempty"`
}
type NotificationPayloadVideoMessageSchemaType
type NotificationPayloadVideoMessageSchemaType struct {
Video struct {
Id string `json:"id"`
MIMEType string `json:"mime_type"`
SHA256 string `json:"sha256"`
Caption string `json:"caption,omitempty"`
Filename string `json:"filename,omitempty"`
} `json:"video,omitempty"`
}
type NotificationReasonEnum
type NotificationReasonEnum string
const (
NotificationReasonMessage NotificationReasonEnum = "message"
)
type Origin
type Origin struct {
Type MessageStatusCategoryEnum `json:"type"`
ExpirationTimestamp string `json:"expiration_timestamp,omitempty"`
}
type PhoneNumberManager
PhoneNumberManager is responsible for managing phone numbers for WhatsApp Business API and phone number specific operations.
type PhoneNumberManager struct {
businessAccountId string
apiAccessToken string
requester *request_client.RequestClient
}
func NewPhoneNumberManager
func NewPhoneNumberManager(config *PhoneNumberManagerConfig) *PhoneNumberManager
NewPhoneNumberManager creates a new instance of PhoneNumberManager.
func (*PhoneNumberManager) Create
func (manager *PhoneNumberManager) Create(phoneNumber, verifiedName, countryCode string) (CreatePhoneNumberResponse, error)
func (*PhoneNumberManager) DeleteQrCode
func (manager *PhoneNumberManager) DeleteQrCode(phoneNumber, id string) (*DeleteQrCodeResponse, error)
DeleteQrCode deletes a QR code by its ID for the specified phone number.
func (*PhoneNumberManager) Fetch
func (manager *PhoneNumberManager) Fetch(phoneNumberId string) (*WhatsappBusinessAccountPhoneNumber, error)
Fetch fetches a phone number by its ID.
func (*PhoneNumberManager) FetchAll
func (manager *PhoneNumberManager) FetchAll(options FetchPhoneNumberFilters) (*WhatsappBusinessAccountPhoneNumberEdge, error)
FetchAll fetches all phone numbers based on the provided filters.
func (*PhoneNumberManager) GenerateQrCode
func (manager *PhoneNumberManager) GenerateQrCode(phoneNumber string, prefilledMessage string) (*GenerateQrCodeResponse, error)
GenerateQrCode generates a QR code for the specified phone number with the given prefilled message.
func (*PhoneNumberManager) GetAllQrCodes
func (manager *PhoneNumberManager) GetAllQrCodes(phoneNumber string) (*GetAllQrCodesResponse, error)
GetAllQrCodes gets all QR codes for the specified phone number.
func (*PhoneNumberManager) GetQrCodeById
func (manager *PhoneNumberManager) GetQrCodeById(phoneNumber, id string) (*GetAllQrCodesResponse, error)
GetQrCodeById gets a QR code by its ID for the specified phone number.
func (*PhoneNumberManager) RequestVerificationCode
func (manager *PhoneNumberManager) RequestVerificationCode(phoneNumberId string, codeMethod VerifyCodeMethod, languageCode string) (RequestVerificationCodeResponse, error)
func (*PhoneNumberManager) UpdateQrCode
func (manager *PhoneNumberManager) UpdateQrCode(phoneNumber, id, prefilledMessage string) (*GenerateQrCodeResponse, error)
UpdateQrCode updates a QR code by its ID for the specified phone number with the given prefilled message.
func (*PhoneNumberManager) VerifyCode
func (manager *PhoneNumberManager) VerifyCode(phoneNumberId, verificationCode string) (VerifyCodeResponse, error)
type PhoneNumberManagerConfig
PhoneNumberManagerConfig holds the configuration for PhoneNumberManager.
type PhoneNumberManagerConfig struct {
BusinessAccountId string
ApiAccessToken string
Requester *request_client.RequestClient
}
type Pricing
type Pricing struct {
PricingModel string `json:"pricing_model"`
Category MessageStatusCategoryEnum `json:"category"`
}
type Profile
type Profile struct {
Name string `json:"name"`
}
type RequestVerificationCodeResponse
type RequestVerificationCodeResponse struct {
Success bool `json:"success,omitempty"`
}
type Status
type Status struct {
Conversation Conversation `json:"conversation,omitempty"`
Errors []Error `json:"errors,omitempty"`
Status string `json:"status"`
Timestamp string `json:"timestamp"`
RecipientId string `json:"recipient_id"`
Pricing Pricing `json:"pricing,omitempty"`
}
type SystemNotificationTypeEnum
type SystemNotificationTypeEnum string
const (
SystemNotificationTypeCustomerPhoneNumberChange SystemNotificationTypeEnum = "user_changed_number"
SystemNotificationTypeCustomerIdentityChanged SystemNotificationTypeEnum = "customer_identity_changed"
)
type TemplateAnalyticsType
type TemplateAnalyticsType struct {
}
type TemplateManager
TemplateManager is responsible for managing WhatsApp Business message templates.
type TemplateManager struct {
businessAccountId string
apiAccessToken string
requester *request_client.RequestClient
}
func NewTemplateManager
func NewTemplateManager(config *TemplateManagerConfig) *TemplateManager
NewTemplateManager creates a new TemplateManager with the given configuration.
func (*TemplateManager) Create
func (manager *TemplateManager) Create(body WhatsappMessageTemplateCreateRequestBody) (*MessageTemplateCreationResponse, error)
func (*TemplateManager) Delete
func (tm *TemplateManager) Delete(id string)
func (*TemplateManager) Fetch
func (manager *TemplateManager) Fetch(Id string) (*WhatsAppBusinessMessageTemplateNode, error)
Fetch fetches a single WhatsApp Business message template by its ID.
func (*TemplateManager) FetchAll
func (manager *TemplateManager) FetchAll() (*WhatsAppBusinessTemplatesFetchResponseEdge, error)
FetchAll fetches all WhatsApp Business message templates.
func (*TemplateManager) FetchMessageTemplatePreviews
func (tm *TemplateManager) FetchMessageTemplatePreviews()
func (*TemplateManager) FetchPerformanceAnalytics
func (manager *TemplateManager) FetchPerformanceAnalytics(templateName, templateId string) (string, error)
func (*TemplateManager) MigrateFromOtherBusinessAccount
func (manager *TemplateManager) MigrateFromOtherBusinessAccount(sourcePageNumber int, sourceWabaId int) (string, error)
func (*TemplateManager) Update
func (manager *TemplateManager) Update(templateId string, updates WhatsAppBusinessAccountMessageTemplateUpdateRequestBody) (*MessageTemplateCreationResponse, error)
type TemplateManagerConfig
TemplateManagerConfig represents the configuration for creating a new TemplateManager.
type TemplateManagerConfig struct {
BusinessAccountId string
ApiAccessToken string
Requester *request_client.RequestClient
}
type TemplateMessagePreviewEdge
type TemplateMessagePreviewEdge struct {
Data []TemplateMessagePreviewNode `json:"data,omitempty"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging,omitempty"`
}
type TemplateMessagePreviewNode
type TemplateMessagePreviewNode struct {
Body string `json:"body,omitempty"`
Buttons []WhatsAppBusinessAccountMessageTemplatePreviewButton `json:"buttons,omitempty"`
Footer string `json:"footer,omitempty"`
Header string `json:"header,omitempty"`
Language string `json:"language,omitempty"`
}
type TemplatePerformanceAnalytics
type TemplatePerformanceAnalytics struct {
}
type Value
type Value struct {
MessagingProduct string `json:"messaging_product"`
Metadata Metadata `json:"metadata"`
Contacts []Contact `json:"contacts,omitempty"`
Statuses []Status `json:"statuses,omitempty"`
Messages []Message `json:"messages,omitempty"`
Errors []Error `json:"errors,omitempty"`
}
type VerifyCodeMethod
type VerifyCodeMethod string
const (
VerifyCodeMethodSms VerifyCodeMethod = "SMS"
VerifyCodeMethodVoice VerifyCodeMethod = "VOICE"
)
type VerifyCodeResponse
type VerifyCodeResponse struct {
Success bool `json:"success,omitempty"`
}
type WebhookManager
WebhookManager represents a manager for handling webhooks.
type WebhookManager struct {
secret string
path string
port int
EventManager EventManager
Requester request_client.RequestClient
}
func NewWebhook
func NewWebhook(options *WebhookManagerConfig) *WebhookManager
NewWebhook creates a new WebhookManager with the given options.
func (*WebhookManager) GetRequestHandler
func (wh *WebhookManager) GetRequestHandler(c echo.Context) error
GetRequestHandler handles GET requests to the webhook endpoint.
func (*WebhookManager) ListenToEvents
func (wh *WebhookManager) ListenToEvents()
ListenToEvents starts listening to events and handles incoming requests.
func (*WebhookManager) PostRequestHandler
func (wh *WebhookManager) PostRequestHandler(c echo.Context) error
PostRequestHandler handles POST requests to the webhook endpoint.
func (*WebhookManager) createEchoHttpServer
func (wh *WebhookManager) createEchoHttpServer() *echo.Echo
createEchoHttpServer creates a new instance of Echo HTTP server. This function is used in case the client has not provided any custom HTTP server.
type WebhookManagerConfig
WebhookManagerConfig represents the configuration options for creating a new WebhookManager.
type WebhookManagerConfig struct {
Secret string `validate:"required"`
EventManager EventManager `validate:"required"`
Requester request_client.RequestClient `validate:"required"`
Path string
Port int
}
type WhatsAppBusinessAccountMessageTemplateDeleteRequestBody
type WhatsAppBusinessAccountMessageTemplateDeleteRequestBody struct {
HsmId string `json:"hsm_id,omitempty"`
Name string `json:"name,omitempty"`
}
type WhatsAppBusinessAccountMessageTemplatePreviewButton
type WhatsAppBusinessAccountMessageTemplatePreviewButton struct {
AutoFillText string `json:"auto_fill_text,omitempty"`
Text string `json:"text,omitempty"`
}
type WhatsAppBusinessAccountMessageTemplateUpdateRequestBody
this is the request body for the message template update request
type WhatsAppBusinessAccountMessageTemplateUpdateRequestBody struct {
Components []WhatsappMessageTemplateComponentCreateOrUpdateRequestBody `json:"components,omitempty"`
Category string `json:"category,omitempty"`
MessageSendTtlSeconds int `json:"message_send_ttl_seconds,omitempty"`
}
type WhatsAppBusinessHSMWhatsAppBusinessHSMQualityScoreShape
WhatsAppBusinessHSMWhatsAppBusinessHSMQualityScoreShape represents the quality score of a WhatsApp Business message template.
type WhatsAppBusinessHSMWhatsAppBusinessHSMQualityScoreShape struct {
Date int `json:"date,omitempty"`
Reasons []string `json:"reasons,omitempty"`
Score int `json:"score,omitempty"`
}
type WhatsAppBusinessHSMWhatsAppHSMComponent
WhatsAppBusinessHSMWhatsAppHSMComponent represents a component in a WhatsApp Business message template.
type WhatsAppBusinessHSMWhatsAppHSMComponent struct {
AddSecurityRecommendation bool `json:"add_security_recommendation,omitempty"`
Buttons []WhatsAppBusinessHSMWhatsAppHSMComponentButton `json:"buttons,omitempty"`
Cards []WhatsAppBusinessHSMWhatsAppHSMComponentCard `json:"cards,omitempty"`
CodeExpirationMinutes int `json:"code_expiration_minutes,omitempty"`
Example WhatsAppBusinessHSMWhatsAppHSMComponentExample `json:"example,omitempty"`
Format string `json:"format,omitempty"`
LimitedTimeOffer WhatsAppBusinessHSMWhatsAppLimitedTimeOfferParameterShape `json:"limited_time_offer,omitempty"`
Text string `json:"text,omitempty"`
Type string `json:"type,omitempty"`
}
type WhatsAppBusinessHSMWhatsAppHSMComponentButton
WhatsAppBusinessHSMWhatsAppHSMComponentButton represents a button component in a WhatsApp Business message template.
type WhatsAppBusinessHSMWhatsAppHSMComponentButton struct {
}
type WhatsAppBusinessHSMWhatsAppHSMComponentCard
WhatsAppBusinessHSMWhatsAppHSMComponentCard represents a card component in a WhatsApp Business message template.
type WhatsAppBusinessHSMWhatsAppHSMComponentCard struct {
}
type WhatsAppBusinessHSMWhatsAppHSMComponentExample
WhatsAppBusinessHSMWhatsAppHSMComponentExample represents an example component in a WhatsApp Business message template.
type WhatsAppBusinessHSMWhatsAppHSMComponentExample struct {
}
type WhatsAppBusinessHSMWhatsAppLimitedTimeOfferParameterShape
WhatsAppBusinessHSMWhatsAppLimitedTimeOfferParameterShape represents a limited time offer parameter in a WhatsApp Business message template.
type WhatsAppBusinessHSMWhatsAppLimitedTimeOfferParameterShape struct {
}
type WhatsAppBusinessMessageTemplateNode
WhatsAppBusinessMessageTemplateNode represents a WhatsApp Business message template.
type WhatsAppBusinessMessageTemplateNode struct {
Id string `json:"id,omitempty"`
Category MessageTemplateCategory `json:"category,omitempty"`
Components []WhatsAppBusinessHSMWhatsAppHSMComponent `json:"components,omitempty"`
CorrectCategory string `json:"correct_category,omitempty"`
CtaUrlLinkTrackingOptedOut bool `json:"cta_url_link_tracking_opted_out,omitempty"`
Language string `json:"language,omitempty"`
LibraryTemplateName string `json:"library_template_name,omitempty"`
MessageSendTtlSeconds int `json:"message_send_ttl_seconds,omitempty"`
Name string `json:"name,omitempty"`
PreviousCategory string `json:"previous_category,omitempty"`
QualityScore WhatsAppBusinessHSMWhatsAppBusinessHSMQualityScoreShape `json:"quality_score,omitempty"`
RejectedReason string `json:"rejected_reason,omitempty"`
Status MessageTemplateStatus `json:"status,omitempty"`
}
type WhatsAppBusinessTemplatesFetchResponseEdge
WhatsAppBusinessTemplatesFetchResponseEdge represents the response structure for fetching WhatsApp Business message templates.
type WhatsAppBusinessTemplatesFetchResponseEdge struct {
Data []WhatsAppBusinessMessageTemplateNode `json:"data,omitempty"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging,omitempty"`
}
type WhatsappApiNotificationPayloadSchemaType
type WhatsappApiNotificationPayloadSchemaType struct {
Object string `json:"object"`
Entry []Entry `json:"entry"`
}
type WhatsappBusinessAccountPhoneNumber
WhatsappBusinessAccountPhoneNumber represents a WhatsApp Business Account phone number.
type WhatsappBusinessAccountPhoneNumber struct {
VerifiedName string `json:"verified_name,omitempty"`
DisplayPhoneNumber string `json:"display_phone_number,omitempty"`
Id string `json:"id,omitempty"`
QualityRating string `json:"quality_rating,omitempty"`
CodeVerification struct {
Status string `json:"code_verification_status,omitempty"`
} `json:"code_verification_status,omitempty"`
PlatformType string `json:"platform_type,omitempty"`
}
type WhatsappBusinessAccountPhoneNumberEdge
WhatsappBusinessAccountPhoneNumberEdge represents a list of WhatsApp Business Account phone numbers.
type WhatsappBusinessAccountPhoneNumberEdge struct {
Data []WhatsappBusinessAccountPhoneNumber `json:"data,omitempty"`
Paging internal.WhatsAppBusinessApiPaginationMeta `json:"paging,omitempty"`
Summary string `json:"summary,omitempty"`
}
type WhatsappMessageTemplateButtonCreateRequestBody
WhatsappMessageTemplateButtonCreateRequestBody represents the request body for creating a button in a message template.
type WhatsappMessageTemplateButtonCreateRequestBody struct {
// enum {QUICK_REPLY, URL, PHONE_NUMBER, OTP, MPM, CATALOG, FLOW, VOICE_CALL}
Type string `json:"type,omitempty"`
Text string `json:"text,omitempty"`
Url string `json:"url,omitempty"`
PhoneNumber string `json:"phone_number,omitempty"`
Example string `json:"example,omitempty"`
FlowId string `json:"flow_id,omitempty"`
ZeroTapTermsAccepted bool `json:"zero_tap_terms_accepted,omitempty"`
}
type WhatsappMessageTemplateComponentCreateOrUpdateRequestBody
WhatsappMessageTemplateComponentCreateOrUpdateRequestBody represents the request body for creating or updating a component in a message template.
type WhatsappMessageTemplateComponentCreateOrUpdateRequestBody struct {
Type MessageTemplateComponentType `json:"type,omitempty"`
Format MessageTemplateComponentFormat `json:"format,omitempty"`
Text string `json:"text,omitempty"`
Buttons []WhatsappMessageTemplateButtonCreateRequestBody `json:"buttons,omitempty"`
}
func (*WhatsappMessageTemplateComponentCreateOrUpdateRequestBody) AddButton
func (component *WhatsappMessageTemplateComponentCreateOrUpdateRequestBody) AddButton(button WhatsappMessageTemplateButtonCreateRequestBody)
AddButton adds a button to the component.
type WhatsappMessageTemplateCreateRequestBody
WhatsappMessageTemplateCreateRequestBody represents the request body for creating a message template.
type WhatsappMessageTemplateCreateRequestBody struct {
AllowCategoryChange bool `json:"allow_category_change,omitempty" `
// enum {UTILITY, MARKETING, AUTHENTICATION}
Category string `json:"category,omitempty" validate:"required"`
Components []WhatsappMessageTemplateComponentCreateOrUpdateRequestBody `json:"components" validate:"required"`
Name string `json:"name,omitempty" validate:"required"`
Language string `json:"language" validate:"required"`
LibraryTemplateName string `json:"library_template_name,omitempty"`
LibraryTemplateButtonInputs []WhatsappMessageTemplateButtonCreateRequestBody `json:"library_template_button_inputs,omitempty"`
}
func (*WhatsappMessageTemplateCreateRequestBody) AddComponent
func (body *WhatsappMessageTemplateCreateRequestBody) AddComponent(component WhatsappMessageTemplateComponentCreateOrUpdateRequestBody)