Profile: Add JSON renderer

This commit is contained in:
Birte Kristina Friesel 2024-05-31 10:59:41 +02:00
parent 5a72c60307
commit 7b8584473b
No known key found for this signature in database
GPG key ID: 19E6E524EBB177BA
2 changed files with 42 additions and 29 deletions

View file

@ -2422,7 +2422,8 @@ sub startup {
->to( 'profile#user_status', format => undef );
$r->get('/ajax/status/#name')->to('profile#status_card');
$r->get('/ajax/status/:name/:ts')->to('profile#status_card');
$r->get('/p/:name')->to('profile#profile');
$r->get( '/p/:name' => [ format => [ 'html', 'json' ] ] )
->to( 'profile#profile', format => undef );
$r->get( '/p/:name/j/:id' => 'public_journey' )
->to('profile#journey_details');
$r->get('/.well-known/webfinger')->to('account#webfinger');

View file

@ -152,34 +152,46 @@ sub profile {
@journeys = $self->journeys->get(%opt);
}
$self->render(
'profile',
title => "travelynx: $name",
name => $name,
uid => $user->{id},
privacy => $user,
bio => $profile->{bio}{html},
metadata => $profile->{metadata},
is_self => $is_self,
following => ( $relation and $relation eq 'follows' ) ? 1 : 0,
follow_requested => ( $relation and $relation eq 'requests_follow' )
? 1
: 0,
can_follow => ( $my_user and $user->{accept_follows} and not $relation )
? 1
: 0,
can_request_follow =>
( $my_user and $user->{accept_follow_requests} and not $relation )
? 1
: 0,
follows_me => ( $inverse_relation and $inverse_relation eq 'follows' )
? 1
: 0,
follow_reqs_me =>
( $inverse_relation and $inverse_relation eq 'requests_follow' ) ? 1
: 0,
journey => $status,
journeys => [@journeys],
$self->respond_to(
json => {
json => {
name => $name,
uid => $user->{id},
bio => $profile->{bio}{html},
metadata => $profile->{metadata},
journeys => [@journeys],
}
},
any => {
template => 'profile',
title => "travelynx: $name",
name => $name,
uid => $user->{id},
privacy => $user,
bio => $profile->{bio}{html},
metadata => $profile->{metadata},
is_self => $is_self,
following => ( $relation and $relation eq 'follows' ) ? 1 : 0,
follow_requested => ( $relation and $relation eq 'requests_follow' )
? 1
: 0,
can_follow =>
( $my_user and $user->{accept_follows} and not $relation ) ? 1
: 0,
can_request_follow => (
$my_user and $user->{accept_follow_requests} and not $relation
) ? 1
: 0,
follows_me =>
( $inverse_relation and $inverse_relation eq 'follows' ) ? 1
: 0,
follow_reqs_me => (
$inverse_relation and $inverse_relation eq 'requests_follow'
) ? 1
: 0,
journey => $status,
journeys => [@journeys],
}
);
}