A PHP Library to easily send push notifications with the Pushwoosh REST Web Services.

Overview

php-pushwoosh

A PHP Library to easily send push notifications with the Pushwoosh REST Web Services.

Total Downloads Latest Stable Version Build Status Coverage Code Climate License

First sample, creating a Pushwoosh message

// Create a Pushwoosh client
$pushwoosh = Pushwoosh::create()
    ->setApplication('XXXX-XXX')
    ->setAuth('xxxxxxxx');

// Create a request for the '/createMessage' Web Service
$request = CreateMessageRequest::create()
    ->addNotification(Notification::create()->setContent('Hello Jean !'));

// Call the REST Web Service
$response = $pushwoosh->createMessage($request);

// Check if its ok
if($response->isOk()) {
    print 'Great, my message has been sent !';
} else {
    print 'Oups, the sent failed :-('; 
    print 'Status code : ' . $response->getStatusCode();
    print 'Status message : ' . $response->getStatusMessage();
}

Easy, isn't it ?

Documentation

Framework Integrations

If you have integrated php-pushwoosh into a popular PHP framework let us know !

About Gomoob

At Gomoob we build high quality software with awesome Open Source frameworks everyday. Would you like to start your next project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible !

You can contact us by email at [email protected] or by phone number (+33) 6 85 12 81 26 or (+33) 6 28 35 04 49.

Visit also http://gomoob.github.io to discover more Open Source softwares we develop.

