mirror of
https://mau.dev/mautrix/go.git
synced 2026-03-14 14:25:53 +01:00
Refactor checkpoint methods
This commit is contained in:
parent
cbdc6ab20e
commit
427497a245
2 changed files with 25 additions and 17 deletions
|
|
@ -211,23 +211,18 @@ func (as *AppService) handleEvents(evts []*event.Event, defaultTypeClass event.T
|
|||
}
|
||||
}
|
||||
|
||||
func (as *AppService) sendMessageSendCheckpoint(evt *event.Event) error {
|
||||
func (as *AppService) sendMessageSendCheckpoint(evt *event.Event) {
|
||||
endpoint := as.MessageSendCheckpointEndpoint
|
||||
if endpoint == "" {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
if _, ok := GetCheckpointTypes()[evt.Type]; !ok {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
as.Log.Debugfln("Sending message send checkpoint for %s to API server", evt.ID)
|
||||
|
||||
checkpoint := NewMessageSendCheckpoint(evt.ID, evt.RoomID, StepBridge, StatusSuccesss, evt.Type)
|
||||
if evt.Type == event.EventMessage {
|
||||
checkpoint.MessageType = evt.Content.AsMessage().MsgType
|
||||
}
|
||||
return checkpoint.Send(as)
|
||||
as.SendMessageSendCheckpoint(evt, StepBridge)
|
||||
}
|
||||
|
||||
// GetRoom handles a /rooms GET call from the homeserver.
|
||||
|
|
|
|||
|
|
@ -59,22 +59,35 @@ type MessageSendCheckpoint struct {
|
|||
Info string `json:"info"`
|
||||
}
|
||||
|
||||
func NewMessageSendCheckpoint(eventID id.EventID, roomID id.RoomID, step MessageSendCheckpointStep, status MessageSendCheckpointStatus, eventType event.Type) *MessageSendCheckpoint {
|
||||
return &MessageSendCheckpoint{
|
||||
EventID: eventID,
|
||||
RoomID: roomID,
|
||||
func NewMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, status MessageSendCheckpointStatus) *MessageSendCheckpoint {
|
||||
checkpoint := MessageSendCheckpoint{
|
||||
EventID: evt.ID,
|
||||
RoomID: evt.RoomID,
|
||||
Step: step,
|
||||
Timestamp: time.Now(),
|
||||
Status: status,
|
||||
EventType: eventType,
|
||||
EventType: evt.Type,
|
||||
ReportedBy: ReportedByBridge,
|
||||
}
|
||||
if evt.Type == event.EventMessage {
|
||||
checkpoint.MessageType = evt.Content.AsMessage().MsgType
|
||||
}
|
||||
return &checkpoint
|
||||
}
|
||||
|
||||
func NewErrorMessageSendCheckpoint(eventID id.EventID, roomID id.RoomID, step MessageSendCheckpointStep, eventType event.Type, err error) *MessageSendCheckpoint {
|
||||
checkpoint := NewMessageSendCheckpoint(eventID, roomID, step, StatusPermFailure, eventType)
|
||||
func (as *AppService) SendMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep) {
|
||||
checkpoint := NewMessageSendCheckpoint(evt, step, StatusSuccesss)
|
||||
go checkpoint.Send(as)
|
||||
}
|
||||
|
||||
func (as *AppService) SendErrorMessageSendCheckpoint(evt *event.Event, step MessageSendCheckpointStep, err error, permanent bool) {
|
||||
status := StatusWillRetry
|
||||
if permanent {
|
||||
status = StatusPermFailure
|
||||
}
|
||||
checkpoint := NewMessageSendCheckpoint(evt, step, status)
|
||||
checkpoint.Info = err.Error()
|
||||
return checkpoint
|
||||
go checkpoint.Send(as)
|
||||
}
|
||||
|
||||
func GetCheckpointTypes() map[event.Type]interface{} {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue