Send welcome email with voucher to user upon successful verification of customer email adddress

This commit is contained in:
Dillon Ngo
2024-03-14 15:52:20 +08:00
parent cc8a12c7b0
commit 36cde82a19
18 changed files with 384 additions and 15 deletions
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class KeyValueBasicResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
// 'id' => $this->id,
'key' => $this->key,
'value' => $this->value,
];
}
}
@@ -2,6 +2,7 @@
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class UserRewardResource extends JsonResource
@@ -14,6 +15,13 @@ class UserRewardResource extends JsonResource
*/
public function toArray($request)
{
$emailReminder = null;
if ($request->has('isAdmin')) {
$keyValuePairs = $this->user->attributes()->get();
$emailReminder = KeyValueBasicResource::collection($keyValuePairs);
$this->voucher->email = $emailReminder;
}
return [
'id' => $this->id,
'user_id' => $this->user_id,
+13 -4
View File
@@ -2,6 +2,7 @@
namespace App\Http\Resources;
use ArrayObject;
use Illuminate\Http\Resources\Json\JsonResource;
class VoucherResource extends JsonResource
@@ -14,9 +15,16 @@ class VoucherResource extends JsonResource
*/
public function toArray($request)
{
$filteredRedemptions = $this->redemptions->filter(function ($redemption) {
return $redemption->transaction && $redemption->transaction->owner;
});
$filteredRedemptions = new ArrayObject([]);
if ($request->has('filters') && str_contains($request->input('filters'), "has_active_reward")) {
$filteredRedemptions = new ArrayObject([]);
}
else{
$filteredRedemptions = $this->redemptions->filter(function ($redemption) {
return $redemption->transaction && $redemption->transaction->owner;
});
}
return [
'id' => $this->id,
'name' => $this->name,
@@ -25,7 +33,8 @@ class VoucherResource extends JsonResource
'value' => (float) $this->value,
'start_date' => $this->start_date,
'end_date' => $this->end_date,
'is_redeemed' => $filteredRedemptions->count() > 0
'is_redeemed' => $filteredRedemptions->count() > 0,
'email' => $this->email ? new KeyValueBasicResource($this->email->where('key', $this->code.'_EMAIL_COUNT')->first()) : null,
];
}
}