Rename follower/followee
This commit is contained in:
parent
81c705d519
commit
721bf7e61a
4 changed files with 19 additions and 19 deletions
|
@ -461,7 +461,7 @@ fn ApiConn(comptime DbConn: type) type {
|
|||
|
||||
pub fn queryFollowers(self: *Self, user_id: Uuid, args: FollowerQueryArgs) !FollowerQueryResult {
|
||||
var all_args = std.mem.zeroInit(services.follows.QueryArgs, args);
|
||||
all_args.following_id = user_id;
|
||||
all_args.followee_id = user_id;
|
||||
const result = try services.follows.query(self.db, all_args, self.arena.allocator());
|
||||
return FollowerQueryResult{
|
||||
.items = result.items,
|
||||
|
@ -472,7 +472,7 @@ fn ApiConn(comptime DbConn: type) type {
|
|||
|
||||
pub fn queryFollowing(self: *Self, user_id: Uuid, args: FollowingQueryArgs) !FollowingQueryResult {
|
||||
var all_args = std.mem.zeroInit(services.follows.QueryArgs, args);
|
||||
all_args.follower_id = user_id;
|
||||
all_args.followed_by_id = user_id;
|
||||
const result = try services.follows.query(self.db, all_args, self.arena.allocator());
|
||||
return FollowingQueryResult{
|
||||
.items = result.items,
|
||||
|
|
|
@ -10,21 +10,21 @@ const DateTime = util.DateTime;
|
|||
pub const Follow = struct {
|
||||
id: Uuid,
|
||||
|
||||
follower_id: Uuid,
|
||||
following_id: Uuid,
|
||||
followed_by_id: Uuid,
|
||||
followee_id: Uuid,
|
||||
|
||||
created_at: DateTime,
|
||||
};
|
||||
|
||||
pub fn create(db: anytype, follower_id: Uuid, following_id: Uuid, alloc: std.mem.Allocator) !void {
|
||||
if (Uuid.eql(follower_id, following_id)) return error.SelfFollow;
|
||||
pub fn create(db: anytype, followed_by_id: Uuid, followee_id: Uuid, alloc: std.mem.Allocator) !void {
|
||||
if (Uuid.eql(followed_by_id, followee_id)) return error.SelfFollow;
|
||||
const now = DateTime.now();
|
||||
const id = Uuid.randV4(util.getThreadPrng());
|
||||
|
||||
db.insert("follow", .{
|
||||
.id = id,
|
||||
.follower_id = follower_id,
|
||||
.following_id = following_id,
|
||||
.followed_by_id = followed_by_id,
|
||||
.followee_id = followee_id,
|
||||
.created_at = now,
|
||||
}, alloc) catch |err| return switch (err) {
|
||||
error.ForeignKeyViolation => error.NotFound,
|
||||
|
@ -46,8 +46,8 @@ pub const QueryArgs = struct {
|
|||
|
||||
max_items: usize = 20,
|
||||
|
||||
follower_id: ?Uuid = null,
|
||||
following_id: ?Uuid = null,
|
||||
followed_by_id: ?Uuid = null,
|
||||
followee_id: ?Uuid = null,
|
||||
|
||||
order_by: OrderBy = .created_at,
|
||||
|
||||
|
@ -75,13 +75,13 @@ pub fn query(db: anytype, args: QueryArgs, alloc: std.mem.Allocator) !QueryResul
|
|||
defer builder.deinit();
|
||||
|
||||
try builder.appendSlice(
|
||||
\\SELECT follow.id, follow.follower_id, follow.following_id, follow.created_at
|
||||
\\SELECT follow.id, follow.followed_by_id, follow.followee_id, follow.created_at
|
||||
\\FROM follow
|
||||
\\
|
||||
);
|
||||
|
||||
if (args.follower_id != null) try builder.andWhere("follow.follower_id = $1");
|
||||
if (args.following_id != null) try builder.andWhere("follow.following_id = $2");
|
||||
if (args.followed_by_id != null) try builder.andWhere("follow.followed_by_id = $1");
|
||||
if (args.followee_id != null) try builder.andWhere("follow.followee_id = $2");
|
||||
|
||||
if (args.prev != null) {
|
||||
try builder.andWhere("(follow.id, follow.created_at)");
|
||||
|
@ -101,8 +101,8 @@ pub fn query(db: anytype, args: QueryArgs, alloc: std.mem.Allocator) !QueryResul
|
|||
|
||||
const max_items = if (args.max_items > max_max_items) max_max_items else args.max_items;
|
||||
const query_args = .{
|
||||
args.follower_id,
|
||||
args.following_id,
|
||||
args.followed_by_id,
|
||||
args.followee_id,
|
||||
if (args.prev) |p| p.id else null,
|
||||
if (args.prev) |p| p.order_val else null,
|
||||
max_items,
|
||||
|
|
|
@ -98,7 +98,7 @@ pub fn query(db: anytype, args: QueryArgs, alloc: std.mem.Allocator) !QueryResul
|
|||
|
||||
if (args.followed_by != null) try builder.appendSlice(
|
||||
\\ JOIN follow ON
|
||||
\\ follow.follower_id = $7 AND follow.following_id = note.author_id
|
||||
\\ follow.followed_by_id = $7 AND follow.followee_id = note.author_id
|
||||
\\
|
||||
);
|
||||
|
||||
|
|
|
@ -195,12 +195,12 @@ const migrations: []const Migration = &.{
|
|||
\\CREATE TABLE follow(
|
||||
\\ id UUID NOT NULL PRIMARY KEY,
|
||||
\\
|
||||
\\ follower_id UUID NOT NULL,
|
||||
\\ following_id UUID NOT NULL,
|
||||
\\ followed_by_id UUID NOT NULL,
|
||||
\\ followee_id UUID NOT NULL,
|
||||
\\
|
||||
\\ created_at TIMESTAMPTZ NOT NULL,
|
||||
\\
|
||||
\\ UNIQUE(follower_id, following_id)
|
||||
\\ UNIQUE(followed_by_id, followee_id)
|
||||
\\);
|
||||
,
|
||||
.down = "DROP TABLE follow",
|
||||
|
|
Loading…
Reference in a new issue