Comments
  • Describe how to use the library without composer

    Describe how to use the library without composer

    Several users encounter difficulties to use the library without composer :

    • http://stackoverflow.com/questions/30570744/how-to-install-and-use-php-pushwoosh-on-ubuntu-12-04-lts-linux-os-with-without-u
    • http://stackoverflow.com/questions/28599212/yii-struggle-with-setting-pushwoosh-php-lib-through-composer
    • http://stackoverflow.com/questions/30590074/is-it-required-to-include-any-files-from-gomoobphp-pushwooshto-to-run-a-php-pro

    We should explain how to use the library without composer, a code sample will also help.

    documentation 
    opened by bgaillard 9
  • Internal Server Error and vendor folder

    Internal Server Error and vendor folder

    I am using php-pushwoosh library and am getting an internal server error. I believe we may need to white list the ip but it seems it is constantly changing based on the server data. Also I find it strange that no folder/library was added to vendor for php-pushwoosh after installing it using composer. It shows when doing “php composer.phar show” but has no files it seems in the vendor folder. I was hoping you could help me figure out what I may need to do for this to work. Here is some screen shots of the afore mentioned instances.

    vendor

    terminal1

    error

    question 
    opened by clewsk8er 7
  • Internal Server Error When calling the sample code

    Internal Server Error When calling the sample code

    When using the sample code with my api key and application code set I receive an internal server error. The library has been added by composer and when using the update command it says it has been generated. I tried putting the code in a page controller instead of the api and still no luck or reason why. If you could help me with this I would greatly appreciate it. I apologize and thank you for your time.

    code

    question 
    opened by clewsk8er 6
  • Better Error Handler

    Better Error Handler

    Today our premium account had ended and we had no idea what was going on until I tried making a request directly against the Pushwoosh API. The answer from the Pushwoosh API was:

    {#363
      +"status_code": 210
      +"status_message": "This feature is available for Premium accounts only"
      +"response": null
    }
    

    Though, this is what I got back from this library:

    ErrorException array_key_exists() expects parameter 2 to be array, null given
        vendor/gomoob/php-pushwoosh/src/main/php/Gomoob/Pushwoosh/Model/Response/CreateMessageResponse.php:43
    

    Maybe we can return the error messages whenever the Pushwoosh API return 210?

    enhancement 
    opened by vinkla 6
  • Add Better API Error Handling

    Add Better API Error Handling

    Today our premium subscription to pushwoosh ended. When we tried to push a message to the API it returned the following:

    array (size=3)
      'status_code' => int 210
      'status_message' => string 'This feature is available for Premium accounts only' (length=51)
      'response' => null
    

    Though, the package didn't return the status message as an error. Instead it returned this:

    array_key_exists() expects parameter 2 to be array, null given
    
    // Gomoob/Pushwoosh/Model/Response/CreateMessageResponse.php:43
    if (array_key_exists('Messages', $json['response'])) {
    

    Maybe we could implement a way to handle these kinds of status messages? What do you think?

    bug 
    opened by vinkla 5
  • The link to the library has been removed from the official documentation

    The link to the library has been removed from the official documentation

    Yesterday the Pushwoosh team published a new version of their documentation (http://docs.pushwoosh.com/docs/createmessage). The link to our library has been removed from this documentation.

    We should ask Pushwoosh to add the link back, or even better propose to the Pushwoosh team to add a php-pushwoosh tab in each PHP sample (we could write those samples).

    opened by bgaillard 4
  • No DefaultTimeOut

    No DefaultTimeOut

    We found an issue, that in the CurlClient, you are using there is no default timeout-value set. In our case the call got stuck.

    • CURLOPT_CONNECTTIMEOUT

      The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.

    • CURLOPT_TIMEOUT

      The maximum number of seconds to allow cURL functions to execute.

    PHP curl_setopt doc

    enhancement 
    opened by fvermeulen 3
  • Fix pushStat endpoint call

    Fix pushStat endpoint call

    Hello,

    First of all, thanks for the library it's really simple and quite developer friendly.

    There is a small mistake which prevents users to call the pushStat endpoint.

    Could you merge this PR and tag a new version?

    bug 
    opened by geoffrey-brier 3
  • Fix ios category id naming issue and add support for send_rate

    Fix ios category id naming issue and add support for send_rate

    http://docs.pushwoosh.com/docs/createmessage

    Example:

    "ios_category_id": "1", // Optional. Integer. iOS8 category ID from Pushwoosh "send_rate": 100, // Throttling. Valid values are from 100 to 1000 pushes/second.

    enhancement 
    opened by AhmedFawzy 3
  • setCURLClient documentation wrong

    setCURLClient documentation wrong

    This line could be removed right or like the other method in that class you should return the instance.

    https://github.com/gomoob/php-pushwoosh/blob/master/src/main/php/Gomoob/Pushwoosh/Client/Pushwoosh.php#L303

    bug 
    opened by fvermeulen 2
  • Allow to use own url for API server

    Allow to use own url for API server

    This patch allow to use own url for API server. It is needed when url is changed to something like https://your-company.pushwoosh.com instead of https://cp.pushwoosh.com for enterprise contracts

    enhancement 
    opened by p-golovin 2
  • Send push notification only to testDevice

    Send push notification only to testDevice

    We are implementing pushwoosh in production and I don't know how to send push messages only to test devices. That's why I have to be careful doing tests.

    Looking in the documentation I found that filters can be applied, can it be that there is a native filter "TestDevices"?

    Notification::create()->setFilter ("TestDevices")->setContent ("Content");

    If not, as would be the steps to send push notification only to test device, sorry if it is in the documentation and I did not see it.

    opened by marquartnicolas 0
  • Add title and subtitle for iOS

    Add title and subtitle for iOS

    Documentation for /createMessage allows for use of 'ios_title' and 'ios_subtitle'. Added this to the IOS model.

    See: http://docs.pushwoosh.com/docs/createmessage

    opened by jseverinson 4
  • Support chrome_button_text and chrome_button_url

    Support chrome_button_text and chrome_button_url

    Add support

      “chrome_button_text1”: “1“, // optional
      “chrome_button_url1”: “button1_url“, // optional, ignored if chrome_button_text1 is not set
      “chrome_button_text2”: “2“, // optional
      “chrome_button_url2”: “button2_url”, // optional, ignored if chrome_button_text2 is not set 
              
    

    http://docs.pushwoosh.com/docs/createmessage

    opened by petrwl 3
  • CreateMessageResponse does not pass along UnknownDevices

    CreateMessageResponse does not pass along UnknownDevices

    Pushwoosh now includes in its raw createMessage response a list of devices/tokens for which it does not know what they are (likely because the user removed the app or the token was renewed.) This is similar to the bulk /getunregistereddevices call, but applies to each message in the moment as you try to send it. See example output $json from CreateMessageResponse::create below:

    Array
    (
        [status_code] => 200
        [status_message] => OK
        [response] => Array
            (
                [Messages] => Array
                    (
                        [0] => CODE_NOT_AVAILABLE
                    )
    
                [UnknownDevices] => Array
                    (
                        [] => Array
                            (
                                [0] => 0017a2859e0cc1d37bdfc83cf3e92a8bb47f6405b213516eba76082562d3a646
                            )
    
                    )
    
            )
    
    )
    

    It would be helpful if CreateMessageResponse could pass these unknown devices back up the chain to userland code to allow me to remove my records of those bad tokens. A method similar to the existing setMessages would be nice, something like setUnknownDevices:

    // If 'UnknownDevices' are provided
    if (array_key_exists('UnknownDevices', $json['response'])) {
        $createMessageResponseResponse->setUnknownDevices($json['response']['UnknownDevices']);
    }
    
    enhancement 
    opened by curtisgibby 0
Releases(1.9.0)
  • 1.9.0(Jun 28, 2017)

  • 1.8.0(Jun 19, 2017)

    New features

    • Fix #18 - Allow CURL to have SSL certificates verification enabled.
    • Fix #63 - Allow to use own url for API server
    • Fix #65 - The setCURLClient(ICURClient $curlClient) did not return $this.
    • Fix #66 - Now the library allows to overwrite some CURL options.
    • Add support for PHP 7.1 and execute tests with Travis and PHP 7.1

    Improvements

    • Increase code coverage to 100%
    • Add a testing Apache Cordova App in the src/test/resources directory, this application allows to manually test the php-pushwoosh library by receiving notification inside a very simple Android or iOS application.
    • Update all Grunt dependencies and update the build scripts (only useful for contributors)

    Closed

    • Close https://github.com/gomoob/php-pushwoosh/issues/23 - Closing this issue, no serious developer shoud use PHP without composer.
    Source code(tar.gz)
    Source code(zip)
  • 1.7.1(Oct 20, 2016)

  • 1.7.0(Sep 15, 2016)

    • Fix #60 - missing campain data in api request ;
    • Update several development composer dependencies ;
    • Minor fixes to prepare platinium Sensio Insight grade.
    Source code(tar.gz)
    Source code(zip)
  • 1.6.1(Jul 7, 2016)

  • 1.6.0(Jul 5, 2016)

    New features

    • Fix #50 - Add Firefox specific notification properties support with a new \Gomoob\Pushwoosh\Model\Notification\Firefox class (thanks @olegbespalov). Also now the \Gomoob\Pushwoosh\Model\Notification\Platform class adds utility constants for platforms, the following constants are available IOS, BLACKBERRY, ANDROID, NOKIA_ASHA, WINDOWS_PHONE_7, MAC_OS_X, WINDOWS_8, AMAZON, SAFARI, CHROME, FIREFOX.

    Breaking changes

    • Fix #52 - Abandon support for PHP 5.5.X because end of life associated to PHP 5.5 is planned for 10 July 2016 (see http://php.net/supported-versions.php) ;
    • Fix #53 - Remove Baidu minimize link supported because this feature will be removed by Pushwoosh soon ;
    • Remove Gomoob/Pushwoosh/Exception/PushwooshException->setData(array $data) function because its not used and their are no reasons to use it.

    Others

    • Remove use of PHPUnit getMock(...) because its now deprecated, replace it with calls to createMock(...) instead.
    Source code(tar.gz)
    Source code(zip)
  • 1.5.3(Jun 26, 2016)

  • 1.5.2(May 9, 2016)

    Fixes

    • Fix #47 - CreateTargetedMessageRequest, the auth property was not injected in the request payload.

    Improvements

    • Improve and enforce Code Sniffer checks.
    Source code(tar.gz)
    Source code(zip)
  • 1.5.1(Mar 11, 2016)

  • 1.5.0(Mar 10, 2016)

    Fixes

    • Fix #40 - Content is supposed to be string type only ;
    • Fix #41 - Fix pushStat endpoint call

    New features

    • Fix #37 - Implementation for /createTargetedMessage ;
    • Add a new IRequest interface common to all requests ;
    • Add a new IResponse interface common to all responses ;
    • Add a new DateCondition which works with \DateTime objects and supports the BETWEEN, EQ, GTE, IN, LTE, NOTEQ and NOTIN operators ;
    • Now the IntCondition supports the IN, NOTEQ and NOTIN operators ;
    • Now the StringCondition supports the IN, NOTEQ and NOTIN operators ;
    • Now the Notification class supports the campain and timezone properties ;
    • Improves the request implementations and add a new isAuthSupported() method to know if a specific request supports the auth property ;

    Others

    • Fix #17 - Add the library to awesome-php.
    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Jan 7, 2016)

    • Fix #39 - Fix ios category id naming issue and add support for send_rate ;
    • Test the IOS getCategoryId() and setCategoryId($categoryId) functions ;
    • Add new preset, getPreset() and setPreset($preset) attribute and functions in the Notification class ;
    • Add new remotePage, getRemotePage() and setRemotePage($remotePage) attribute and functions in the Notification class ;
    • Add new richPageId, getRichPageId() and setRichPageId($richPageId) attribute and functions in the Notification class ;
    • Add new sendRate, getSendRate() and setSendRate($sendRate) attribute and functions in the Notification class ;
    • Update composer dependencies.
    Source code(tar.gz)
    Source code(zip)
  • 1.3.1(Dec 28, 2015)

  • 1.3.0(Dec 28, 2015)

    • BREAKING CHANGE : Abandon PHP 5.4 support, now minimum required version is PHP 5.5 ;
    • Remove array(...) notations and replace them by [...] ;
    • BREAKING CHANGE : Implements the JsonSerializable and rename toJSON() to jsonSerialize() everywhere ;
    • Better Code Climate score.
    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Dec 25, 2015)

    • Add new getPriority() and setPriority($priority) methods to the ADM notification class ;
    • Add new getBadges(), setBadges($badges), getIbc(), setIbc($ibc), getLed(), setLed($led), getPriority(), setPriority($priority), getVibration() and isVibration() to the Android notification class ;
    • Fix #31, add missing notification properties ;
    • Add a new Chrome notification class ;
    • Add a new Platform::chrome() method to get the Chrome Platform ;
    • Update the documentation to reflect new notification methods and classes ;
    • Enforce all unit test assertion by replacing assertEquals(...) by assertSame(...) when possible.
    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Nov 17, 2015)

  • 1.1.0(Nov 13, 2015)

    • BREAKING CHANGE : Abandon PHP 5.3 support, now minimum required version is PHP 5.4 ;
    • Officially support PHP 7.0 (as PHP 7 is not already stable let us know if you encounter errors).
    Source code(tar.gz)
    Source code(zip)
  • 1.0.9(Nov 13, 2015)

    • Fix #28 - fix exception message ;
    • Full review of exception messages, write additional unit test checks for them ;
    • Run unit test in Travis with PHP nightly builds, so now we should be sure the library is supported with PHP 7 ;-).
    Source code(tar.gz)
    Source code(zip)
  • 1.0.8(Oct 19, 2015)

  • 1.0.7(Oct 15, 2015)

    • Move the Gomoob\Curl package into the Gomoob\Pushwoosh\Curl package because Gomoob\Curl could lead to conflicts with other Gomoob libraries.

    Note : This release is only useful if you're using other Gomoob libraries, if not it will not change anything in comparison with version 1.0.6.

    Source code(tar.gz)
    Source code(zip)
  • 1.0.6(Oct 14, 2015)

    • Now the Gomoob\Pushwoosh\Exception\PushwooshException class has an additionnal data property which allows to transport additional details when an error is encountered. For example if a CURL error is encountered now an exception is thrown with additional CURL informations which are very useful to identify problems.
    • Fix #16, add a link to Laravel Pushwoosh project in the Readme.
    • Fix #19, It seems the last release has invalid versions in composer.json and package.json.
    • Fix #21, Create a CURL abstraction.
    • Fix #24, Add several checks in response to CURL requests.
    • Fix #25, Better Error Handler.
    Source code(tar.gz)
    Source code(zip)
  • 1.0.5(Apr 26, 2015)

  • 1.0.4(Mar 10, 2015)

  • 1.0.3(Feb 16, 2015)

  • 1.0.2(Feb 13, 2015)

    Changes in this release

    • Add implementation of Gomoob\Pushwoosh\Client\PushwooshMock methods. The methods of the mock object always return response objects with http status code equals to 200.
    • Fix php code sniffer errors
    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Feb 12, 2015)

    Changes in this release

    • Fix #10, Make Gomoob\Pushwoosh\Client\PushwooshMock::getNearestZone declaration compatible with its interface.
    • Fix #7, Remove the docs directory.
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Jan 18, 2015)

    Changes in this release

    • Upgrade PDepend to version ~2.0
    • Upgrade PHPMD to version ~2.1
    • Upgrade PHP_CodeSniffer to version ~2.1
    • Remove php-cs-fixer and use the PHP_CodeSniffer phpcbf tool instead
    • Now the Grunt build uses load-grunt-tasks
    • Upgrade all package.json dependencies
    • Fix #2, Replace the 3 first badges on the home page by shields.id badges
    • Fix #3, Run Travis builds with more PHP versions
    • Fix #4 , Now the version is compliant with Semantic Versionning
    • Fix #5, Use a code quality check service

    NOTE : This release does not really changes the code of the library (which is already very stable) but configures tools to enforce compliancy with standards and check code quality.

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Sep 19, 2014)

  • 0.1.0-alpha5(Sep 17, 2014)

    • Code coverage is now 100% on the Gomoob\Pushwoosh\Model\Request package
    • Code coverage is now 100% on the Gomoob\Pushwoosh\Model\Response package
    • Code coverage is now 100% on the Gomoob\Pushwoosh\Model\Notification package
    • Add missing Gomoob\Pushwoosh\Model\Request\GetTagsRequest class
    • Add an abstract Gomoob\Pushwoosh\Model\Response\AbstractResponse class common to all response objects
    • Add classes in the Gomoob\Pushwoosh\Model\Condition package to express conditions added to a Pushwoosh notification
    • Add a Gomoob\Pushwoosh\Model\Notification\MinimizeLink class
    • Add a Gomoob\Pushwoosh\Model\Notification\BlackBerry class to configure specific BackBerry settings
    • Now the documentation is on Github Pages
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0-alpha4(Sep 9, 2014)

    • Now the package is loaded using a PSR-4 autoloader instead of a PSR-0 autoloader
    • Use PHP_CodeSniffer to ensure the code is compliant with PSR-0 and PSR-2 coding rules
    • Upgrade Grunt dependency grunt-phpunit
    • Now the code is compliant with PSR-0 and PSR-2 coding rules
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\ADM class
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\Android class
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\IOS class
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\Mac class
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\Safari class
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\WNS class
    • Reorganize attributes and functions in the Gomoob\Pushwoosh\Model\Notification\WP class
    • Updates the coding conventions in the README.md file
    • Append indications for Pull Requests in the README.md file
    • Ignore the composer.lock file from GIT
    • Build the project on Travis CI
    • Add Badge Poser badges in the README.md file
    • Enable Coveralls to report code coverage with TravisCI
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0-alpha3(Jun 25, 2014)

    WARNING : This is an alpha release, so use it at your own risks !

    • Third alpha release
    • Complete the IOS notification implementation into the Gomoob\Pushwoosh\Model\Notification\IOS class
    • Remove a duplicated method in the Gomoob\Pushwoosh\Model\Request\UnregistereDeviceRequest class
    Source code(tar.gz)
    Source code(zip)
This package makes it easy to send web push notifications with Laravel.

Web push notifications channel for Laravel This package makes it easy to send web push notifications with Laravel. Installation You can install the pa

Laravel Notification Channels 564 Jan 3, 2023
Send Firebase push notifications with Laravel php framework.

FCM Notification Channel for Laravel Send Firebase push notifications with Laravel php framework. Installation You can install this package via compos

Ankur Kumar 23 Oct 31, 2022
Send push notifications to apple devices (iPhone, iPad, iPod).

Apple Apn Push Send push notifications to apple devices (iPhone, iPad, iPod). Support authenticators: Certificate Json Web Token Supported protocols:

Vitaliy Zhuk 157 Dec 1, 2022
Larafirebase is a package thats offers you to send push notifications or custom messages via Firebase in Laravel.

Introduction Larafirebase is a package thats offers you to send push notifications or custom messages via Firebase in Laravel. Firebase Cloud Messagin

Kutia Software Company 264 Jan 7, 2023
Standalone PHP library for easy devices notifications push.

NotificationPusher Standalone PHP library for easy devices message notifications push. Feel free to contribute! Thanks. Contributors Cédric Dugat (Aut

Cédric Dugat 1.2k Jan 3, 2023
Push notifications Library for PHP

Push notifications Library for PHP Supported Protocols Protocol Supported Driver Options APNs (Token Based) ✓ APNs\Token APNs\Token\Option APNs (Certi

Norifumi SUNAOKA 3 Dec 14, 2022
Standalone PHP library for easy devices notifications push.

NotificationPusher Standalone PHP library for easy devices message notifications push. Feel free to contribute! Thanks. Contributors Cédric Dugat (Aut

Cédric Dugat 1.2k Jan 3, 2023
Takes care of Apple push notifications (APNS) in your PHP projects.

Notificato Notificato takes care of push notifications in your PHP projects. Italian: notificato è: participio passato English: notified Why use Notif

Mathijs Kadijk 223 Sep 28, 2022
Takes care of Apple push notifications (APNS) in your PHP projects.

Notificato Notificato takes care of push notifications in your PHP projects. Italian: notificato è: participio passato English: notified Why use Notif

Mathijs Kadijk 223 Sep 28, 2022
Push Notifications using Laravel

laravel-push-notification Push Notifications using Laravel PushNotification::send(['deviceToken1', 'deviceToken2',..], 'Notification Message', 'Action

Webelight Solutions 26 Jul 22, 2022
Laravel package to enable sending push notifications to devices

Laravel Push Notification Package to enable sending push notifications to devices Installation Update your composer.json file to include this package

Davi Nunes 1.2k Sep 27, 2022
:computer: Send notifications to your desktop directly from your PHP script

About JoliNotif JoliNotif is a cross-platform PHP library to display desktop notifications. It works on Linux, Windows or MacOS. Requires PHP >= 7.2 (

JoliCode 1.2k Dec 29, 2022
Notifications in PHP (notify-send, growl, etc) like that.

#Nod Notifications in PHP (notify-send, growl, etc) like that. ##Examples Letting Nod figure out the best Adapter to use (not recommend ATM, only work

Filipe Dobreira 51 Mar 26, 2019
This package allows you to send notifications to Microsoft Teams.

Teams connector This package allows you to send notifications to Microsoft Teams. Installation You can install the package using the Composer package

skrepr 20 Oct 4, 2022
This package makes it easy to send notifications using RocketChat with Laravel 9.0+.

laravel-rocket-chat-notifications Introduction This package makes it easy to send notifications using RocketChat with Laravel 9.0+. Contents Installat

Team Nifty GmbH 25 Dec 1, 2022
Service that helps you to send notifications for a series of failed exceptions.

Laravel Failure Notifier This package helps you to track your exceptions and do what you want to do with them such as sending an SMS or and Email. You

Kamyar Gerami 7 Nov 26, 2022
It's Pimcore Bundle to send notifications to Google Chat, Slack or Email from admin panel inside Pimcore

Send notifications to Discord, Google Chat, Slack and more from Pimcore It's Pimcore Bundle to send notifications to Discord, Google Chat, Slack, Tele

LemonMind.com 6 Aug 31, 2022
ApnsPHP: Apple Push Notification & Feedback Provider

ApnsPHP: Apple Push Notification & Feedback Provider A full set of open source PHP classes to interact with the Apple Push Notification service for th

Immobiliare Labs 1.4k Nov 16, 2022
A very lightweight library to handle notifications the smart way.

NAMSHI | Notificator Notificator is a very simple and lightweight library to handle notifications the smart way. It took inspiration from other librar

Namshi 187 Nov 4, 2022