diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2023-07-18 15:47:45 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2023-07-18 15:47:45 +0200 |
commit | fef9ebe0b20623c4e21cf720ea379338e6ef978e (patch) | |
tree | 549094779c7f73e62b2179ac443efb8ac10cf3e5 /lib/Travelynx | |
parent | c81d471728888794c012a74fbb2c85b235dcfc09 (diff) |
followee list: show if accounts are following back1.33.3
Diffstat (limited to 'lib/Travelynx')
-rw-r--r-- | lib/Travelynx/Command/database.pm | 23 | ||||
-rw-r--r-- | lib/Travelynx/Model/Users.pm | 22 |
2 files changed, 43 insertions, 2 deletions
diff --git a/lib/Travelynx/Command/database.pm b/lib/Travelynx/Command/database.pm index 022614b..a47f2ce 100644 --- a/lib/Travelynx/Command/database.pm +++ b/lib/Travelynx/Command/database.pm @@ -1780,6 +1780,29 @@ my @migrations = ( } ); }, + + # v43 -> v44 + # show inverse relation in followees as well + sub { + my ($db) = @_; + $db->query( + qq{ + drop view followees; + create view followees as select + relations.subject_id as self_id, + users.id as id, + users.name as name, + r2.predicate as inverse_predicate + from relations + join users on relations.object_id = users.id + left join relations as r2 + on relations.subject_id = r2.object_id + and relations.object_id = r2.subject_id + where relations.predicate = 1; + update schema_version set version = 44; + } + ); + }, ); # TODO add 'hafas' column to in_transit (and maybe journeys? undo/redo needs something to work with...) diff --git a/lib/Travelynx/Model/Users.pm b/lib/Travelynx/Model/Users.pm index 0665f6a..c51e612 100644 --- a/lib/Travelynx/Model/Users.pm +++ b/lib/Travelynx/Model/Users.pm @@ -1123,9 +1123,27 @@ sub get_followees { my $db = $opt{db} // $self->{pg}->db; my $uid = $opt{uid}; - my $res = $db->select( 'followees', [ 'id', 'name' ], { self_id => $uid } ); + my $res = $db->select( + 'followees', + [ 'id', 'name', 'inverse_predicate' ], + { self_id => $uid } + ); - return $res->hashes->each; + my @ret; + while ( my $row = $res->hash ) { + push( + @ret, + { + id => $row->{id}, + name => $row->{name}, + following_back => ( + $row->{inverse_predicate} + and $row->{inverse_predicate} == $predicate_atoi{follows} + ) ? 1 : 0, + } + ); + } + return @ret; } sub has_followees { |