github.com/sharovik/devbot@v1.0.1-0.20240308094637-4a0387c40516/internal/dto/slack_response_event_message.go (about)

     1  package dto
     2  
     3  // MessageBlock child struct of SlackResponseEventMessage
     4  type MessageBlock struct {
     5  	BlockID  string `json:"block_id"`
     6  	Elements []struct {
     7  		Elements []struct {
     8  			Type   string `json:"type"`
     9  			UserID string `json:"user_id,omitempty"`
    10  			Text   string `json:"text,omitempty"`
    11  		} `json:"elements"`
    12  		Type string `json:"type"`
    13  	} `json:"elements"`
    14  	Type string `json:"type"`
    15  }
    16  
    17  // SlackResponseEventMessage main event message object
    18  type SlackResponseEventMessage struct {
    19  	Channel      string         `json:"channel"`
    20  	ClientMsgID  string         `json:"client_msg_id"`
    21  	DisplayAsBot bool           `json:"display_as_bot"`
    22  	EventTs      string         `json:"event_ts"`
    23  	ThreadTS     string         `json:"thread_ts"`
    24  	Files        []File         `json:"files"`
    25  	SourceTeam   string         `json:"source_team"`
    26  	Team         string         `json:"team"`
    27  	Text         string         `json:"text"`
    28  	Ts           string         `json:"ts"`
    29  	Type         string         `json:"type"`
    30  	Upload       bool           `json:"upload"`
    31  	User         string         `json:"user"`
    32  	UserTeam     string         `json:"user_team"`
    33  	Blocks       []MessageBlock `json:"blocks"`
    34  }
    35  
    36  // ToBaseOriginalMessage converts the SlackResponseEventMessage to BaseOriginalMessage object
    37  func (m SlackResponseEventMessage) ToBaseOriginalMessage() BaseOriginalMessage {
    38  	return BaseOriginalMessage{
    39  		Text:        m.Text,
    40  		User:        m.User,
    41  		Files:       m.Files,
    42  		Channel:     m.Channel,
    43  		ClientMsgID: m.ClientMsgID,
    44  		EventTs:     m.EventTs,
    45  		ThreadTS:    m.ThreadTS,
    46  		Ts:          m.Ts,
    47  		Type:        m.Type,
    48  	}
    49  }