feat(push notification): membuat trait untuk simpan data subcription dan use di di semua component
This commit is contained in:
parent
163a90b857
commit
fd5a85400c
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Catalog\Bottle;
|
namespace App\Livewire\Studio\Catalog\Bottle;
|
||||||
|
|
||||||
use App\Models\Bottle;
|
use App\Models\Bottle;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithShowPrice;
|
use App\Traits\WithShowPrice;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
@ -13,7 +14,7 @@
|
|||||||
#[Title('Botol')]
|
#[Title('Botol')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithConfirmation, WithShowPrice, WithToast;
|
use WithConfirmation, WithShowPrice, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public function delete(Bottle $bottle)
|
public function delete(Bottle $bottle)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Catalog\BrandForm;
|
use App\Livewire\Forms\Studio\Catalog\BrandForm;
|
||||||
use App\Models\Brand as BrandModel;
|
use App\Models\Brand as BrandModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#[Title('Merek')]
|
#[Title('Merek')]
|
||||||
class Brand extends Component
|
class Brand extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public BrandForm $form;
|
public BrandForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Catalog\CategoryForm;
|
use App\Livewire\Forms\Studio\Catalog\CategoryForm;
|
||||||
use App\Models\Category as CategoryModel;
|
use App\Models\Category as CategoryModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#[Title('Kategori')]
|
#[Title('Kategori')]
|
||||||
class Category extends Component
|
class Category extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public CategoryForm $form;
|
public CategoryForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Catalog\Perfume;
|
namespace App\Livewire\Studio\Catalog\Perfume;
|
||||||
|
|
||||||
use App\Models\Perfume;
|
use App\Models\Perfume;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithShowPrice;
|
use App\Traits\WithShowPrice;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
@ -13,7 +14,7 @@
|
|||||||
#[Title('Parfum')]
|
#[Title('Parfum')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithConfirmation, WithShowPrice, WithToast;
|
use WithConfirmation, WithShowPrice, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public function delete(Perfume $perfume)
|
public function delete(Perfume $perfume)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Catalog\Product;
|
namespace App\Livewire\Studio\Catalog\Product;
|
||||||
|
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithShowPrice;
|
use App\Traits\WithShowPrice;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
@ -13,7 +14,7 @@
|
|||||||
#[Title('Produk')]
|
#[Title('Produk')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithConfirmation, WithShowPrice,WithToast;
|
use WithConfirmation, WithShowPrice, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public function delete(Product $product)
|
public function delete(Product $product)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
use App\Models\Tier;
|
use App\Models\Tier;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Models\Voucher;
|
use App\Models\Voucher;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Livewire\Attributes\Title;
|
use Livewire\Attributes\Title;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
@ -24,6 +25,8 @@
|
|||||||
#[Title('Analisa')]
|
#[Title('Analisa')]
|
||||||
class Analysis extends Component
|
class Analysis extends Component
|
||||||
{
|
{
|
||||||
|
use WithSubscribeNotification;
|
||||||
|
|
||||||
public string $period = 'all';
|
public string $period = 'all';
|
||||||
|
|
||||||
public array $outlets = [];
|
public array $outlets = [];
|
||||||
|
|||||||
@ -7,15 +7,16 @@
|
|||||||
use App\Models\OrderItem;
|
use App\Models\OrderItem;
|
||||||
use App\Models\Perfume;
|
use App\Models\Perfume;
|
||||||
use App\Models\Purchase;
|
use App\Models\Purchase;
|
||||||
use App\Models\PushNotification;
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Livewire\Attributes\On;
|
|
||||||
use Livewire\Attributes\Title;
|
use Livewire\Attributes\Title;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
|
|
||||||
#[Title('Ringkasan')]
|
#[Title('Ringkasan')]
|
||||||
class Overview extends Component
|
class Overview extends Component
|
||||||
{
|
{
|
||||||
|
use WithSubscribeNotification;
|
||||||
|
|
||||||
public array $outlets = [];
|
public array $outlets = [];
|
||||||
|
|
||||||
public array $selectedOutletIds = [];
|
public array $selectedOutletIds = [];
|
||||||
@ -250,31 +251,6 @@ protected function loadStats()
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[On('notification:subscribe')]
|
|
||||||
public function notificationSubscribe(string $subscription)
|
|
||||||
{
|
|
||||||
$subscription = json_decode($subscription, true);
|
|
||||||
|
|
||||||
$isExist = PushNotification::where('user_id', auth()->id())
|
|
||||||
->whereJsonContains('subscriptions->keys->auth', $subscription['keys']['auth'])
|
|
||||||
->first();
|
|
||||||
|
|
||||||
if ($isExist) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$userId = auth()->id();
|
|
||||||
|
|
||||||
$encodedSubscription = json_encode($subscription);
|
|
||||||
PushNotification::updateOrCreate(
|
|
||||||
[
|
|
||||||
'user_id' => $userId,
|
|
||||||
'subscriptions' => $encodedSubscription,
|
|
||||||
],
|
|
||||||
['subscriptions' => $encodedSubscription],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function render()
|
public function render()
|
||||||
{
|
{
|
||||||
return view('livewire.studio.dashboard.overview');
|
return view('livewire.studio.dashboard.overview');
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Feature\ChooseUsForm;
|
use App\Livewire\Forms\Studio\Feature\ChooseUsForm;
|
||||||
use App\Models\ChooseUs as ChooseUsModel;
|
use App\Models\ChooseUs as ChooseUsModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#[Title('Pilih Kami')]
|
#[Title('Pilih Kami')]
|
||||||
class ChooseUs extends Component
|
class ChooseUs extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public ChooseUsForm $form;
|
public ChooseUsForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Feature\PerfumeFeatureForm;
|
use App\Livewire\Forms\Studio\Feature\PerfumeFeatureForm;
|
||||||
use App\Models\PerfumeFeature as PerfumeFeatureModel;
|
use App\Models\PerfumeFeature as PerfumeFeatureModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#[Title('Keunggulan Parfum')]
|
#[Title('Keunggulan Parfum')]
|
||||||
class PerfumeFeature extends Component
|
class PerfumeFeature extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public PerfumeFeatureForm $form;
|
public PerfumeFeatureForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
use App\Livewire\Forms\Studio\Finance\ExpenseForm;
|
use App\Livewire\Forms\Studio\Finance\ExpenseForm;
|
||||||
use App\Models\Expense as ExpenseModel;
|
use App\Models\Expense as ExpenseModel;
|
||||||
use App\Models\Outlet;
|
use App\Models\Outlet;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -18,7 +19,7 @@
|
|||||||
#[Title('Pengeluaran')]
|
#[Title('Pengeluaran')]
|
||||||
class Expense extends Component
|
class Expense extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public ExpenseForm $form;
|
public ExpenseForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
use App\Models\Payroll as PayrollModel;
|
use App\Models\Payroll as PayrollModel;
|
||||||
use App\Models\PayrollAdjustment;
|
use App\Models\PayrollAdjustment;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -22,7 +23,7 @@
|
|||||||
#[Title('Penggajian')]
|
#[Title('Penggajian')]
|
||||||
class Payroll extends Component
|
class Payroll extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData, WithUserSelector;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData, WithUserSelector;
|
||||||
|
|
||||||
public PayrollForm $form;
|
public PayrollForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Loyalty\CustomerForm;
|
use App\Livewire\Forms\Studio\Loyalty\CustomerForm;
|
||||||
use App\Models\Customer as CustomerModel;
|
use App\Models\Customer as CustomerModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#[Title('Customer')]
|
#[Title('Customer')]
|
||||||
class Customer extends Component
|
class Customer extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public CustomerForm $form;
|
public CustomerForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
use App\Models\Perfume;
|
use App\Models\Perfume;
|
||||||
use App\Models\Product;
|
use App\Models\Product;
|
||||||
use App\Models\Tier as TierModel;
|
use App\Models\Tier as TierModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -20,7 +21,7 @@
|
|||||||
#[Title('Tier')]
|
#[Title('Tier')]
|
||||||
class Tier extends Component
|
class Tier extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public array $tiers = [];
|
public array $tiers = [];
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
use App\Livewire\Forms\Studio\Loyalty\Tier\RewardForm;
|
use App\Livewire\Forms\Studio\Loyalty\Tier\RewardForm;
|
||||||
use App\Livewire\Studio\Loyalty\Tier;
|
use App\Livewire\Studio\Loyalty\Tier;
|
||||||
use App\Models\TierReward;
|
use App\Models\TierReward;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -18,7 +19,7 @@
|
|||||||
#[Title('Hadiah')]
|
#[Title('Hadiah')]
|
||||||
class Reward extends Component
|
class Reward extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public RewardForm $form;
|
public RewardForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Loyalty\Voucher;
|
namespace App\Livewire\Studio\Loyalty\Voucher;
|
||||||
|
|
||||||
use App\Models\Voucher;
|
use App\Models\Voucher;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use Flux\Flux;
|
use Flux\Flux;
|
||||||
@ -12,7 +13,7 @@
|
|||||||
#[Title('Voucher')]
|
#[Title('Voucher')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithConfirmation, WithToast;
|
use WithConfirmation, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public array $stats = [];
|
public array $stats = [];
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Manage\Article;
|
namespace App\Livewire\Studio\Manage\Article;
|
||||||
|
|
||||||
use App\Models\Article;
|
use App\Models\Article;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use Flux\Flux;
|
use Flux\Flux;
|
||||||
@ -12,7 +13,7 @@
|
|||||||
#[Title('Artikel')]
|
#[Title('Artikel')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithConfirmation, WithToast;
|
use WithConfirmation, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public function delete(Article $article)
|
public function delete(Article $article)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Manage\FaqForm;
|
use App\Livewire\Forms\Studio\Manage\FaqForm;
|
||||||
use App\Models\Faq as FaqModel;
|
use App\Models\Faq as FaqModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -17,7 +18,7 @@
|
|||||||
#[Title('FAQs')]
|
#[Title('FAQs')]
|
||||||
class Faq extends Component
|
class Faq extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public FaqForm $form;
|
public FaqForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Manage\Order;
|
namespace App\Livewire\Studio\Manage\Order;
|
||||||
|
|
||||||
use App\Models\Order;
|
use App\Models\Order;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\Order\WithUpdateStock;
|
use App\Traits\Order\WithUpdateStock;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -14,7 +15,7 @@
|
|||||||
#[Title('Order')]
|
#[Title('Order')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithCloseModal, WithConfirmation, WithToast, WithUpdateStock;
|
use WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdateStock;
|
||||||
|
|
||||||
public function delete(Order $order)
|
public function delete(Order $order)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Manage\Purchase;
|
namespace App\Livewire\Studio\Manage\Purchase;
|
||||||
|
|
||||||
use App\Models\Purchase;
|
use App\Models\Purchase;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\Purchase\WithUpdateStock;
|
use App\Traits\Purchase\WithUpdateStock;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -14,7 +15,7 @@
|
|||||||
#[Title('Belanja')]
|
#[Title('Belanja')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithCloseModal, WithConfirmation, WithToast, WithUpdateStock;
|
use WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdateStock;
|
||||||
|
|
||||||
public function delete(Purchase $purchase)
|
public function delete(Purchase $purchase)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
use App\Models\Bottle;
|
use App\Models\Bottle;
|
||||||
use App\Models\Formula as FormulaModel;
|
use App\Models\Formula as FormulaModel;
|
||||||
use App\Models\PushNotification;
|
use App\Models\PushNotification;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
@ -21,7 +22,7 @@
|
|||||||
#[Title('Rumus')]
|
#[Title('Rumus')]
|
||||||
class Formula extends Component
|
class Formula extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithCloseModal, WithConfirmation, WithToast, WithUpdatedData;
|
use WithAuthorization, WithCloseModal, WithConfirmation, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public FormulaForm $form;
|
public FormulaForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Enums\Day;
|
use App\Enums\Day;
|
||||||
use App\Models\Outlet;
|
use App\Models\Outlet;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithCloseModal;
|
use App\Traits\WithCloseModal;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithMediaHandler;
|
use App\Traits\WithMediaHandler;
|
||||||
@ -16,7 +17,7 @@
|
|||||||
#[Title('Outlet')]
|
#[Title('Outlet')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithCloseModal, WithConfirmation, WithMediaHandler, WithToast;
|
use WithCloseModal, WithConfirmation, WithMediaHandler, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public array $outlets = [];
|
public array $outlets = [];
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Models\Employee;
|
use App\Models\Employee;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithConfirmation;
|
use App\Traits\WithConfirmation;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use Flux\Flux;
|
use Flux\Flux;
|
||||||
@ -14,7 +15,7 @@
|
|||||||
#[Title('Pegawai')]
|
#[Title('Pegawai')]
|
||||||
class Index extends Component
|
class Index extends Component
|
||||||
{
|
{
|
||||||
use WithConfirmation, WithToast;
|
use WithConfirmation, WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public array $employees = [];
|
public array $employees = [];
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Setting\AccountForm;
|
use App\Livewire\Forms\Studio\Setting\AccountForm;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use App\Traits\WithUpdatedData;
|
use App\Traits\WithUpdatedData;
|
||||||
@ -13,7 +14,7 @@
|
|||||||
#[Title('Akun')]
|
#[Title('Akun')]
|
||||||
class Account extends Component
|
class Account extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithToast, WithUpdatedData;
|
use WithAuthorization, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public AccountForm $form;
|
public AccountForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@
|
|||||||
use App\Settings\GeneralSettings;
|
use App\Settings\GeneralSettings;
|
||||||
use App\Settings\SeoSettings;
|
use App\Settings\SeoSettings;
|
||||||
use App\Settings\SocialSettings;
|
use App\Settings\SocialSettings;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use App\Traits\WithUpdatedData;
|
use App\Traits\WithUpdatedData;
|
||||||
@ -19,7 +20,7 @@
|
|||||||
#[Title('Aplikasi')]
|
#[Title('Aplikasi')]
|
||||||
class Application extends Component
|
class Application extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithToast, WithUpdatedData;
|
use WithAuthorization, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public GeneralForm $generalForm;
|
public GeneralForm $generalForm;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Setting\PasswordForm;
|
use App\Livewire\Forms\Studio\Setting\PasswordForm;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use App\Traits\WithUpdatedData;
|
use App\Traits\WithUpdatedData;
|
||||||
@ -14,7 +15,7 @@
|
|||||||
#[Title('Kata Sandi')]
|
#[Title('Kata Sandi')]
|
||||||
class Password extends Component
|
class Password extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithToast, WithUpdatedData;
|
use WithAuthorization, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public PasswordForm $form;
|
public PasswordForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use App\Livewire\Forms\Studio\Setting\ProfileForm;
|
use App\Livewire\Forms\Studio\Setting\ProfileForm;
|
||||||
use App\Models\Employee;
|
use App\Models\Employee;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithAuthorization;
|
use App\Traits\WithAuthorization;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use App\Traits\WithUpdatedData;
|
use App\Traits\WithUpdatedData;
|
||||||
@ -13,7 +14,7 @@
|
|||||||
#[Title('Profil')]
|
#[Title('Profil')]
|
||||||
class Profile extends Component
|
class Profile extends Component
|
||||||
{
|
{
|
||||||
use WithAuthorization, WithToast, WithUpdatedData;
|
use WithAuthorization, WithSubscribeNotification, WithToast, WithUpdatedData;
|
||||||
|
|
||||||
public ProfileForm $form;
|
public ProfileForm $form;
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Livewire\Studio\Setting;
|
namespace App\Livewire\Studio\Setting;
|
||||||
|
|
||||||
use App\Models\Whatsapp as WhatsappModel;
|
use App\Models\Whatsapp as WhatsappModel;
|
||||||
|
use App\Traits\Notification\WithSubscribeNotification;
|
||||||
use App\Traits\WithToast;
|
use App\Traits\WithToast;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
@ -12,7 +13,7 @@
|
|||||||
#[Title('Whatsapp')]
|
#[Title('Whatsapp')]
|
||||||
class Whatsapp extends Component
|
class Whatsapp extends Component
|
||||||
{
|
{
|
||||||
use WithToast;
|
use WithSubscribeNotification, WithToast;
|
||||||
|
|
||||||
public array $whatsapp = [];
|
public array $whatsapp = [];
|
||||||
|
|
||||||
|
|||||||
34
app/Traits/Notification/WithSubscribeNotification.php
Normal file
34
app/Traits/Notification/WithSubscribeNotification.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Traits\Notification;
|
||||||
|
|
||||||
|
use App\Models\PushNotification;
|
||||||
|
use Livewire\Attributes\On;
|
||||||
|
|
||||||
|
trait WithSubscribeNotification
|
||||||
|
{
|
||||||
|
#[On('notification:subscribe')]
|
||||||
|
public function notificationSubscribe(string $subscription)
|
||||||
|
{
|
||||||
|
$subscription = json_decode($subscription, true);
|
||||||
|
|
||||||
|
$isExist = PushNotification::where('user_id', auth()->id())
|
||||||
|
->whereJsonContains('subscriptions->keys->auth', $subscription['keys']['auth'])
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($isExist) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$userId = auth()->id();
|
||||||
|
|
||||||
|
$encodedSubscription = json_encode($subscription);
|
||||||
|
PushNotification::updateOrCreate(
|
||||||
|
[
|
||||||
|
'user_id' => $userId,
|
||||||
|
'subscriptions' => $encodedSubscription,
|
||||||
|
],
|
||||||
|
['subscriptions' => $encodedSubscription],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user