[chore] Add "object" uri to outgoing Accept + Reject messages (#3717)

This commit is contained in:
tobi 2025-01-31 17:09:11 +01:00 committed by GitHub
parent fc895ade02
commit c47b9bd1d1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 41 additions and 3 deletions

View File

@ -2021,7 +2021,19 @@ func (c *Converter) InteractionReqToASAccept(
objectIRI, err := url.Parse(req.InteractionURI)
if err != nil {
return nil, gtserror.Newf("invalid target uri: %w", err)
return nil, gtserror.Newf("invalid object uri: %w", err)
}
if req.Status == nil {
req.Status, err = c.state.DB.GetStatusByID(ctx, req.StatusID)
if err != nil {
return nil, gtserror.Newf("db error getting interaction req target status: %w", err)
}
}
targetIRI, err := url.Parse(req.Status.URI)
if err != nil {
return nil, gtserror.Newf("invalid interaction req target status uri: %w", err)
}
toIRI, err := url.Parse(req.InteractingAccount.URI)
@ -2040,6 +2052,10 @@ func (c *Converter) InteractionReqToASAccept(
// Object is the interaction URI.
ap.AppendObjectIRIs(accept, objectIRI)
// Target is the URI of the
// status being interacted with.
ap.AppendTargetIRIs(accept, targetIRI)
// Address to the owner
// of interaction URI.
ap.AppendTo(accept, toIRI)
@ -2101,7 +2117,19 @@ func (c *Converter) InteractionReqToASReject(
objectIRI, err := url.Parse(req.InteractionURI)
if err != nil {
return nil, gtserror.Newf("invalid target uri: %w", err)
return nil, gtserror.Newf("invalid object uri: %w", err)
}
if req.Status == nil {
req.Status, err = c.state.DB.GetStatusByID(ctx, req.StatusID)
if err != nil {
return nil, gtserror.Newf("db error getting interaction req target status: %w", err)
}
}
targetIRI, err := url.Parse(req.Status.URI)
if err != nil {
return nil, gtserror.Newf("invalid interaction req target status uri: %w", err)
}
toIRI, err := url.Parse(req.InteractingAccount.URI)
@ -2120,6 +2148,10 @@ func (c *Converter) InteractionReqToASReject(
// Object is the interaction URI.
ap.AppendObjectIRIs(reject, objectIRI)
// Target is the URI of the
// status being interacted with.
ap.AppendTargetIRIs(reject, targetIRI)
// Address to the owner
// of interaction URI.
ap.AppendTo(reject, toIRI)

View File

@ -1235,7 +1235,9 @@ func (suite *InternalToASTestSuite) TestInteractionReqToASAcceptAnnounce() {
req := &gtsmodel.InteractionRequest{
ID: "01J1AKMZ8JE5NW0ZSFTRC1JJNE",
CreatedAt: testrig.TimeMustParse("2022-06-09T13:12:00Z"),
TargetAccountID: acceptingAccount.ID,
StatusID: "01JJYCVKCXB9JTQD1XW2KB8MT3",
Status: &gtsmodel.Status{URI: "http://localhost:8080/users/the_mighty_zork/statuses/01JJYCVKCXB9JTQD1XW2KB8MT3"},
TargetAccountID: acceptingAccount.ID,
TargetAccount: acceptingAccount,
InteractingAccountID: interactingAccount.ID,
InteractingAccount: interactingAccount,
@ -1272,6 +1274,7 @@ func (suite *InternalToASTestSuite) TestInteractionReqToASAcceptAnnounce() {
],
"id": "http://localhost:8080/users/the_mighty_zork/accepts/01J1AKMZ8JE5NW0ZSFTRC1JJNE",
"object": "https://fossbros-anonymous.io/users/foss_satan/statuses/01J1AKRRHQ6MDDQHV0TP716T2K",
"target": "http://localhost:8080/users/the_mighty_zork/statuses/01JJYCVKCXB9JTQD1XW2KB8MT3",
"to": "http://fossbros-anonymous.io/users/foss_satan",
"type": "Accept"
}`, string(b))
@ -1284,6 +1287,8 @@ func (suite *InternalToASTestSuite) TestInteractionReqToASAcceptLike() {
req := &gtsmodel.InteractionRequest{
ID: "01J1AKMZ8JE5NW0ZSFTRC1JJNE",
CreatedAt: testrig.TimeMustParse("2022-06-09T13:12:00Z"),
StatusID: "01JJYCVKCXB9JTQD1XW2KB8MT3",
Status: &gtsmodel.Status{URI: "http://localhost:8080/users/the_mighty_zork/statuses/01JJYCVKCXB9JTQD1XW2KB8MT3"},
TargetAccountID: acceptingAccount.ID,
TargetAccount: acceptingAccount,
InteractingAccountID: interactingAccount.ID,
@ -1317,6 +1322,7 @@ func (suite *InternalToASTestSuite) TestInteractionReqToASAcceptLike() {
"actor": "http://localhost:8080/users/the_mighty_zork",
"id": "http://localhost:8080/users/the_mighty_zork/accepts/01J1AKMZ8JE5NW0ZSFTRC1JJNE",
"object": "https://fossbros-anonymous.io/users/foss_satan/statuses/01J1AKRRHQ6MDDQHV0TP716T2K",
"target": "http://localhost:8080/users/the_mighty_zork/statuses/01JJYCVKCXB9JTQD1XW2KB8MT3",
"to": "http://fossbros-anonymous.io/users/foss_satan",
"type": "Accept"
}`, string(b))