Packages Documentation
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
import "github.com/wapikit/wapi.go/pkg/events"
type AccountAlertEvent struct {
BaseBusinessAccountEvent
EntityType string
EntityId string
AlertSeverity AccountAlertSeverityEnum
AlertStatus AccountAlertStatusEnum
AlertType string
AlertDescription string
}
func NewAccountAlertEvent(baseEvent *BaseBusinessAccountEvent, entityType string, entityId string, alertSeverity AccountAlertSeverityEnum, alertStatus AccountAlertStatusEnum, alertType string, alertDescription string) *AccountAlertEvent
type AccountAlertSeverityEnum string
const (
AccountAlertSeverityEnumCritical AccountAlertSeverityEnum = "CRITICAL"
AccountAlertSeverityEnumWarning AccountAlertSeverityEnum = "WARNING"
)
type AccountAlertStatusEnum string
const (
AccountAlertStatusEnumActive AccountAlertStatusEnum = "ACTIVE"
AccountAlertStatusEnumResolved AccountAlertStatusEnum = "RESOLVED"
)
type AccountReviewUpdateEvent struct {
BaseBusinessAccountEvent
Decision AccountReviewUpdateEventEnum
}
func NewAccountReviewUpdateEvent(baseEvent *BaseBusinessAccountEvent, decision AccountReviewUpdateEventEnum) *AccountReviewUpdateEvent
type AccountReviewUpdateEventEnum string
const (
AccountReviewUpdateEventEnumApproved AccountReviewUpdateEventEnum = "APPROVED"
AccountReviewUpdateEventEnumRejected AccountReviewUpdateEventEnum = "REJECTED"
)
type AccountUpdateEvent struct {
BaseBusinessAccountEvent
StatusUpdate AccountUpdateEventEnum
PhoneNumber string
BanInfo *BanInfo
ViolationInfo *ViolationInfo
RestrictionInfo []RestrictionInfo
}
func NewAccountUpdateEvent(baseEvent *BaseBusinessAccountEvent, statusUpdate AccountUpdateEventEnum, phoneNumber string) *AccountUpdateEvent
type AccountUpdateEventEnum string
const (
AccountUpdateEventEnumVerifiedAccount AccountUpdateEventEnum = "VERIFIED_ACCOUNT"
AccountUpdateEventEnumDisabledAccount AccountUpdateEventEnum = "DISABLED_UPDATE"
AccountUpdateEventEnumAccountViolation AccountUpdateEventEnum = "ACCOUNT_VIOLATION"
AccountUpdateEventEnumAccountRestriction AccountUpdateEventEnum = "ACCOUNT_RESTRICTION"
AccountUpdateEventEnumAccountDeleted AccountUpdateEventEnum = "ACCOUNT_DELETED"
AccountUpdateEventEnumPartnerRemoved AccountUpdateEventEnum = "PARTNER_REMOVED"
)
type AdInteractionEvent struct {
BaseMessageEvent `json:",inline"`
AdSource AdSource `json:"adSource"`
Text string `json:"text"`
}
func NewAdInteractionEvent(baseMessageEvent BaseMessageEvent, adSource AdSource, text string) *AdInteractionEvent
type AdInteractionSourceMediaType string
const (
// AdInteractionSourceMediaTypeImage indicates that the ad interaction source is an image.
AdInteractionSourceMediaTypeImage AdInteractionSourceMediaType = "image"
// AdInteractionSourceMediaTypeVideo indicates that the ad interaction source is a video.
AdInteractionSourceMediaTypeVideo AdInteractionSourceMediaType = "video"
)
type AdInteractionSourceType string
const (
// AdInteractionSourceTypePost indicates that the ad interaction is from a post.
AdInteractionSourceTypePost AdInteractionSourceType = "post"
// AdInteractionSourceTypeAd indicates that the ad interaction is from an ad.
AdInteractionSourceTypeAd AdInteractionSourceType = "ad"
)
type AdSource struct {
Url string `json:"url"`
Id string `json:"id"`
Type AdInteractionSourceType `json:"type"`
Title string `json:"title"`
Description string `json:"description"`
MediaUrl string `json:"mediaUrl"`
MediaType AdInteractionSourceMediaType `json:"mediaType"`
ThumbnailUrl string `json:"thumbnailUrl"`
CtwaClid string `json:"ctwaClid"`
}
type AudioMessageEvent struct {
BaseMediaMessageEvent `json:",inline"`
Audio components.AudioMessage `json:"audio"`
}
func NewAudioMessageEvent(baseMessageEvent BaseMessageEvent, audio components.AudioMessage, mimeType, sha256, mediaId string) *AudioMessageEvent
type BanInfo struct {
WabaBanState string
WabaBanDate string
}
type BaseBusinessAccountEvent struct {
BusinessAccountId string `json:"business_account_id"`
Timestamp string `json:"timestamp"`
}
func (bme BaseBusinessAccountEvent) GetEventType() string
type BaseBusinessAccountEventInterface interface {
BaseEvent
}
type BaseEvent interface {
GetEventType() string
}
type BaseMediaMessageEvent struct {
BaseMessageEvent `json:",inline"`
MediaId string `json:"media_id"`
MimeType string `json:"mime_type"`
Sha256 string `json:"sha256"`
}
type BaseMessageEvent struct {
BusinessAccountId string `json:"business_account_id"`
requester request_client.RequestClient
MessageId string `json:"message_id"`
From string `json:"from"`
SenderName string `json:"sender_name"`
Context MessageContext `json:"context"`
Timestamp string `json:"timestamp"`
IsForwarded bool `json:"is_forwarded"`
PhoneNumber BusinessPhoneNumber `json:"phone_number"`
}
func NewBaseMessageEvent(params BaseMessageEventParams) BaseMessageEvent
func (bme BaseMessageEvent) GetEventType() string
func (baseMessageEvent *BaseMessageEvent) React(emoji string) (string, error)
func (baseMessageEvent *BaseMessageEvent) Reply(Message components.BaseMessage) (string, error)
type BaseMessageEventInterface interface {
BaseEvent
Reply() (string, error)
React() (string, error)
}
type BaseMessageEventParams struct {
BusinessAccountId string
MessageId string
PhoneNumber BusinessPhoneNumber
Timestamp string
From string // * whatsapp account id of the user who sent the message
SenderName string
IsForwarded bool
Context MessageContext // * this context will not be present if in case a message is a reply to another message
Requester request_client.RequestClient
}
type BaseSystemEvent struct {
Timestamp string `json:"timestamp"`
}
func (bme BaseSystemEvent) GetEventType() string
type BaseSystemEventInterface interface {
BaseEvent
}
type BusinessCapabilityUpdateEvent struct {
BaseBusinessAccountEvent
MaxDailyConversationPerPhone int64
MaxPhoneNumbersPerBusiness int64
}
func NewBusinessCapabilityUpdateEvent(baseEvent *BaseBusinessAccountEvent, maxDailyConversationPerPhone int64, maxPhoneNumbersPerBusiness int64) *BusinessCapabilityUpdateEvent
type BusinessPhoneNumber struct {
DisplayNumber string `json:"display_number"`
Id string `json:"id"`
}
type ContactsMessageEvent struct {
BaseMessageEvent `json:",inline"`
Contacts components.ContactMessage `json:"contacts"`
}
func NewContactsMessageEvent(baseMessageEvent BaseMessageEvent, contacts components.ContactMessage) *ContactsMessageEvent
type CustomerIdentityChangedEvent struct {
BaseSystemEvent `json:",inline"`
Acknowledged string `json:"acknowledged"`
CreationTimestamp string `json:"creationTime"`
Hash string `json:"hash"`
}
type CustomerNumberChangedEvent struct {
BaseSystemEvent `json:",inline"`
ChangeDescription string `json:"changeDescription"`
NewWaId string `json:"newWaId"`
OldWaId string `json:"oldWaId"`
}
type DocumentMessageEvent struct {
BaseMediaMessageEvent
Document components.DocumentMessage
}
func NewDocumentMessageEvent(baseMessageEvent BaseMessageEvent, document components.DocumentMessage, mediaId, sha256, mimeType string) *DocumentMessageEvent
type EventType string
const (
TextMessageEventType EventType = "text_message"
AudioMessageEventType EventType = "audio_message"
VideoMessageEventType EventType = "video_message"
ImageMessageEventType EventType = "image_message"
ContactMessageEventType EventType = "contact_message"
DocumentMessageEventType EventType = "document_message"
LocationMessageEventType EventType = "location_message"
ReactionMessageEventType EventType = "reaction_message"
ListInteractionMessageEventType EventType = "list_interaction_message"
TemplateMessageEventType EventType = "template_message"
QuickReplyMessageEventType EventType = "quick_reply_message"
ReplyButtonInteractionEventType EventType = "reply_button_interaction"
StickerMessageEventType EventType = "sticker_message"
AdInteractionEventType EventType = "ad_interaction_message"
CustomerIdentityChangedEventType EventType = "customer_identity_changed"
CustomerNumberChangedEventType EventType = "customer_number_changed"
MessageDeliveredEventType EventType = "message_delivered"
MessageFailedEventType EventType = "message_failed"
MessageReadEventType EventType = "message_read"
MessageSentEventType EventType = "message_sent"
MessageUndeliveredEventType EventType = "message_undelivered"
OrderReceivedEventType EventType = "order_received"
ProductInquiryEventType EventType = "product_inquiry"
UnknownEventType EventType = "unknown"
ErrorEventType EventType = "error"
WarnEventType EventType = "warn"
ReadyEventType EventType = "ready"
MessageTemplateStatusUpdateEventType EventType = "message_template_status_update"
MessageTemplateQualityUpdateEventType EventType = "message_template_quality_update"
PhoneNumberNameUpdateEventType EventType = "phone_number_name_update"
PhoneNumberQualityUpdateEventType EventType = "phone_number_quality_update"
SecurityEventType EventType = "security"
AccountUpdateEventType EventType = "account_update"
AccountReviewUpdateEventType EventType = "account_review_update"
AccountAlertsEventType EventType = "account_alerts"
BusinessCapabilityUpdateEventType EventType = "business_capability_update"
)
type ImageMessageEvent struct {
BaseMediaMessageEvent `json:",inline"`
Image components.ImageMessage `json:"image"`
}
func NewImageMessageEvent(baseMessageEvent BaseMessageEvent, image components.ImageMessage, mimeType, sha256, mediaId string) *ImageMessageEvent
type ListInteractionEvent struct {
BaseMessageEvent `json:",inline"`
Title string `json:"title"`
ListId string `json:"list_id"`
Description string `json:"description"`
}
func NewListInteractionEvent(baseMessageEvent BaseMessageEvent, title, listId, description string) *ListInteractionEvent
type LocationMessageEvent struct {
BaseMessageEvent `json:",inline"`
Location components.LocationMessage `json:"location"`
}
func NewLocationMessageEvent(baseMessageEvent BaseMessageEvent, location components.LocationMessage) *LocationMessageEvent
type MessageContext struct {
RepliedToMessageId string `json:"replied_to_message_id"`
}
type MessageDeliveredEvent struct {
BaseSystemEvent `json:",inline"`
MessageId string `json:"messageId"`
SentTo string `json:"sentTo"`
}
func NewMessageDeliveredEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo string) *MessageDeliveredEvent
type MessageFailedEvent struct {
BaseSystemEvent `json:",inline"`
MessageId string `json:"messageId"`
SentTo string `json:"sentTo"`
FailReason string `json:"failReason"`
}
func NewMessageFailedEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo, failReason string) *MessageFailedEvent
type MessageReadEvent struct {
BaseSystemEvent `json:",inline"`
MessageId string `json:"messageId"`
SentTo string `json:"sentTo"`
}
func NewMessageReadEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo string) *MessageReadEvent
type MessageSentEvent struct {
BaseSystemEvent `json:",inline"`
MessageId string `json:"messageId"`
SentTo string `json:"sentTo"`
}
func NewMessageSentEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo string) *MessageSentEvent
type MessageTemplateCategoryEnum string
const (
MessageTemplateCategoryEnumMarketing MessageTemplateCategoryEnum = "MARKETING"
MessageTemplateCategoryEnumOtp MessageTemplateCategoryEnum = "OTP"
MessageTemplateCategoryEnumTransactional MessageTemplateCategoryEnum = "TRANSACTIONAL"
MessageTemplateCategoryEnumAuthentication MessageTemplateCategoryEnum = "AUTHENTICATION"
MessageTemplateCategoryEnumUtility MessageTemplateCategoryEnum = "UTILITY"
)
type MessageTemplateQualityUpdateEvent struct {
BaseBusinessAccountEvent
PreviousQualityScore MessageTemplateQualityUpdateQualityScoreEnum
NewQualityScore MessageTemplateQualityUpdateQualityScoreEnum
MessageTemplateId int64
MessageTemplateName string
MessageTemplateLanguage string
}
func NewMessageTemplateQualityUpdateEvent(baseEvent *BaseBusinessAccountEvent, previousQualityScore MessageTemplateQualityUpdateQualityScoreEnum, newQualityScore MessageTemplateQualityUpdateQualityScoreEnum, messageTemplateId int64, messageTemplateName string, messageTemplateLanguage string) *MessageTemplateQualityUpdateEvent
type MessageTemplateQualityUpdateQualityScoreEnum string
const (
MessageTemplateQualityUpdateQualityScoreEnumGreen MessageTemplateQualityUpdateQualityScoreEnum = "GREEN"
MessageTemplateQualityUpdateQualityScoreEnumRed MessageTemplateQualityUpdateQualityScoreEnum = "RED"
MessageTemplateQualityUpdateQualityScoreEnumUnknown MessageTemplateQualityUpdateQualityScoreEnum = "UNKNOWN"
MessageTemplateQualityUpdateQualityScoreEnumYellow MessageTemplateQualityUpdateQualityScoreEnum = "YELLOW"
)
type MessageTemplateStatusUpdateEvent struct {
BaseBusinessAccountEvent
Event MessageTemplateStatusUpdateEventEnum
MessageTemplateId int64
MessageTemplateName string
MessageTemplateLanguage string
Reason MessageTemplateStatusUpdateReason
}
func NewMessageTemplateStatusUpdateEvent(baseEvent *BaseBusinessAccountEvent, event MessageTemplateStatusUpdateEventEnum, messageTemplateId int64, messageTemplateName string, messageTemplateLanguage string, reason MessageTemplateStatusUpdateReason) *MessageTemplateStatusUpdateEvent
type MessageTemplateStatusUpdateEventEnum string
const (
MessageTemplateStatusUpdateEventEnumApproved MessageTemplateStatusUpdateEventEnum = "APPROVED"
MessageTemplateStatusUpdateEventEnumDisabled MessageTemplateStatusUpdateEventEnum = "DISABLED"
MessageTemplateStatusUpdateEventEnumInAppeal MessageTemplateStatusUpdateEventEnum = "IN_APPEAL"
MessageTemplateStatusUpdateEventEnumPending MessageTemplateStatusUpdateEventEnum = "PENDING"
MessageTemplateStatusUpdateEventEnumReinstated MessageTemplateStatusUpdateEventEnum = "REINSTATED"
MessageTemplateStatusUpdateEventEnumRejected MessageTemplateStatusUpdateEventEnum = "REJECTED"
MessageTemplateStatusUpdateEventEnumFlagged MessageTemplateStatusUpdateEventEnum = "FLAGGED"
)
type MessageTemplateStatusUpdateReason string
const (
MessageTemplateStatusUpdateReasonAbusiveContent MessageTemplateStatusUpdateReason = "ABUSIVE_CONTENT"
MessageTemplateStatusUpdateReasonIncorrectCategory MessageTemplateStatusUpdateReason = "INCORRECT_CATEGORY"
MessageTemplateStatusUpdateReasonInvalidFormat MessageTemplateStatusUpdateReason = "INVALID_FORMAT"
MessageTemplateStatusUpdateReasonNone MessageTemplateStatusUpdateReason = "NONE"
MessageTemplateStatusUpdateReasonScam MessageTemplateStatusUpdateReason = "SCAM"
)
type MessageUndeliveredEvent struct {
BaseSystemEvent `json:",inline"`
MessageId string `json:"messageId"`
SentTo string `json:"sentTo"`
}
func NewMessageUndeliveredEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo string) *MessageUndeliveredEvent
type OrderEvent struct {
BaseMessageEvent `json:",inline"`
Order components.Order `json:"order"`
}
func NewOrderEvent(baseMessageEvent BaseMessageEvent, order components.Order) *OrderEvent
type PhoneNumberNameUpdateEvent struct {
BaseBusinessAccountEvent
PhoneNumber string
Name string
Decision string
RejectionReason *string
}
func NewPhoneNumberNameUpdateEvent(baseEvent *BaseBusinessAccountEvent, phoneNumber string, name string, decision string, reason *string) *PhoneNumberNameUpdateEvent
type PhoneNumberQualityUpdateCurrentLimitEnum string
const (
PhoneNumberQualityUpdateCurrentLimitEnumTier50 PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_50"
PhoneNumberQualityUpdateCurrentLimitEnumTier250 PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_250"
PhoneNumberQualityUpdateCurrentLimitEnumTier1K PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_1K"
PhoneNumberQualityUpdateCurrentLimitEnumTier10K PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_10K"
PhoneNumberQualityUpdateCurrentLimitEnumTier100K PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_100K"
PhoneNumberQualityUpdateCurrentLimitEnumTierUnlimited PhoneNumberQualityUpdateCurrentLimitEnum = "TIER_UNLIMITED"
)
type PhoneNumberQualityUpdateEvent struct {
BaseBusinessAccountEvent
DisplayPhoneNumber string
Event PhoneNumberUpdateEventEnum
CurrentLimit PhoneNumberQualityUpdateCurrentLimitEnum
}
func NewPhoneNumberQualityUpdateEvent(baseEvent *BaseBusinessAccountEvent, displayPhoneNumber string, event PhoneNumberUpdateEventEnum, currentLimit PhoneNumberQualityUpdateCurrentLimitEnum) *PhoneNumberQualityUpdateEvent
type PhoneNumberUpdateEventEnum string
const (
PhoneNumberUpdateEventEnumDowngrade PhoneNumberUpdateEventEnum = "DOWNGRADE"
PhoneNumberUpdateEventEnumFlagged PhoneNumberUpdateEventEnum = "FLAGGED"
PhoneNumberUpdateEventEnumOnboarding PhoneNumberUpdateEventEnum = "ONBOARDING"
PhoneNumberUpdateEventEnumUnflagged PhoneNumberUpdateEventEnum = "UNFLAGGED"
PhoneNumberUpdateEventEnumUpgrade PhoneNumberUpdateEventEnum = "UPGRADE"
)
type ProductInquiryEvent struct {
BaseMessageEvent `json:",inline"`
ProductId string `json:"productId"`
CatalogId string `json:"catalogId"`
Text string `json:"text"`
}
func NewProductInquiryEvent(baseMessageEvent BaseMessageEvent, productId, catalogId, text string) *ProductInquiryEvent
type QuickReplyButtonInteractionEvent struct {
BaseMessageEvent `json:",inline"`
ButtonText string `json:"button_text"`
ButtonPayload string `json:"button_payload"`
}
func NewQuickReplyButtonInteractionEvent(baseMessageEvent BaseMessageEvent, buttonText, buttonPayload string) *QuickReplyButtonInteractionEvent
type ReactionMessageEvent struct {
BaseMessageEvent `json:",inline"`
Reaction components.ReactionMessage
}
func NewReactionMessageEvent(baseMessageEvent BaseMessageEvent, reaction components.ReactionMessage) *ReactionMessageEvent
type ReadyEvent struct {
BaseSystemEvent `json:",inline"`
}
func NewReadyEvent() *ReadyEvent
type ReplyButtonInteractionEvent struct {
BaseMessageEvent `json:",inline"`
Title string `json:"title"`
ButtonId string `json:"button_id"`
}
func NewReplyButtonInteractionEvent(baseMessageEvent BaseMessageEvent, title, buttonId string) *ReplyButtonInteractionEvent
type RestrictionInfo struct {
RestrictionType string
Expiration string
}
type SecurityEvent struct {
BaseBusinessAccountEvent
}
func NewSecurity() *SecurityEvent
type StickerMessageEvent struct {
BaseMediaMessageEvent `json:",inline"`
Sticker components.StickerMessage
}
func NewStickerMessageEvent(baseMessageEvent BaseMessageEvent, sticker components.StickerMessage, mediaId, sha256, mimeType string) *StickerMessageEvent
type TemplateCategoryUpdateEvent struct {
BaseBusinessAccountEvent
MessageTemplateId int64
MessageTemplateName string
MessageTemplateLanguage string
PreviousCategory MessageTemplateCategoryEnum
NewCategory MessageTemplateCategoryEnum
}
func NewMessageTemplateCategoryUpdateEvent(baseEvent *BaseBusinessAccountEvent, messageTemplateId int64, messageTemplateName string, messageTemplateLanguage string, previousCategory MessageTemplateCategoryEnum, newCategory MessageTemplateCategoryEnum) *TemplateCategoryUpdateEvent
type TextMessageEvent struct {
BaseMessageEvent `json:",inline"`
Text string `json:"text"`
}
func NewTextMessageEvent(baseMessageEvent BaseMessageEvent, text string) *TextMessageEvent
type VideoMessageEvent struct {
BaseMediaMessageEvent `json:",inline"`
Video components.VideoMessage `json:"video"`
}
func NewVideoMessageEvent(baseMessageEvent BaseMessageEvent, video components.VideoMessage, mimeType, sha256, mediaId string) *VideoMessageEvent
type ViolationInfo struct {
ViolationType string
}