// the find
berkayk/laravel-onesignal
OneSignal Push Notifications for Laravel
A thin Laravel facade/service-provider wrapper around OneSignal's REST API for sending push notifications — to all users, segments, tag-filtered groups, or specific user IDs. For a Laravel shop already on OneSignal that wants `.env` config and a facade instead of hand-rolling Guzzle calls to the OneSignal API.
Scope is appropriately narrow — it's a thin pass-through, not an attempt to abstract OneSignal's whole API surface, so it doesn't fight you when OneSignal adds new parameters. The `addParams()`/`setParam()` chaining lets you pass arbitrary OneSignal fields through without the package needing to model every one. Config timeout for the underlying Guzzle client is exposed via `.env`, which matters if you're sending from a queued job. Facade + service provider setup is standard Laravel boilerplate, nothing surprising for anyone who's installed a Laravel package before.
The core API is a pile of positional optional parameters (`$url, $data, $buttons, $schedule, $heading, $subtitle`) instead of a DTO or named-args/array approach — easy to pass the wrong thing in the wrong slot, and every new OneSignal feature means another position tacked onto the end. Nothing in the README documents what you get back from a send call or how to detect/handle a failed send (rate limit, invalid player id, auth error) — looks like you're left parsing raw Guzzle responses yourself. `tests/` contains a single `test.php`, not a real PHPUnit suite, so there's no visible automated coverage protecting the HTTP-call logic from regressions. The external-user-id and tag-filter methods still use the same fragile positional-arg pattern as the rest, so there's no consistent, safer path even for the newer OneSignal features.