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 ( ...@@ -51,7 +51,7 @@ var (
_ bridgev2.NetworkAPI = (*LinkedInClient)(nil) _ bridgev2.NetworkAPI = (*LinkedInClient)(nil)
_ bridgev2.EditHandlingNetworkAPI = (*LinkedInClient)(nil) _ bridgev2.EditHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.ReactionHandlingNetworkAPI = (*LinkedInClient)(nil) // _ bridgev2.ReactionHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.RedactionHandlingNetworkAPI = (*LinkedInClient)(nil) _ bridgev2.RedactionHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.ReadReceiptHandlingNetworkAPI = (*LinkedInClient)(nil) // _ bridgev2.ReadReceiptHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.TypingHandlingNetworkAPI = (*LinkedInClient)(nil) // _ bridgev2.TypingHandlingNetworkAPI = (*LinkedInClient)(nil)
// _ bridgev2.BackfillingNetworkAPI = (*LinkedInClient)(nil) // _ bridgev2.BackfillingNetworkAPI = (*LinkedInClient)(nil)
...@@ -436,6 +436,10 @@ func (l *LinkedInClient) HandleMatrixEdit(ctx context.Context, msg *bridgev2.Mat ...@@ -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)) 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 { func (l *LinkedInClient) IsLoggedIn() bool {
return l.userLogin.Metadata.(*UserLoginMetadata).Cookies.GetCookie(linkedingo.LinkedInCookieJSESSIONID) != "" 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 ...@@ -103,3 +103,18 @@ func (c *Client) EditMessage(ctx context.Context, messageURN types.URN, p SendMe
} }
return nil 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 { ...@@ -202,27 +202,6 @@ func (c *Client) StartTyping(conversationUrn string) error {
return nil 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 // 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 // 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) { func (c *Client) MarkThreadRead(conversationUrns []string, read bool) (*responseold.MarkThreadReadResponse, error) {
......
...@@ -69,14 +69,6 @@ func (p StartTypingPayload) Encode() ([]byte, error) { ...@@ -69,14 +69,6 @@ func (p StartTypingPayload) Encode() ([]byte, error) {
return json.Marshal(p) 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 { type RenderContent struct {
Audio *Audio `json:"audio,omitempty"` Audio *Audio `json:"audio,omitempty"`
AwayMessage any `json:"awayMessage,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