diff --git a/lib/Pear/LocalLoop/Controller/Admin/Organisations.pm b/lib/Pear/LocalLoop/Controller/Admin/Organisations.pm index 4492b36..f382a5e 100644 --- a/lib/Pear/LocalLoop/Controller/Admin/Organisations.pm +++ b/lib/Pear/LocalLoop/Controller/Admin/Organisations.pm @@ -65,6 +65,7 @@ sub valid_read { undef, { page => $c->param('page') || 1, rows => 10, + order_by => { -desc => 'submitted_at' }, }, ); $c->stash( diff --git a/lib/Pear/LocalLoop/Controller/Api/Upload.pm b/lib/Pear/LocalLoop/Controller/Api/Upload.pm index faec57b..08db6cc 100644 --- a/lib/Pear/LocalLoop/Controller/Api/Upload.pm +++ b/lib/Pear/LocalLoop/Controller/Api/Upload.pm @@ -93,7 +93,7 @@ sub post_upload { my $validation = $c->validation; # Test for file before loading the JSON in to the validator - $validation->required('file')->upload->filetype('image/jpeg'); + $validation->optional('file')->upload->filetype('image/jpeg'); $validation->input( $c->stash->{api_json} ); @@ -162,14 +162,14 @@ sub post_upload { my $upload = $validation->param('file'); my $purchase_time = $c->parse_iso_datetime($validation->param('purchase_time') || ''); $purchase_time ||= DateTime->now(); - my $file = $c->store_file_from_upload( $upload ); + my $file = defined $upload ? $c->store_file_from_upload( $upload ) : undef; my $new_transaction = $organisation->create_related( 'transactions', { buyer => $user, value => $transaction_value, - proof_image => $file, + ( defined $file ? ( proof_image => $file ) : ( proof_image => 'a' ) ), purchase_time => $c->format_db_datetime($purchase_time), } ); diff --git a/t/api/upload.t b/t/api/upload.t index 72020d3..ca925cf 100644 --- a/t/api/upload.t +++ b/t/api/upload.t @@ -202,9 +202,10 @@ $json = { }; $upload = {json => Mojo::JSON::encode_json($json)}; $t->post_ok('/api/upload' => form => $upload ) - ->status_is(400) - ->json_is('/success', Mojo::JSON->false) - ->content_like(qr/no file uploaded/i); +->status_is(200) +->json_is('/success', Mojo::JSON->true) +->json_like('/message', qr/Upload Successful/); +is $schema->resultset('Transaction')->count, 1, "1 transaction"; print "test 13 - organisation_id missing (type 1: already validated)\n"; $json = { @@ -235,7 +236,7 @@ $t->post_ok('/api/upload' => form => $upload ) ->content_like(qr/organisation_id does not exist in the database/i); print "test 15 - valid addition. (type 1: already validated)\n"; -is $schema->resultset('Transaction')->count, 0, "no transactions"; +is $schema->resultset('Transaction')->count, 1, "1 transaction"; $json = { transaction_value => 10, transaction_type => 1, @@ -248,7 +249,7 @@ $t->post_ok('/api/upload' => form => $upload ) ->status_is(200) ->json_is('/success', Mojo::JSON->true) ->json_like('/message', qr/Upload Successful/); -is $schema->resultset('Transaction')->count, 1, "1 transaction"; +is $schema->resultset('Transaction')->count, 2, "2 transaction"; # Add type 3 (new organisation) checking. @@ -445,7 +446,7 @@ $t->post_ok('/api/login' => json => $testJson) $session_key = $t->tx->res->json('/session_key'); print "test 30 - organisation buy from another organisation\n"; -is $schema->resultset('Transaction')->count, 1, "1 transaction"; +is $schema->resultset('Transaction')->count, 2, "2 transaction"; $json = { transaction_value => 100000, transaction_type => 1, @@ -458,6 +459,6 @@ $t->post_ok('/api/upload' => form => $upload ) ->status_is(200) ->json_is('/success', Mojo::JSON->true) ->json_like('/message', qr/Upload Successful/); -is $schema->resultset('Transaction')->count, 2, "2 transaction"; +is $schema->resultset('Transaction')->count, 3, "3 transaction"; done_testing(); diff --git a/templates/admin/organisations/valid_read.html.ep b/templates/admin/organisations/valid_read.html.ep index 6a9f38e..ffb7bb2 100644 --- a/templates/admin/organisations/valid_read.html.ep +++ b/templates/admin/organisations/valid_read.html.ep @@ -42,6 +42,8 @@
From: <%= $transaction->buyer->name %>
To: <%= $transaction->seller->name %>
Value: <%= $transaction->value %>
+
Submitted At: <%= $transaction->submitted_at %>
+
Purchase Time: <%= $transaction->purchase_time %>