summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Daenney <daenney@users.noreply.github.com>2024-04-03 15:06:39 +0200
committerLibravatar GitHub <noreply@github.com>2024-04-03 14:06:39 +0100
commit8ed1b8142c93b4a0887ad4fde7eb7558f9ec7e08 (patch)
tree6a4ae3c636f6ea8a4f2a22dd4a75cb7ea2203365
parent[bugfix] improved authenticate post inbox error handling (#2803) (diff)
downloadgotosocial-8ed1b8142c93b4a0887ad4fde7eb7558f9ec7e08.tar.xz
[bugfix] Sort follows chronologically (#2801)
The id on the follows table is not a ULID, but a random ID. Sorting on them results in a completely random order. Instead, sort on created_at, which sould result in a stable and intended sort order. Fixes: #2769 Co-authored-by: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>
-rw-r--r--internal/db/bundb/relationship.go8
-rw-r--r--internal/federation/federatingdb/following_test.go4
2 files changed, 6 insertions, 6 deletions
diff --git a/internal/db/bundb/relationship.go b/internal/db/bundb/relationship.go
index 30e3850d2..1c533af39 100644
--- a/internal/db/bundb/relationship.go
+++ b/internal/db/bundb/relationship.go
@@ -331,7 +331,7 @@ func newSelectFollows(db *bun.DB, accountID string) *bun.SelectQuery {
Table("follows").
Column("id").
Where("? = ?", bun.Ident("account_id"), accountID).
- OrderExpr("? DESC", bun.Ident("id"))
+ OrderExpr("? DESC", bun.Ident("created_at"))
}
// newSelectLocalFollows returns a new select query for all rows in the follows table with
@@ -349,7 +349,7 @@ func newSelectLocalFollows(db *bun.DB, accountID string) *bun.SelectQuery {
Column("id").
Where("? IS NULL", bun.Ident("domain")),
).
- OrderExpr("? DESC", bun.Ident("id"))
+ OrderExpr("? DESC", bun.Ident("created_at"))
}
// newSelectFollowers returns a new select query for all rows in the follows table with target_account_id = accountID.
@@ -358,7 +358,7 @@ func newSelectFollowers(db *bun.DB, accountID string) *bun.SelectQuery {
Table("follows").
Column("id").
Where("? = ?", bun.Ident("target_account_id"), accountID).
- OrderExpr("? DESC", bun.Ident("id"))
+ OrderExpr("? DESC", bun.Ident("created_at"))
}
// newSelectLocalFollowers returns a new select query for all rows in the follows table with
@@ -376,7 +376,7 @@ func newSelectLocalFollowers(db *bun.DB, accountID string) *bun.SelectQuery {
Column("id").
Where("? IS NULL", bun.Ident("domain")),
).
- OrderExpr("? DESC", bun.Ident("id"))
+ OrderExpr("? DESC", bun.Ident("created_at"))
}
// newSelectBlocks returns a new select query for all rows in the blocks table with account_id = accountID.
diff --git a/internal/federation/federatingdb/following_test.go b/internal/federation/federatingdb/following_test.go
index 93bc6d348..83d1a72b5 100644
--- a/internal/federation/federatingdb/following_test.go
+++ b/internal/federation/federatingdb/following_test.go
@@ -47,8 +47,8 @@ func (suite *FollowingTestSuite) TestGetFollowing() {
suite.Equal(`{
"@context": "https://www.w3.org/ns/activitystreams",
"items": [
- "http://localhost:8080/users/1happyturtle",
- "http://localhost:8080/users/admin"
+ "http://localhost:8080/users/admin",
+ "http://localhost:8080/users/1happyturtle"
],
"type": "Collection"
}`, string(fJson))