Skip to content
Snippets Groups Projects
Unverified Commit a2395759 authored by Sumner Evans's avatar Sumner Evans
Browse files

connector: implement sending message redactions

parent d91dae2f
No related branches found
No related tags found
No related merge requests found
Pipeline #16459 passed
......@@ -51,7 +51,7 @@ var (
_ bridgev2.NetworkAPI = (*LinkedInClient)(nil)
_ bridgev2.EditHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.ReactionHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.RedactionHandlingNetworkAPI = (*LinkedInClient)(nil)
_ bridgev2.RedactionHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.ReadReceiptHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.TypingHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.BackfillingNetworkAPI = (*LinkedInClient)(nil)
......@@ -436,6 +436,10 @@ func (l *LinkedInClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.Mat
return l.client.EditMessage(ctx, types.NewURN(string(msg.EditTarget.ID)), matrixfmt.Parse(ctx, l.matrixParser, msg.Content))
}
func (l *LinkedInClient) HandleMatrixMessageRemove(ctx context.Context, msg *bridgev2.MatrixMessageRemove) error {
return l.client.RecallMessage(ctx, types.NewURN(string(msg.TargetMessage.ID)))
}
func (l *LinkedInClient) IsLoggedIn() bool {
return l.userLogin.Metadata.(*UserLoginMetadata).Cookies.GetCookie(linkedingo.LinkedInCookieJSESSIONID) != ""
}
......
......@@ -103,3 +103,18 @@ func (c *Client) EditMessage(ctx context.Context, messageURN types.URN, p SendMe
}
return nil
}
func (c *Client) RecallMessage(ctx context.Context, messageURN types.URN) error {
resp, err := c.newAuthedRequest(http.MethodPost, linkedInVoyagerMessagingDashMessengerMessagesURL).
WithParam("action", "recall").
WithCSRF().
WithRealtimeHeaders().
WithJSONPayload(map[string]any{"messageUrn": messageURN}).
Do(ctx)
if err != nil {
return err
} else if resp.StatusCode != http.StatusNoContent {
return fmt.Errorf("failed to edit message with urn %s (statusCode=%d)", messageURN, resp.StatusCode)
}
return nil
}
......@@ -202,27 +202,6 @@ func (c *Client) StartTyping(conversationUrn string) error {
return nil
}
func (c *Client) DeleteMessage(messageUrn string) error {
actionQuery := queryold.DoActionQuery{
Action: queryold.ActionRecall,
}
deleteMsgPayload := payloadold.DeleteMessagePayload{
MessageUrn: messageUrn,
}
resp, _, err := c.MakeRoutingRequest(routingold.LinkedInVoyagerMessagingDashMessengerMessagesURL, deleteMsgPayload, actionQuery)
if err != nil {
return err
}
if resp.StatusCode > 204 {
return fmt.Errorf("failed to delete message with message urn %s (statusCode=%d)", messageUrn, resp.StatusCode)
}
return nil
}
// this endpoint allows you to mark multiple threads as read/unread at a time
// pass false to second arg to unread all conversations and true to read all of them
func (c *Client) MarkThreadRead(conversationUrns []string, read bool) (*responseold.MarkThreadReadResponse, error) {
......
......@@ -69,14 +69,6 @@ func (p StartTypingPayload) Encode() ([]byte, error) {
return json.Marshal(p)
}
type DeleteMessagePayload struct {
MessageUrn string `json:"messageUrn,omitempty"`
}
func (p DeleteMessagePayload) Encode() ([]byte, error) {
return json.Marshal(p)
}
type RenderContent struct {
Audio *Audio `json:"audio,omitempty"`
AwayMessage any `json:"awayMessage,omitempty"`
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment