codelets-mongodb/notification

This is a custom notification, for keeping users notifications received in an application internally.

v1.2.2 2019-07-16 05:42 UTC

This package is auto-updated.

Last update: 2024-04-16 16:27:56 UTC


README

68747470733a2f2f6d76746563687a6f6e652e636f6d2f696d672f636f64656c6574732e706e67

Makes Laravel Notification a Breeze...
68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f4d76546563685a6f6e652f6d762d6e6f74696669636174696f6e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f4d76546563685a6f6e652f6d762d6e6f74696669636174696f6e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f4d76546563685a6f6e652f6d762d6e6f74696669636174696f6e2e737667

This package is custom notify for both admins and users, so instead of using laravel notification. I built this custom notification package for my projects, so if you want to try it out read through the documentation. This package is based on mongodb

Installing

The recommended way to install codelets-mv/notification is through Composer.

# Install package via composer
composer require codelets-mv/notification

Next, run the Composer command to install the latest stable version of codelets-mv/notification:

# Update package via composer
 composer require codelets-mv/notification --lock

After installing, the package will be auto discovered, But if need you may run:

# run for auto discovery <-- If the package is not detected automatically -->
composer dump-autoload

Then run this, to get the config/mv-notification.php for configurations:

# run this to get the configuartion file at config/mv-notification.php <-- read through it -->
php artisan vendor:publish --provider="MV\Notification\MvNotificationService"

You will have to provide this in the .env for the api configurations:

# This is the pagination number you want to paginate with <-- default(10) -->
MV_NOTIFICATION_PAGINATE=

Usage

Follow the steps below on how to use the package:

  /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct() {
        //The instance should be either this
        $this->middleware('auth:admin');//for your admin controller
        //or
        $this->middleware('auth');//for your user Controller
    }

    /**
     * ---------------------------------
     * Fetch Latest Notification Here
     * --------------------------------
     * Passing bool - true - to the function will query admin notification only
     * @return void
     */
    public function latestNotifications() {
        Mv::latestNotifications();//Fetching latest notification for user
        Mv::latestNotifications(true);//Fetching latest notification for admin
    }

    /**
     * --------------------------------
     * Fetching all notifications
     * -------------------------------
     * Passing bool - true - to the function will query admin notification only
     * @return void
     */
    public function allNotifications() {
        Mv::allNotifications();//Fetching all notifications for user
        Mv::allNotifications(true);//Fetching all notifications for admin
    }

    /**
     * =-------------------------------
     * Deleting a single notification
     * --------------------------------
     * Passing bool - true - to the function will query admin notification only
     * ------------------------------------------------------------------------------
     * To achieve single notification create a route that receives a (string) notification_id
     * Note that this package uses uuids so the notification_id has to be a string
     * ----------------------------------------------------------------------------------------
     * Passing bool - true - to the function will query admin notification only
     * -----------------------------------------------------------------------------------------------
     * @param string $notification_id
     * @return void
     */
    public function deleteSingleNotification(string $notification_id) {
        Mv::deleteSingleNotification($notification_id);//For user
        Mv::deleteSingleNotification($notification_id, true);//For admin
    }

    /**
     * =-------------------------------
     * Deleting a all notification
     * --------------------------------
     * Passing bool - true - to the function will query admin notification only
     * ------------------------------------------------------------------------------
     * Passing bool - true - to the function will query admin notification only
     * ----------------------------------------------------------------------------------
     * @return void
     */
    public function deleteAllNotifications() {
        Mv::deleteAllNotifications();//For user
        Mv::deleteAllNotifications(true);//For admin
    }

    /**
     * --------------------------------
     * Creating new notification here
     * --------------------------------
     * In creating notification we need 4 parameters of which 2 are optional that is for user_id and admin_id
     * -------------------------------------------------------------------------------------------------------
     * Also you can have your function that receives the parameters and passes them to Mv::createSystemNotification
     * --------------------------------------------------------------------------------------------------------------
     * @return void
     */
    public function createSystemNotification() {
        //This is for creating user notifications
        Mv::createSystemNotification(null, auth()->id(), 'My Notification Subject', 'My Notification Message');

        //This is for creating admin notifications
        Mv::createSystemNotification(auth('admin')->id(), null, 'My Notification Subject', 'My Notification Message');
    }


    /**
     * ---------------------------
     * TODO SIMPLE PACKAGE NOTES
     * -----------------------------------------------------------------------------------------
     * For the functions used above can be changed to your own names to call the package names
     * -----------------------------------------------------------------------------------------
     */

Version Guidance

Version Status Packagist Namespace Repo
1.x Latest codelets-mv/notification MV\Notification v1.0.0

Security Vulnerabilities

For any security vulnerabilities, please email to MvTechZone.

License

This package is open-source software licensed under the MIT license.