Unverified Commit 19cd9f7a authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

account: add a list of sent follow requests

parent 49beb092
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -1761,6 +1761,25 @@ my @migrations = (
		}
		);
	},

	# v42 -> v43
	# list sent and received follow requests
	sub {
		my ($db) = @_;
		$db->query(
			qq{
				alter view follow_requests rename to rx_follow_requests;
				create view tx_follow_requests as select
					relations.subject_id as self_id,
					users.id as id,
					users.name as name
					from relations
					join users on relations.object_id = users.id
					where predicate = 2;
				update schema_version set version = 43;
			}
		);
	},
);

# TODO add 'hafas' column to in_transit (and maybe journeys? undo/redo needs something to work with...)
+34 −17
Original line number Diff line number Diff line
@@ -547,12 +547,24 @@ sub social_list {
	my $kind = $self->stash('kind');
	my $user = $self->current_user;

	if ( $kind eq 'follow-requests' ) {
	if ( $kind eq 'follow-requests-received' ) {
		my @follow_reqs
		  = $self->users->get_follow_requests( uid => $user->{id} );
		$self->render(
			'social_list',
			type          => 'follow-requests',
			type          => 'follow-requests-received',
			entries       => [@follow_reqs],
			notifications => $user->{notifications},
		);
	}
	elsif ( $kind eq 'follow-requests-sent' ) {
		my @follow_reqs = $self->users->get_follow_requests(
			uid  => $user->{id},
			sent => 1
		);
		$self->render(
			'social_list',
			type          => 'follow-requests-sent',
			entries       => [@follow_reqs],
			notifications => $user->{notifications},
		);
@@ -1242,7 +1254,11 @@ sub confirm_mail {
sub account {
	my ($self)             = @_;
	my $uid                = $self->current_user->{id};
	my $follow_requests = $self->users->has_follow_requests( uid => $uid );
	my $rx_follow_requests = $self->users->has_follow_requests( uid => $uid );
	my $tx_follow_requests = $self->users->has_follow_requests(
		uid  => $uid,
		sent => 1
	);
	my $followers = $self->users->has_followers( uid => $uid );
	my $following = $self->users->has_followees( uid => $uid );
	my $blocked   = $self->users->has_blocked_users( uid => $uid );
@@ -1250,7 +1266,8 @@ sub account {
	$self->render(
		'account',
		api_token              => $self->users->get_api_token( uid => $uid ),
		num_follow_requests => $follow_requests,
		num_rx_follow_requests => $rx_follow_requests,
		num_tx_follow_requests => $tx_follow_requests,
		num_followers          => $followers,
		num_following          => $following,
		num_blocked            => $blocked,
+11 −9
Original line number Diff line number Diff line
@@ -1098,9 +1098,10 @@ sub get_follow_requests {

	my $db    = $opt{db} // $self->{pg}->db;
	my $uid   = $opt{uid};
	my $table = $opt{sent} ? 'tx_follow_requests' : 'rx_follow_requests';

	my $res
	  = $db->select( 'follow_requests', [ 'id', 'name' ], { self_id => $uid } );
	  = $db->select( $table, [ 'id', 'name' ], { self_id => $uid } );

	return $res->hashes->each;
}
@@ -1110,9 +1111,10 @@ sub has_follow_requests {

	my $db    = $opt{db} // $self->{pg}->db;
	my $uid   = $opt{uid};
	my $table = $opt{sent} ? 'tx_follow_requests' : 'rx_follow_requests';

	return $db->select( 'follow_requests', 'count(*) as count',
		{ self_id => $uid } )->hash->{count};
	return $db->select( $table, 'count(*) as count', { self_id => $uid } )
	  ->hash->{count};
}

sub get_followees {
+400 −70
Original line number Diff line number Diff line
@@ -90,10 +90,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );

@@ -122,16 +150,48 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 1 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	1
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      1 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	1
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 1 );
is_deeply(
	[ $u->get_follow_requests( uid => $uid2 ) ],
	[ { id => $uid1, name => 'test1' } ]
);
is_deeply(
	[ $u->get_follow_requests( uid => $uid1, sent => 1 ) ],
	[ { id => $uid2, name => 'test2' } ]
);

$u->reject_follow_request(
	uid       => $uid2,
@@ -158,6 +218,20 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->get( uid => $uid1 )->{notifications},     0 );
@@ -188,16 +262,48 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 1 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	1
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      1 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	1
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 1 );
is_deeply(
	[ $u->get_follow_requests( uid => $uid2 ) ],
	[ { id => $uid1, name => 'test1' } ]
);
is_deeply(
	[ $u->get_follow_requests( uid => $uid1, sent => 1 ) ],
	[ { id => $uid2, name => 'test2' } ]
);

$u->accept_follow_request(
	uid       => $uid2,
@@ -224,10 +330,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 1 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );
is_deeply(
@@ -273,10 +407,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );

@@ -325,10 +487,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 1 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );
is_deeply(
@@ -361,10 +551,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );

@@ -393,10 +611,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 1 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );
is_deeply(
@@ -429,10 +675,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );

@@ -465,10 +739,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 1 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );
is_deeply(
@@ -514,10 +816,38 @@ is( scalar $u->get_followees( uid => $uid1 ), 0 );
is( scalar $u->get_followees( uid => $uid2 ),       0 );
is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );
is( scalar $u->get_follow_requests( uid => $uid2 ), 0 );
is(
	scalar $u->get_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	scalar $u->get_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( scalar $u->get_blocked_users( uid => $uid1 ), 0 );
is( scalar $u->get_blocked_users( uid => $uid2 ), 0 );
is( $u->has_follow_requests( uid => $uid1 ),      0 );
is( $u->has_follow_requests( uid => $uid2 ),      0 );
is(
	$u->has_follow_requests(
		uid  => $uid1,
		sent => 1
	),
	0
);
is(
	$u->has_follow_requests(
		uid  => $uid2,
		sent => 1
	),
	0
);
is( $u->get( uid => $uid1 )->{notifications}, 0 );
is( $u->get( uid => $uid2 )->{notifications}, 0 );

+19 −9
Original line number Diff line number Diff line
@@ -92,10 +92,10 @@
					% }
					% elsif ($acc->{accept_follow_requests}) {
						<span>Accounts können dir auf Anfrage folgen
						% if ($num_follow_requests == 1) {
						% if ($num_rx_follow_requests == 1) {
							– <a href="/account/social/follow-requests"><strong>eine</strong> offene Anfrage</a>
						% } elsif ($num_follow_requests) {
							– <a href="/account/social/follow-requests"><strong><%= $num_follow_requests %></strong> offene Anfragen</a>
						% } elsif ($num_rx_follow_requests) {
							– <a href="/account/social/follow-requests"><strong><%= $num_rx_follow_requests %></strong> offene Anfragen</a>
						% }
						</span>
					% }
@@ -179,7 +179,7 @@
	</div>
</div>

% if ($num_follow_requests or $num_followers or $num_following or $num_blocked) {
% if ($num_rx_follow_requests or $num_tx_follow_requests or $num_followers or $num_following or $num_blocked) {
	<div class="row">
		<div class="col s12">
			<h2>Interaktion</h2>
@@ -190,14 +190,24 @@
				<tr>
					<th scope="row">Anfragen</th>
					<td>
						% if ($num_follow_requests == 0) {
							<span style="color: #999999;">keine offen</span>
						% if ($num_rx_follow_requests == 0) {
							<span style="color: #999999;">keine eingehend</span>
						% }
						% elsif ($num_follow_requests == 1) {
							<a href="/account/social/follow-requests"><strong>ein</strong> Account</a>
						% elsif ($num_rx_follow_requests == 1) {
							<a href="/account/social/follow-requests-received"><strong>eine</strong> eingehend</a>
						% }
						% else {
							<a href="/account/social/follow-requests"><strong><%= $num_follow_requests %></strong> Accounts</a>
							<a href="/account/social/follow-requests-received"><strong><%= $num_rx_follow_requests %></strong> eingehend</a>
						% }
						<br/>
						% if ($num_tx_follow_requests == 0) {
							<span style="color: #999999;">keine ausgehend</span>
						% }
						% elsif ($num_tx_follow_requests == 1) {
							<a href="/account/social/follow-requests-sent"><strong>eine</strong> ausgehend</a>
						% }
						% else {
							<a href="/account/social/follow-requests-sent"><strong><%= $num_tx_follow_requests %></strong> ausgehend</a>
						% }
					</td>
				</tr>
Loading