laravel-enso/sunrise-sunset

Sunrise and sunset API integration for Laravel Enso

Maintainers

Package info

github.com/laravel-enso/sunrise-sunset

pkg:composer/laravel-enso/sunrise-sunset

Statistics

Installs: 85

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.4 2026-05-12 16:55 UTC

This package is auto-updated.

Last update: 2026-05-12 16:56:29 UTC


README

License Stable Downloads PHP Issues Merge Requests

Description

Sunrise Sunset integrates the sunrisesunset.io service into Laravel Enso.

The package wraps the external API behind an Enso Action, logs outbound calls through laravel-enso/api, exposes a protected application route, and stores the Enso structure required for access control.

It is intended for applications that need sunrise and sunset times for a configured location without implementing the remote call flow manually.

Installation

Install the package:

composer require laravel-enso/sunrise-sunset

Run the package migration:

php artisan migrate

Optional publish:

php artisan vendor:publish --tag=sunrise-sunset-config

Configure the target coordinates:

// config/enso/sunriseSunset.php
return [
    'latitude' => env('SUNRISE_SUNSET_LATITUDE'),
    'longitude' => env('SUNRISE_SUNSET_LONGITUDE'),
];

Features

  • wraps the sunrisesunset.io JSON endpoint through laravel-enso/api
  • exposes an Enso route for authenticated callers
  • logs outbound requests and responses through the API package
  • registers a package permission for route-level access control
  • keeps latitude and longitude configurable through Enso config

Usage

The package exposes an internal action that can be called directly:

use Carbon\Carbon;
use LaravelEnso\SunriseSunset\Actions\Get;

$response = (new Get(
    Carbon::parse('2026-05-01'),
    Carbon::parse('2026-05-07'),
))->handle();

$payload = $response->json();

The endpoint sends these query parameters to the upstream API:

  • date_start
  • date_end
  • lat
  • lng

The latitude and longitude values are resolved from:

  • config('enso.sunriseSunset.latitude')
  • config('enso.sunriseSunset.longitude')

API

HTTP route

  • GET api/sunriseSunset named sunriseSunset.index

The route is loaded inside the Enso middleware stack:

  • api
  • auth
  • core

Internal classes

  • LaravelEnso\SunriseSunset\Actions\Get
  • LaravelEnso\SunriseSunset\Endpoints\Get
  • LaravelEnso\SunriseSunset\Http\Controllers\Index

Depends On

Required Enso package:

Related Enso packages:

External service dependency:

Contributions

are welcome. Pull requests are great, but issues are good too.

Thank you to all the people who already contributed to Enso!