🗃️ Add relations between quoted event and original event
This commit is contained in:
		| @@ -57,13 +57,14 @@ func newMessageEvent(c *fiber.Ctx) error { | ||||
| 	_ = jsoniter.Unmarshal(raw, &parsed) | ||||
|  | ||||
| 	event := models.Event{ | ||||
| 		Uuid:      data.Uuid, | ||||
| 		Body:      parsed, | ||||
| 		Type:      data.Type, | ||||
| 		Sender:    member, | ||||
| 		Channel:   channel, | ||||
| 		ChannelID: channel.ID, | ||||
| 		SenderID:  member.ID, | ||||
| 		Uuid:         data.Uuid, | ||||
| 		Body:         parsed, | ||||
| 		Type:         data.Type, | ||||
| 		Sender:       member, | ||||
| 		Channel:      channel, | ||||
| 		QuoteEventID: data.Body.QuoteEventID, | ||||
| 		ChannelID:    channel.ID, | ||||
| 		SenderID:     member.ID, | ||||
| 	} | ||||
|  | ||||
| 	if event, err = services.NewEvent(event); err != nil { | ||||
|   | ||||
| @@ -15,13 +15,15 @@ const ( | ||||
| type Event struct { | ||||
| 	cruda.BaseModel | ||||
|  | ||||
| 	Uuid      string            `json:"uuid"` | ||||
| 	Body      datatypes.JSONMap `json:"body"` | ||||
| 	Type      string            `json:"type"` | ||||
| 	Channel   Channel           `json:"channel"` | ||||
| 	Sender    ChannelMember     `json:"sender"` | ||||
| 	ChannelID uint              `json:"channel_id"` | ||||
| 	SenderID  uint              `json:"sender_id"` | ||||
| 	Uuid         string            `json:"uuid"` | ||||
| 	Body         datatypes.JSONMap `json:"body"` | ||||
| 	Type         string            `json:"type"` | ||||
| 	Channel      Channel           `json:"channel"` | ||||
| 	Sender       ChannelMember     `json:"sender"` | ||||
| 	QuoteEventID *uint             `json:"quote_event_id,omitempty"` | ||||
| 	QuoteEvent   *Event            `json:"quote_event,omitempty" gorm:"foreignKey:QuoteEventID"` | ||||
| 	ChannelID    uint              `json:"channel_id"` | ||||
| 	SenderID     uint              `json:"sender_id"` | ||||
| } | ||||
|  | ||||
| // Event Payloads | ||||
| @@ -30,7 +32,7 @@ type EventMessageBody struct { | ||||
| 	Text         string   `json:"text,omitempty"` | ||||
| 	Algorithm    string   `json:"algorithm,omitempty"` | ||||
| 	Attachments  []string `json:"attachments,omitempty"` | ||||
| 	QuoteEvent   uint     `json:"quote_event,omitempty"` | ||||
| 	RelatedEvent uint     `json:"related_event,omitempty"` | ||||
| 	QuoteEventID *uint    `json:"quote_event,omitempty"` | ||||
| 	RelatedEvent *uint    `json:"related_event,omitempty"` | ||||
| 	RelatedUsers []uint   `json:"related_users,omitempty"` | ||||
| } | ||||
|   | ||||
| @@ -19,15 +19,16 @@ func EditMessage(event models.Event, body models.EventMessageBody) (models.Event | ||||
| 	if err != nil { | ||||
| 		return event, err | ||||
| 	} | ||||
| 	body.RelatedEvent = event.ID | ||||
| 	body.RelatedEvent = &event.ID | ||||
| 	_, err = NewEvent(models.Event{ | ||||
| 		Uuid:      uuid.NewString(), | ||||
| 		Body:      EncodeMessageBody(body), | ||||
| 		Type:      models.EventMessageEdit, | ||||
| 		Channel:   event.Channel, | ||||
| 		Sender:    event.Sender, | ||||
| 		ChannelID: event.ChannelID, | ||||
| 		SenderID:  event.SenderID, | ||||
| 		Uuid:         uuid.NewString(), | ||||
| 		Body:         EncodeMessageBody(body), | ||||
| 		Type:         models.EventMessageEdit, | ||||
| 		Channel:      event.Channel, | ||||
| 		Sender:       event.Sender, | ||||
| 		QuoteEventID: body.QuoteEventID, | ||||
| 		ChannelID:    event.ChannelID, | ||||
| 		SenderID:     event.SenderID, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		return event, err | ||||
| @@ -44,7 +45,7 @@ func DeleteMessage(event models.Event) (models.Event, error) { | ||||
| 	_, err = NewEvent(models.Event{ | ||||
| 		Uuid: uuid.NewString(), | ||||
| 		Body: EncodeMessageBody(models.EventMessageBody{ | ||||
| 			RelatedEvent: event.ID, | ||||
| 			RelatedEvent: &event.ID, | ||||
| 		}), | ||||
| 		Type:      models.EventMessageDelete, | ||||
| 		Channel:   event.Channel, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user