From fadeb1b97de6b3b4b101048ee8385929eed21149 Mon Sep 17 00:00:00 2001
From: Devin <devin@blackhat.co.za>
Date: Fri, 12 Oct 2018 12:25:18 +0200
Subject: [PATCH] add soft attribute for amount received, add more index
 display

---
 app/Http/Controllers/FundingController.php    | 21 +++++++++++++------
 app/Project.php                               |  4 ++++
 ...018_09_10_211659_create_deposits_table.php |  2 +-
 database/seeds/DatabaseSeeder.php             |  2 +-
 resources/views/projects/index.blade.php      | 20 ++++++++++++++++++
 .../show.blade.php}                           |  0
 routes/web.php                                |  4 ++--
 7 files changed, 43 insertions(+), 10 deletions(-)
 create mode 100644 resources/views/projects/index.blade.php
 rename resources/views/{ffs.blade.php => projects/show.blade.php} (100%)

diff --git a/app/Http/Controllers/FundingController.php b/app/Http/Controllers/FundingController.php
index c0638cb..19d27d3 100644
--- a/app/Http/Controllers/FundingController.php
+++ b/app/Http/Controllers/FundingController.php
@@ -9,12 +9,21 @@ use Illuminate\Http\Request;
 class FundingController extends Controller
 {
     /**
-     * Generates the interstitial
+     * Shows all projects
      *
-     * @param $invoice
-     * @param null $currency
-     * @param bool $moneroOnly
-     * @param bool $shopifySite
+     * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory
+     */
+    public function index()
+    {
+        $projects = Project::all();
+        return view('projects.index')
+            ->with('projects', $projects);
+    }
+
+    /**
+     * Shows the project based on the payment id
+     *
+     * @param $paymentId
      *
      * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory
      */
@@ -27,7 +36,7 @@ class FundingController extends Controller
         $contributions = $project->deposits->count();
         $amountReceived = $project->deposits->sum('amount');
         $percentage = round($amountReceived / $project->target_amount * 100);
-        return view('ffs')
+        return view('projects.show')
             ->with('project', $project)
             ->with('contributions', $contributions)
             ->with('percentage', $percentage)
diff --git a/app/Project.php b/app/Project.php
index c0cd47a..5f213cd 100644
--- a/app/Project.php
+++ b/app/Project.php
@@ -13,4 +13,8 @@ class Project extends Model
     {
         return $this->hasMany(Deposit::class, 'payment_id', 'payment_id');
     }
+
+    public function getAmountReceivedAttribute() {
+        return $this->deposits->sum('amount');
+    }
 }
diff --git a/database/migrations/2018_09_10_211659_create_deposits_table.php b/database/migrations/2018_09_10_211659_create_deposits_table.php
index 88ddb8c..ca57e00 100644
--- a/database/migrations/2018_09_10_211659_create_deposits_table.php
+++ b/database/migrations/2018_09_10_211659_create_deposits_table.php
@@ -17,7 +17,7 @@ class CreateDepositsTable extends Migration
             $table->increments('id');
             $table->string('payment_id');
             $table->string('amount');
-            $table->unsignedInteger('time_received');
+            $table->dateTime('time_received');
             $table->string('tx_id');
             $table->unsignedInteger('block_received');
             $table->timestamps();
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
index 91cb6d1..5da9622 100644
--- a/database/seeds/DatabaseSeeder.php
+++ b/database/seeds/DatabaseSeeder.php
@@ -11,6 +11,6 @@ class DatabaseSeeder extends Seeder
      */
     public function run()
     {
-        // $this->call(UsersTableSeeder::class);
+         $this->call(ProjectsTableSeeder::class);
     }
 }
diff --git a/resources/views/projects/index.blade.php b/resources/views/projects/index.blade.php
new file mode 100644
index 0000000..95e3433
--- /dev/null
+++ b/resources/views/projects/index.blade.php
@@ -0,0 +1,20 @@
+<table>
+    <thead class="flip-content">
+    <tr>
+        <th>Payment ID</th>
+        <th>Status</th>
+        <th>Funding Received</th>
+        <th>Required</th>
+    </tr>
+    </thead>
+    <tbody>
+@foreach ($projects as $project)
+    <tr>
+        <td><a href='{!! url('/projects/'.$project->payment_id); !!}'>{{ $project->payment_id }}</a></td>
+        <td>{{$project->status}}</td>
+        <td>{{$project->amountReceived}} XMR</td>
+        <td>{{$project->target_amount}} XMR</td>
+    </tr>
+@endforeach
+    </tbody>
+</table>
\ No newline at end of file
diff --git a/resources/views/ffs.blade.php b/resources/views/projects/show.blade.php
similarity index 100%
rename from resources/views/ffs.blade.php
rename to resources/views/projects/show.blade.php
diff --git a/routes/web.php b/routes/web.php
index 9479649..54b2e41 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -14,5 +14,5 @@
 Route::get('/', function () {
     return view('welcome');
 });
-
-Route::get('project/{paymentId}', ['as' => 'ffs', 'uses' => FundingController::class.'@show']);
+Route::get('projects', ['as' => 'ffs', 'uses' => FundingController::class.'@index']);
+Route::get('projects/{paymentId}', ['as' => 'ffs', 'uses' => FundingController::class.'@show']);
-- 
GitLab