From 2b3c13518ba68ba7f7367f0389e4d76f710ae9dc Mon Sep 17 00:00:00 2001 From: Finn Date: Wed, 26 Jul 2017 18:28:14 +0100 Subject: [PATCH] Added API endpoints and user info retrieval --- lib/Pear/LocalLoop.pm | 2 + lib/Pear/LocalLoop/Controller/Api/User.pm | 45 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/lib/Pear/LocalLoop.pm b/lib/Pear/LocalLoop.pm index 1b435da..965c5c1 100644 --- a/lib/Pear/LocalLoop.pm +++ b/lib/Pear/LocalLoop.pm @@ -147,6 +147,8 @@ sub startup { }); $api->post('/upload')->to('api-upload#post_upload'); $api->post('/search')->to('api-upload#post_search'); + $api->post('/user')->to('api-user#post_account'); + $api->post('/user/account')->to('api-user#post_account_update'); $api->post('/user/day')->to('api-user#post_day'); $api->post('/edit')->to('api-api#post_edit'); $api->post('/fetchuser')->to('api-api#post_fetchuser'); diff --git a/lib/Pear/LocalLoop/Controller/Api/User.pm b/lib/Pear/LocalLoop/Controller/Api/User.pm index f1532a6..2706aaa 100644 --- a/lib/Pear/LocalLoop/Controller/Api/User.pm +++ b/lib/Pear/LocalLoop/Controller/Api/User.pm @@ -26,4 +26,49 @@ sub post_day { }); } +sub post_account { + my $c = shift; + + my $user = $c->stash->{api_user}; + my $user_result = $c->schema->resultset('User')->find({ user_id => $c->stash->{api_user}->id }); + + if ( defined $user_result ) { + my $email = $user_result->email; + my $full_name; + my $display_name; + my $postcode; + + #Needs elsif added for trader page for this similar relevant entry + if ( defined $user_result->customer_id ) { + $full_name = $user_result->customer->full_name; + $display_name = $user_result->customer->display_name; + $postcode = $user_result->customer->postcode; + } elsif ( defined $user_result->organisation_id ) { + $display_name = $user_result->organisation->name; + } else { + return undef; + } + + return $c->render( json => { + success => Mojo::JSON->true, + session_key => $session_key, + full_name => $full_name, + display_name => $display_name, + email => $email, + postcode => $postcode, + }); + } + return $c->render( + json => { + success => Mojo::JSON->false, + message => 'Email or password is invalid.', + }, + status => 401 + ); +} + +sub post_account_update { + +} + 1;